summaryrefslogtreecommitdiff
path: root/var/spack
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack')
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake-client/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/fetch-options/package.py22
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py17
-rw-r--r--var/spack/repos/builtin/packages/acl/package.py30
-rw-r--r--var/spack/repos/builtin/packages/acts-core/package.py5
-rw-r--r--var/spack/repos/builtin/packages/adios2/package.py20
-rw-r--r--var/spack/repos/builtin/packages/adol-c/package.py21
-rw-r--r--var/spack/repos/builtin/packages/agrep/package.py23
-rw-r--r--var/spack/repos/builtin/packages/amdblis/package.py1
-rw-r--r--var/spack/repos/builtin/packages/amrex/package.py1
-rw-r--r--var/spack/repos/builtin/packages/anaconda3/package.py53
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/package.py6
-rw-r--r--var/spack/repos/builtin/packages/attr/package.py14
-rw-r--r--var/spack/repos/builtin/packages/aws-parallelcluster/package.py3
-rw-r--r--var/spack/repos/builtin/packages/axl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bat/package.py29
-rw-r--r--var/spack/repos/builtin/packages/batctl/package.py24
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py1
-rw-r--r--var/spack/repos/builtin/packages/bcache/func_crc64.patch13
-rw-r--r--var/spack/repos/builtin/packages/bcache/package.py36
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py5
-rw-r--r--var/spack/repos/builtin/packages/blis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bmi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py9
-rw-r--r--var/spack/repos/builtin/packages/bowtie2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bubblewrap/package.py28
-rw-r--r--var/spack/repos/builtin/packages/bzip2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py9
-rw-r--r--var/spack/repos/builtin/packages/cctools/package.py53
-rw-r--r--var/spack/repos/builtin/packages/ceres-solver/package.py23
-rw-r--r--var/spack/repos/builtin/packages/cgns/package.py9
-rw-r--r--var/spack/repos/builtin/packages/charliecloud/package.py27
-rw-r--r--var/spack/repos/builtin/packages/cinch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/citcoms/package.py18
-rw-r--r--var/spack/repos/builtin/packages/clhep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cosma/package.py69
-rw-r--r--var/spack/repos/builtin/packages/cpio/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cpprestsdk/Release.patch45
-rw-r--r--var/spack/repos/builtin/packages/cpprestsdk/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cryptsetup/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cscope/package.py12
-rw-r--r--var/spack/repos/builtin/packages/darshan-runtime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/darshan-util/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py1
-rw-r--r--var/spack/repos/builtin/packages/dihydrogen/package.py111
-rw-r--r--var/spack/repos/builtin/packages/eagle/package.py46
-rw-r--r--var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ecp-proxy-apps/package.py35
-rw-r--r--var/spack/repos/builtin/packages/eigen/find-ptscotch.patch27
-rw-r--r--var/spack/repos/builtin/packages/eigen/package.py55
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py3
-rw-r--r--var/spack/repos/builtin/packages/er/package.py4
-rw-r--r--var/spack/repos/builtin/packages/exchanger/package.py21
-rw-r--r--var/spack/repos/builtin/packages/exiv2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/expect/package.py9
-rw-r--r--var/spack/repos/builtin/packages/exuberant-ctags/package.py2
-rw-r--r--var/spack/repos/builtin/packages/f77-zmq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fabtests/package.py27
-rw-r--r--var/spack/repos/builtin/packages/fairlogger/package.py17
-rw-r--r--var/spack/repos/builtin/packages/fast-global-file-status/package.py1
-rw-r--r--var/spack/repos/builtin/packages/fd-find/package.py21
-rw-r--r--var/spack/repos/builtin/packages/filo/package.py32
-rw-r--r--var/spack/repos/builtin/packages/flatbuffers/package.py13
-rw-r--r--var/spack/repos/builtin/packages/flecsi/package.py45
-rw-r--r--var/spack/repos/builtin/packages/freeipmi/package.py40
-rw-r--r--var/spack/repos/builtin/packages/g4abla/package.py1
-rw-r--r--var/spack/repos/builtin/packages/g4emlow/package.py1
-rw-r--r--var/spack/repos/builtin/packages/g4ensdfstate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4ndl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4neutronxs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4photonevaporation/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4pii/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4radioactivedecay/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4realsurface/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4saiddata/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g4tendl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch37
-rw-r--r--var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch73
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py19
-rw-r--r--var/spack/repos/builtin/packages/geant4-data/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geant4/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gengetopt/package.py36
-rw-r--r--var/spack/repos/builtin/packages/glfw/package.py39
-rw-r--r--var/spack/repos/builtin/packages/glusterfs/package.py44
-rw-r--r--var/spack/repos/builtin/packages/gmsh/package.py17
-rw-r--r--var/spack/repos/builtin/packages/gnupg/package.py35
-rw-r--r--var/spack/repos/builtin/packages/go/package.py1
-rw-r--r--var/spack/repos/builtin/packages/gromacs/package.py52
-rw-r--r--var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch323
-rw-r--r--var/spack/repos/builtin/packages/gsl/package.py28
-rw-r--r--var/spack/repos/builtin/packages/gunrock/package.py31
-rw-r--r--var/spack/repos/builtin/packages/hcol/package.py25
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hepmc/package.py34
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py31
-rw-r--r--var/spack/repos/builtin/packages/hpcviewer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/hpx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/htop/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hydrogen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-xed/package.py3
-rw-r--r--var/spack/repos/builtin/packages/jblob/package.py35
-rw-r--r--var/spack/repos/builtin/packages/jdk/package.py30
-rw-r--r--var/spack/repos/builtin/packages/kallisto/package.py29
-rw-r--r--var/spack/repos/builtin/packages/kealib/package.py7
-rw-r--r--var/spack/repos/builtin/packages/keyutils/package.py27
-rw-r--r--var/spack/repos/builtin/packages/kraken2/package.py35
-rw-r--r--var/spack/repos/builtin/packages/kvtree/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py11
-rw-r--r--var/spack/repos/builtin/packages/lastz/package.py8
-rw-r--r--var/spack/repos/builtin/packages/lastz/sequences.c.patch244
-rw-r--r--var/spack/repos/builtin/packages/legion/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libfabric/package.py92
-rw-r--r--var/spack/repos/builtin/packages/libffi/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libgcrypt/package.py25
-rw-r--r--var/spack/repos/builtin/packages/libgit2/package.py79
-rw-r--r--var/spack/repos/builtin/packages/libgpg-error/package.py20
-rw-r--r--var/spack/repos/builtin/packages/libhio/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libiscsi/package.py28
-rw-r--r--var/spack/repos/builtin/packages/libmesh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libsndfile/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libunwind/package.py25
-rw-r--r--var/spack/repos/builtin/packages/libxpresent/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libxsmm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/likwid/package.py13
-rw-r--r--var/spack/repos/builtin/packages/lksctp-tools/package.py20
-rw-r--r--var/spack/repos/builtin/packages/lmbench/package.py30
-rw-r--r--var/spack/repos/builtin/packages/lua-luaposix/package.py1
-rw-r--r--var/spack/repos/builtin/packages/lvm2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/margo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minigan/package.py28
-rw-r--r--var/spack/repos/builtin/packages/mofem-cephas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_0.patch (renamed from var/spack/repos/builtin/packages/netcdf-fortran/nag.patch)14
-rw-r--r--var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch71
-rw-r--r--var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch11
-rw-r--r--var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch69
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py44
-rw-r--r--var/spack/repos/builtin/packages/mrcpp/package.py46
-rw-r--r--var/spack/repos/builtin/packages/mumps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/munge/package.py16
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mxnet/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ncurses/package.py3
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch312
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/logging.patch13
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch124
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch96
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch11
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/package.py67
-rw-r--r--var/spack/repos/builtin/packages/nfs-utils/package.py34
-rw-r--r--var/spack/repos/builtin/packages/nlopt/package.py1
-rw-r--r--var/spack/repos/builtin/packages/ntirpc/package.py22
-rw-r--r--var/spack/repos/builtin/packages/ocaml/package.py11
-rw-r--r--var/spack/repos/builtin/packages/opam/package.py26
-rw-r--r--var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch14
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py50
-rw-r--r--var/spack/repos/builtin/packages/opencv/package.py3
-rw-r--r--var/spack/repos/builtin/packages/openfoam/package.py6
-rw-r--r--var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch49
-rw-r--r--var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch49
-rw-r--r--var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch40
-rw-r--r--var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch49
-rwxr-xr-xvar/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh6
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py13
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch23
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/package.py5
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openssl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/opensubdiv/package.py85
-rw-r--r--var/spack/repos/builtin/packages/papi/package.py1
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch69
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/package.py84
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py1
-rw-r--r--var/spack/repos/builtin/packages/perfstubs/package.py34
-rw-r--r--var/spack/repos/builtin/packages/perl-want/package.py2
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py12
-rw-r--r--var/spack/repos/builtin/packages/pfunit/package.py9
-rw-r--r--var/spack/repos/builtin/packages/pgi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/php/package.py41
-rw-r--r--var/spack/repos/builtin/packages/pinentry/package.py47
-rw-r--r--var/spack/repos/builtin/packages/plumed/package.py6
-rw-r--r--var/spack/repos/builtin/packages/portage/package.py2
-rw-r--r--var/spack/repos/builtin/packages/precice/package.py1
-rw-r--r--var/spack/repos/builtin/packages/protobuf/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-arviz/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-astpretty/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-audioread/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-auxlib/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-basis-set-exchange/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-bx-python/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-cnvkit/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-contextlib2/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-decorator/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-deprecated/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-dgl/package.py94
-rw-r--r--var/spack/repos/builtin/packages/py-git-review/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-h5glance/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hatchet/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-horovod/package.py120
-rw-r--r--var/spack/repos/builtin/packages/py-ipython/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-ipywidgets/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-console/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-librosa/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-llvmlite/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-merlin/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-merlinwf/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-numba/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-pomegranate/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-pycairo/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pycifrw/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pycosat/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pyfftw/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-pymc3/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-pyqt4/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pyqt5/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pythia/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-python-lzo/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-qtconsole/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-resampy/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-resultsfile/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-rseqc/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-sentencepiece/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-setproctitle/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-simplejson/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-sip/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-soundfile/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-tfdlpack/package.py45
-rw-r--r--var/spack/repos/builtin/packages/py-torch/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-torchtext/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-tuiview/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-versioneer/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-widgetsnbextension/package.py1
-rw-r--r--var/spack/repos/builtin/packages/python/package.py1
-rw-r--r--var/spack/repos/builtin/packages/qgis/package.py217
-rw-r--r--var/spack/repos/builtin/packages/qgis/pyqt5.patch25
-rw-r--r--var/spack/repos/builtin/packages/qmcpack/package.py33
-rw-r--r--var/spack/repos/builtin/packages/qrupdate/package.py26
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-openssl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-sys/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r/change_optflags_tmp.patch67
-rw-r--r--var/spack/repos/builtin/packages/r/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rankstr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/redset/package.py4
-rw-r--r--var/spack/repos/builtin/packages/revbayes/package.py19
-rw-r--r--var/spack/repos/builtin/packages/ripgrep/package.py31
-rw-r--r--var/spack/repos/builtin/packages/root/package.py23
-rw-r--r--var/spack/repos/builtin/packages/rust/package.py480
-rw-r--r--var/spack/repos/builtin/packages/samtools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scr/package.py13
-rw-r--r--var/spack/repos/builtin/packages/seacas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sentencepiece/package.py20
-rw-r--r--var/spack/repos/builtin/packages/shuffile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/silo/package.py29
-rw-r--r--var/spack/repos/builtin/packages/sirius/package.py4
-rw-r--r--var/spack/repos/builtin/packages/slepc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/source-highlight/package.py21
-rw-r--r--var/spack/repos/builtin/packages/spath/package.py34
-rw-r--r--var/spack/repos/builtin/packages/spdlog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spiral/package.py65
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ssht/float_conversion.patch11
-rw-r--r--var/spack/repos/builtin/packages/ssht/package.py31
-rw-r--r--var/spack/repos/builtin/packages/stat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/swig/package.py1
-rw-r--r--var/spack/repos/builtin/packages/sz/package.py94
-rw-r--r--var/spack/repos/builtin/packages/tau/package.py47
-rw-r--r--var/spack/repos/builtin/packages/tcsh/package.py9
-rw-r--r--var/spack/repos/builtin/packages/the-silver-searcher/package.py1
-rw-r--r--var/spack/repos/builtin/packages/tixi/package.py24
-rw-r--r--var/spack/repos/builtin/packages/tmux/package.py10
-rw-r--r--var/spack/repos/builtin/packages/tree/package.py5
-rw-r--r--var/spack/repos/builtin/packages/triangle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch39
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py68
-rw-r--r--var/spack/repos/builtin/packages/ucx/package.py3
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py14
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/auto-mount.patch25
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/package.py5
-rw-r--r--var/spack/repos/builtin/packages/unqlite/package.py18
-rw-r--r--var/spack/repos/builtin/packages/uqtk/package.py20
-rw-r--r--var/spack/repos/builtin/packages/userspace-rcu/examples.patch13
-rw-r--r--var/spack/repos/builtin/packages/userspace-rcu/package.py31
-rw-r--r--var/spack/repos/builtin/packages/util-linux/package.py4
-rw-r--r--var/spack/repos/builtin/packages/valgrind/package.py3
-rw-r--r--var/spack/repos/builtin/packages/veccore/package.py40
-rw-r--r--var/spack/repos/builtin/packages/vecgeom/package.py111
-rw-r--r--var/spack/repos/builtin/packages/verrou/package.py12
-rw-r--r--var/spack/repos/builtin/packages/xcfun/package.py37
-rw-r--r--var/spack/repos/builtin/packages/xgboost/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xsetpointer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xts/package.py19
-rw-r--r--var/spack/repos/builtin/packages/yarn/package.py22
300 files changed, 6803 insertions, 816 deletions
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
index 286ee08086..2350259b22 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
@@ -21,6 +21,14 @@ class CmakeClient(CMakePackage):
version('1.0', '4cb3ff35b2472aae70f542116d616e63')
+ variant(
+ 'multi', description='',
+ values=any_combination_of('up', 'right', 'back').with_default('up')
+ )
+ variant('single', description='', default='blue',
+ values=('blue', 'red', 'green'), multi=False)
+ variant('truthy', description='', default=True)
+
callback_counter = 0
flipped = False
diff --git a/var/spack/repos/builtin.mock/packages/fetch-options/package.py b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
new file mode 100644
index 0000000000..1a31a535e1
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class FetchOptions(Package):
+ """Mock package with fetch_options."""
+
+ homepage = "http://www.fetch-options-example.com"
+
+ url = 'https://example.com/some/tarball-1.0.tar.gz'
+
+ fetch_options = {'timeout': 42, 'cookie': 'foobar'}
+ timeout = {'timeout': 65}
+ cookie = {'cookie': 'baz'}
+
+ version('1.2', 'abc12', fetch_options=cookie)
+ version('1.1', 'abc11', fetch_options=timeout)
+ version('1.0', 'abc10')
diff --git a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
new file mode 100644
index 0000000000..52fd3d99a6
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class TrivialPkgWithValidHash(Package):
+ url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0"
+
+ version('1.0', '6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72', expand=False)
+
+ hashed_content = "test content"
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py
new file mode 100644
index 0000000000..ea9bf4172f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/acl/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Acl(AutotoolsPackage):
+ """Commands for Manipulating POSIX Access Control Lists."""
+
+ homepage = "https://savannah.nongnu.org/projects/acl"
+ url = "http://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz"
+
+ version('2.2.53', sha256='9e905397ac10d06768c63edd0579c34b8431555f2ea8e8f2cee337b31f856805')
+ version('2.2.52', sha256='f3f31d2229c903184ff877aa0ee658b87ec20fec8aebb51e65eaa68d7b24e629')
+ version('2.2.51', sha256='31a43d96a274a39bfcb805fb903d45840515344884d224cef166b482693a9f48')
+ version('2.2.50', sha256='39e21d623a9f0da8c042cde346c01871b498d51400e92c2ab1490d5ffd724401')
+ version('2.2.49', sha256='c6e01460cac4e47673dd60a7f57b970b49f6998bb564eff141cca129aa8940d1')
+ version('2.2.48', sha256='877eaeccc1500baec58391935b46ac7dfc5ffd8c54fbc0385ccd8b2b18ac3fa6')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('attr')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/acts-core/package.py b/var/spack/repos/builtin/packages/acts-core/package.py
index 1cd9fe6375..421a931604 100644
--- a/var/spack/repos/builtin/packages/acts-core/package.py
+++ b/var/spack/repos/builtin/packages/acts-core/package.py
@@ -34,6 +34,8 @@ class ActsCore(CMakePackage):
maintainers = ['HadrienG2']
version('develop', branch='master')
+ version('0.18.0', commit='d58a68cf75b52a5e0f563bc237f09250aa9da80c')
+ version('0.17.0', commit='0789f654ff484b013fd27e5023cf342785ea8d97')
version('0.16.0', commit='b3d965fe0b8ae335909d79114ef261c6b996773a')
version('0.15.0', commit='267c28f69c561e64369661a6235b03b5a610d6da')
version('0.14.0', commit='38d678fcb205b77d60326eae913fbb1b054acea1')
@@ -75,7 +77,8 @@ class ActsCore(CMakePackage):
depends_on('cmake @3.11:', type='build')
depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3')
- depends_on('boost @1.62: +program_options +test', when='@0.10.4:')
+ depends_on('boost @1.62: +program_options +test', when='@0.10.4:0.18.0')
+ depends_on('boost @1.69: +program_options +test', when='@0.19.0:')
depends_on('eigen @3.2.9:', type='build')
depends_on('nlohmann-json @3.2.0:', when='@0.14.0: +json')
depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
index c9e32faec5..9d298b4213 100644
--- a/var/spack/repos/builtin/packages/adios2/package.py
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -16,7 +16,7 @@ class Adios2(CMakePackage):
maintainers = ['ax3l', 'chuckatkins', 'williamfgc']
- version('develop', branch='master')
+ version('master', branch='master')
version('2.5.0', sha256='7c8ff3bf5441dd662806df9650c56a669359cb0185ea232ecb3578de7b065329')
version('2.4.0', sha256='50ecea04b1e41c88835b4b3fd4e7bf0a0a2a3129855c9cc4ba6cf6a1575106e2')
version('2.3.1', sha256='3bf81ccc20a7f2715935349336a76ba4c8402355e1dc3848fcd6f4c3c5931893')
@@ -100,8 +100,12 @@ class Adios2(CMakePackage):
extends('python', when='+python')
depends_on('python@2.7:2.8,3.5:',
- when='@:2.4.0 +python', type=('build', 'run'))
- depends_on('python@3.5:', when='@2.5.0: +python', type=('build', 'run'))
+ when='@:2.4.0 +python',
+ type=('build', 'run'))
+ depends_on('python@3.5:', when='@2.5.0: +python',
+ type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@:2.4.0', type='test')
+ depends_on('python@3.5:', when='@2.5.0:', type='test')
depends_on('py-numpy@1.6.1:', type=('build', 'run'), when='+python')
depends_on('py-mpi4py@2.0.0:', type=('build', 'run'), when='+mpi +python')
@@ -141,9 +145,11 @@ class Adios2(CMakePackage):
'ON' if '+fortran' in spec else 'OFF'),
'-DADIOS2_USE_Endian_Reverse={0}'.format(
'ON' if '+endian_reverse' in spec else 'OFF'),
+ '-DBUILD_TESTING:BOOL={0}'.format(
+ 'ON' if self.run_tests else 'OFF'),
]
- if self.spec.version >= Version('2.4.0'):
+ if spec.version >= Version('2.4.0'):
args.append('-DADIOS2_USE_Blosc={0}'.format(
'ON' if '+blosc' in spec else 'OFF'))
args.append('-DADIOS2_USE_BZip2={0}'.format(
@@ -153,7 +159,7 @@ class Adios2(CMakePackage):
args.append('-DADIOS2_USE_SSC={0}'.format(
'ON' if '+ssc' in spec else 'OFF'))
- if self.spec.version >= Version('2.5.0'):
+ if spec.version >= Version('2.5.0'):
args.append('-DADIOS2_USE_DataSpaces={0}'.format(
'ON' if '+dataspaces' in spec else 'OFF'))
@@ -173,8 +179,8 @@ class Adios2(CMakePackage):
args.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL={0}'.format(
'ON' if '+pic' in spec else 'OFF'))
- if spec.satisfies('+python'):
+ if spec.satisfies('+python') or self.run_tests:
args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s'
- % self.spec['python'].command.path)
+ % spec['python'].command.path)
return args
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index 336f1833db..741b57773b 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -12,14 +12,19 @@ class AdolC(AutotoolsPackage):
overloading."""
homepage = "https://projects.coin-or.org/ADOL-C"
- url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz"
- git = "https://gitlab.com/adol-c/adol-c.git"
-
- version('develop', branch='master')
- version('2.6.3', sha256='6ed74580695a0d2c960581e5430ebfcd380eb5da9337daf488bf2e89039e9c21')
- version('2.6.2', sha256='f6326e7ba994d02074816132d4461915221069267c31862b31fab7020965c658')
- version('2.6.1', sha256='037089e0f64224e5e6255b61af4fe7faac080533fd778b76fe946e52491918b5')
- version('2.5.2', sha256='2fa514d9799989d6379738c2bcf75070d9834e4d227eb32a5b278840893b2af9')
+ url = "https://github.com/coin-or/ADOL-C/archive/releases/2.7.2.tar.gz"
+ git = "https://github.com/coin-or/ADOL-C.git"
+ version('master', branch='master')
+ version('2.7.2', sha256='701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e')
+ version('2.7.1', sha256='a05422cc7faff5700e134e113822d1934fb540ad247e63778524d5d6d75bb0ef')
+ version('2.7.0', sha256='a75cfa6240de8692b2a3e8e782319efefc316f1e595234fcee972ab0e7afa3cd')
+ version('2.6.3', sha256='9750a0a06dcab9a0dba2010f07872ea9057ed29781e9e7d571691c27aa559b04')
+ version('2.6.2', sha256='4ef6ff15b4691235c0ea6580917c7eb17d09ded485ac524a0a33ac7e99ab004b')
+ version('2.6.1', sha256='48b41c40d1c8437fb98eeed4b24deaf3e59da804f34ac9c848da1b049b3b071a')
+ version('2.6.0', sha256='26a1fcb8561f15781f645d245fc345c83497147ec7bb64d4bfc96e32c34c6c1c')
+ version('2.5.2', sha256='390edb1513f749b2dbf6fb90db12ce786f6532af80e589f161ff43646b3a78a6')
+ version('2.5.1', sha256='dedb93c3bb291366d799014b04b6d1ec63ca4e7216edf16167776c07961e3b4a')
+ version('2.5.0', sha256='9d51c426d831884aac8f418be410c001eb62f3a11cb8f30c66af0b842edffb96')
variant('advanced_branching', default=False,
description='Enable advanced branching to reduce retaping')
diff --git a/var/spack/repos/builtin/packages/agrep/package.py b/var/spack/repos/builtin/packages/agrep/package.py
new file mode 100644
index 0000000000..dce047ad05
--- /dev/null
+++ b/var/spack/repos/builtin/packages/agrep/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Agrep(MakefilePackage):
+ """AGREP - an approximate GREP.
+ Fast searching files for a string or regular expression,
+ with approximate matching capabilities and user-definable records.
+ Developed 1989-1991 by Udi Manber, Sun Wu et al. at the University
+ of Arizona."""
+
+ homepage = "http://www.tgries.de/agrep"
+ url = "https://www.tgries.de/agrep/agrep-3.41.tgz"
+
+ version('3.41', sha256='0508eafaf9725fc67cc955eb6d32ba4f50138443a4fea4275508d2c3f67a234e')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('agrep', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py
index 5b216bebd7..706e7f6bd2 100644
--- a/var/spack/repos/builtin/packages/amdblis/package.py
+++ b/var/spack/repos/builtin/packages/amdblis/package.py
@@ -15,6 +15,7 @@ class Amdblis(BlisBase):
computationally intensive operations.
"""
+ _name = 'amdblis'
homepage = "https://developer.amd.com/amd-aocl/blas-library/"
url = "https://github.com/amd/blis/archive/2.1.tar.gz"
git = "https://github.com/amd/blis.git"
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index 8d0b15ead6..aaf28a9d60 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -18,6 +18,7 @@ class Amrex(CMakePackage):
maintainers = ['mic84', 'asalmgren']
version('develop', branch='development')
+ version('20.03', sha256='a535dcc016f0d38b55d0ab8e9067c1c53e3686961f6a1fb471cb18a0ebc909e6')
version('20.02', sha256='33529a23694283d12eb37d4682aa86c9cc1240bd50124efcf4464747a7554147')
version('20.01', sha256='f7026d267ca5de79ec7e740264d54230f419776d40feae705e939be0b1d8e0d3')
version('19.10', commit='52844b32b7da11e9733b9a7f4a782e51de7f5e1e') # tag:19.10
diff --git a/var/spack/repos/builtin/packages/anaconda3/package.py b/var/spack/repos/builtin/packages/anaconda3/package.py
new file mode 100644
index 0000000000..2925b0a458
--- /dev/null
+++ b/var/spack/repos/builtin/packages/anaconda3/package.py
@@ -0,0 +1,53 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+from os.path import split
+
+
+class Anaconda3(Package):
+ """
+ Anaconda is a free and open-source distribution of the Python and R
+ programming languages for scientific computing, that aims to simplify
+ package management and deployment. Package versions are managed by
+ the package management system conda.
+ """
+ homepage = "https://www.anaconda.com"
+ url = "https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh"
+
+ maintainers = ['ajkotobi']
+
+ version('2019.10', sha256='46d762284d252e51cd58a8ca6c8adc9da2eadc82c342927b2f66ed011d1d8b53', expand=False)
+ version('2019.07', sha256='69581cf739365ec7fb95608eef694ba959d7d33b36eb961953f2b82cb25bdf5a', expand=False)
+ version('2019.03', sha256='45c851b7497cc14d5ca060064394569f724b67d9b5f98a926ed49b834a6bb73a', expand=False)
+ version('2018.12', sha256='1019d0857e5865f8a6861eaf15bfe535b87e92b72ce4f531000dc672be7fce00', expand=False)
+ version('5.3.1', sha256='d4c4256a8f46173b675dd6a62d12f566ed3487f932bab6bb7058f06c124bcc27', expand=False)
+ version('5.3.0', sha256='cfbf5fe70dd1b797ec677e63c61f8efc92dad930fd1c94d60390bb07fdc09959', expand=False)
+ version('5.2.0', sha256='09f53738b0cd3bb96f5b1bac488e5528df9906be2480fe61df40e0e0d19e3d48', expand=False)
+ version('5.1.0', sha256='7e6785caad25e33930bc03fac4994a434a21bc8401817b7efa28f53619fa9c29', expand=False)
+ version('5.0.1', sha256='55e4db1919f49c92d5abbf27a4be5986ae157f074bf9f8238963cd4582a4068a', expand=False)
+ version('5.0.0.1', sha256='092c92427f44687d789a41922ce8426fbdc3c529cc9d6d4ee6de5b62954b93b2', expand=False)
+ version('5.0.0', sha256='67f5c20232a3e493ea3f19a8e273e0618ab678fa14b03b59b1783613062143e9', expand=False)
+ version('4.4.0', sha256='3301b37e402f3ff3df216fe0458f1e6a4ccbb7e67b4d626eae9651de5ea3ab63', expand=False)
+ version('4.3.1', sha256='4447b93d2c779201e5fb50cfc45de0ec96c3804e7ad0fe201ab6b99f73e90302', expand=False)
+ version('4.3.0', sha256='e9169c3a5029aa820393ac92704eb9ee0701778a085ca7bdc3c57b388ac1beb6', expand=False)
+ version('4.2.0', sha256='73b51715a12b6382dd4df3dd1905b531bd6792d4aa7273b2377a0436d45f0e78', expand=False)
+ version('4.1.1', sha256='4f5c95feb0e7efeadd3d348dcef117d7787c799f24b0429e45017008f3534e55', expand=False)
+ version('4.1.0', sha256='11d32cf4026603d3b327dc4299863be6b815905ff51a80329085e1bb9f96c8bd', expand=False)
+ version('4.0.0', sha256='36a558a1109868661a5735f5f32607643f6dc05cf581fefb1c10fb8abbe22f39', expand=False)
+ version('2.5.0', sha256='addadcb927f15cb0b5b6e36890563d3352a8ff6a901ea753d389047d274a29a9', expand=False)
+ version('2.4.1', sha256='0735e69199fc37135930ea2fd4fb6ad0adef215a2a7ba9fd6b0a0a4daaadb1cf', expand=False)
+ version('2.4.0', sha256='fb4e480059e991f2fa632b5a9bcdd284c7f0677814cd719c11d524453f96a40d', expand=False)
+ version('2.3.0', sha256='3be5410b2d9db45882c7de07c554cf4f1034becc274ec9074b23fd37a5c87a6f', expand=False)
+ version('2.2.0', sha256='4aac68743e7706adb93f042f970373a6e7e087dbf4b02ac467c94ca4ce33d2d1', expand=False)
+ version('2.1.0', sha256='af3225ccbe8df0ffb918939e009aa57740e35058ebf9dfcf5fec794a77556c3c', expand=False)
+ version('2.0.1', sha256='3c3b834793e461f3316ad1d9a9178c67859a9d74aaf7bcade076f04134dd1e26', expand=False)
+ version('2.0.0', sha256='57ce4f97e300cf94c5724f72d992e9eecef708fdaa13bc672ae9779773056540', expand=False)
+
+ def install(self, spec, prefix):
+
+ dir, anaconda_script = split(self.stage.archive_file)
+ bash = which('bash')
+ bash(anaconda_script, '-b', '-f', '-p', self.prefix)
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index 468a8947c2..35a263541f 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -108,7 +108,11 @@ class ArpackNg(Package):
if '+mpi' in spec:
options.append('-DMPI=ON')
- # TODO: -DINTERFACE64=ON
+ # If 64-bit BLAS is used:
+ if (spec.satisfies('^openblas+ilp64') or
+ spec.satisfies('^intel-mkl+ilp64') or
+ spec.satisfies('^intel-parallel-studio+mkl+ilp64')):
+ options.append('-DINTERFACE64=1')
if '+shared' in spec:
options.append('-DBUILD_SHARED_LIBS=ON')
diff --git a/var/spack/repos/builtin/packages/attr/package.py b/var/spack/repos/builtin/packages/attr/package.py
index a58dc75f4d..549909d209 100644
--- a/var/spack/repos/builtin/packages/attr/package.py
+++ b/var/spack/repos/builtin/packages/attr/package.py
@@ -12,9 +12,17 @@ class Attr(AutotoolsPackage):
homepage = "https://savannah.nongnu.org/projects/attr"
url = "http://download.savannah.gnu.org/releases/attr/attr-2.4.47.src.tar.gz"
+ version('2.4.48', sha256='5ead72b358ec709ed00bbf7a9eaef1654baad937c001c044fe8b74c57f5324e7')
version('2.4.47', sha256='25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859')
version('2.4.46', sha256='dcd69bdca7ff166bc45141eddbcf21967999a6b66b0544be12a1cc2fd6340e1f')
+ def url_for_version(self, version):
+ if version >= Version('2.4.48'):
+ url = 'http://download.savannah.gnu.org/releases/attr/attr-{0}.tar.gz'
+ else:
+ url = 'http://download.savannah.gnu.org/releases/attr/attr-{0}.src.tar.gz'
+ return url.format(version)
+
def configure_args(self):
args = []
args.append('--disable-static')
@@ -22,5 +30,7 @@ class Attr(AutotoolsPackage):
# Ref. http://www.linuxfromscratch.org/blfs/view/7.5/postlfs/attr.html
def install(self, spec, prefix):
- make()
- make('install', 'install-dev', 'install-lib')
+ if self.version >= Version('2.4.48'):
+ make('install')
+ else:
+ make('install', 'install-dev', 'install-lib')
diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
index 9a0bb4a9cc..195341683d 100644
--- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
+++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
@@ -12,7 +12,7 @@ class AwsParallelcluster(PythonPackage):
tool to deploy and manage HPC clusters in the AWS cloud."""
homepage = "https://github.com/aws/aws-parallelcluster"
- url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.5.1.tar.gz"
+ url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.6.0.tar.gz"
maintainers = [
'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
@@ -23,6 +23,7 @@ class AwsParallelcluster(PythonPackage):
'pcluster.config', 'pcluster.networking'
]
+ version('2.6.0', sha256='aaed6962cf5027206834ac24b3d312da91e0f96ae8607f555e12cb124b869f0c')
version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303')
version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3')
diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py
index 1725a2751c..73eb5acdcd 100644
--- a/var/spack/repos/builtin/packages/axl/package.py
+++ b/var/spack/repos/builtin/packages/axl/package.py
@@ -19,13 +19,15 @@ def async_api_validator(pkg_name, variant_name, values):
class Axl(CMakePackage):
"""Asynchronous transfer library"""
- homepage = "https://github.com/ECP-VeloC/AXL"
- url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.1.zip"
+ homepage = "https://github.com/ecp-veloc/AXL"
+ url = "https://github.com/ecp-veloc/AXL/archive/v0.1.1.zip"
git = "https://github.com/ecp-veloc/axl.git"
tags = ['ecp']
version('master', branch='master')
+ version('0.3.0', sha256='3f5efff87be700a5792a0ee9a7aeae45c640e2936623b024e8bc1056f7952a46')
+ version('0.2.0', sha256='a0babe3576da30919f89df2f83c76bd01d06345919f2e54d4dddcd6f73faedcc')
version('0.1.1', sha256='ebbf231bb542a6c91efb79fce05d4c8a346d5506d88ae1899fb670be52e81933')
variant('async_api', default='daemon',
diff --git a/var/spack/repos/builtin/packages/bat/package.py b/var/spack/repos/builtin/packages/bat/package.py
new file mode 100644
index 0000000000..50c3b5349a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bat/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Bat(Package):
+ """A cat(1) clone with wings."""
+
+ homepage = "https://github.com/sharkdp/bat"
+ url = "https://github.com/sharkdp/bat/archive/v0.10.0.tar.gz"
+
+ version('0.12.1', sha256='1dd184ddc9e5228ba94d19afc0b8b440bfc1819fef8133fe331e2c0ec9e3f8e2')
+
+ depends_on('rust')
+
+ def install(self, spec, prefix):
+ cargo = which('cargo')
+ cargo('install', '--root', prefix, '--path', '.')
+
+ # cargo seems to need these to be set so that when it's building
+ # onig_sys it can run llvm-config and link against libclang.
+ def setup_build_environment(self, env):
+ env.append_flags('LLVM_CONFIG_PATH',
+ join_path(self.spec['llvm'].prefix.libexec.llvm,
+ 'llvm-config'))
+ env.append_flags('LIBCLANG_PATH', self.spec['llvm'].prefix.lib)
diff --git a/var/spack/repos/builtin/packages/batctl/package.py b/var/spack/repos/builtin/packages/batctl/package.py
new file mode 100644
index 0000000000..45bd5ecd73
--- /dev/null
+++ b/var/spack/repos/builtin/packages/batctl/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Batctl(MakefilePackage):
+ """B.A.T.M.A.N. advanced control and management tool"""
+
+ homepage = "https://github.com/open-mesh-mirror/batctl"
+ url = "https://github.com/open-mesh-mirror/batctl/archive/v2019.5.tar.gz"
+
+ version('2019.5', sha256='ffe5857a33068ec174140c154610d76d833524d840a2fc2d1a15e16686213cad')
+ version('2019.4', sha256='a3564eb9727335352dc0cfa2f2b29474c2c837384689ac5fcb387784a56e7685')
+ version('2019.3', sha256='2bd93fa14925a8dc63a67e64266c8ccd2fa3ac44b10253d93e6f8a630350070c')
+ version('2019.2', sha256='fb656208ff7d4cd8b1b422f60c9e6d8747302a347cbf6c199d7afa9b80f80ea3')
+
+ depends_on('libnl')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('batctl', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index 655c915178..26d79616dd 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -92,6 +92,7 @@ class Bazel(Package):
# https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-unix-prereq
depends_on('jdk@1.8.0:1.8.999', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
+ depends_on('zip', type=('build', 'run'))
# Pass Spack environment variables to the build
patch('bazelruleclassprovider-0.25.patch', when='@0.25:')
diff --git a/var/spack/repos/builtin/packages/bcache/func_crc64.patch b/var/spack/repos/builtin/packages/bcache/func_crc64.patch
new file mode 100644
index 0000000000..7acc312139
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bcache/func_crc64.patch
@@ -0,0 +1,13 @@
+diff --git a/bcache.c b/bcache.c
+index 8f37445..8b4b986 100644
+--- a/bcache.c
++++ b/bcache.c
+@@ -115,7 +115,7 @@ static const uint64_t crc_table[256] = {
+ 0x9AFCE626CE85B507ULL
+ };
+
+-inline uint64_t crc64(const void *_data, size_t len)
++uint64_t crc64(const void *_data, size_t len)
+ {
+ uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
+ const unsigned char *data = _data;
diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py
new file mode 100644
index 0000000000..63c42de333
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bcache/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Bcache(MakefilePackage):
+ """Bcache is a patch for the Linux kernel to use SSDs to cache other block
+ devices."""
+
+ homepage = "http://bcache.evilpiepirate.org"
+ url = "https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz"
+
+ version('1.0.8', sha256='d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c')
+ version('1.0.7', sha256='64d76d1085afba8c3d5037beb67bf9d69ee163f357016e267bf328c0b1807abd')
+ version('1.0.6', sha256='9677c6da3ceac4e1799d560617c4d00ea7e9d26031928f8f94b8ab327496d4e0')
+ version('1.0.5', sha256='1449294ef545b3dc6f715f7b063bc2c8656984ad73bcd81a0dc048cbba416ea9')
+ version('1.0.4', sha256='102ffc3a8389180f4b491188c3520f8a4b1a84e5a7ca26d2bd6de1821f4d913d')
+
+ depends_on('libuuid')
+ depends_on('util-linux')
+ depends_on('gettext')
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', '-lintl')
+
+ patch('func_crc64.patch', sha256='558b35cadab4f410ce8f87f0766424a429ca0611aa2fd247326ad10da115737d')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('bcache-register', prefix.bin)
+ install('bcache-super-show', prefix.bin)
+ install('make-bcache', prefix.bin)
+ install('probe-bcache', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index d84dd32bc5..4a647e7e88 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -14,6 +14,7 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
homepage = "http://www.gnu.org/software/binutils/"
gnu_mirror_path = "binutils/binutils-2.28.tar.bz2"
+ version('2.34', sha256='89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6')
version('2.33.1', sha256='0cb4843da15a65a953907c96bad658283f3c4419d6bcc56bf2789db16306adb2')
version('2.32', sha256='de38b15c902eb2725eac6af21183a5f34ea4634cb0bcef19612b50e5ed31072d')
version('2.31.1', sha256='ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0')
@@ -46,6 +47,10 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
depends_on('m4', type='build', when='@:2.29.99 +gold')
depends_on('bison', type='build', when='@:2.29.99 +gold')
+ # 2.34 needs makeinfo due to a bug, see:
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=25491
+ depends_on('texinfo', type='build', when='@2.34')
+
conflicts('+gold', when='platform=darwin',
msg="Binutils cannot build linkers on macOS")
diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py
index ea7ca8ff42..c2fc1545a3 100644
--- a/var/spack/repos/builtin/packages/blis/package.py
+++ b/var/spack/repos/builtin/packages/blis/package.py
@@ -102,6 +102,10 @@ class BlisBase(Package):
if self.spec.satisfies('platform=darwin'):
fix_darwin_install_name(self.prefix.lib)
+ @property
+ def libs(self):
+ return find_libraries(['libblis'], root=self.prefix, recursive=True)
+
class Blis(BlisBase):
"""BLIS is a portable software framework for instantiating high-performance
diff --git a/var/spack/repos/builtin/packages/bmi/package.py b/var/spack/repos/builtin/packages/bmi/package.py
index dfdacf5a49..c2862ed3ee 100644
--- a/var/spack/repos/builtin/packages/bmi/package.py
+++ b/var/spack/repos/builtin/packages/bmi/package.py
@@ -12,6 +12,8 @@ class Bmi(AutotoolsPackage):
homepage = 'https://xgitlab.cels.anl.gov/sds/bmi'
git = 'https://xgitlab.cels.anl.gov/sds/bmi.git'
+ maintainers = ['carns']
+
version('develop', branch='master')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 452ae99b8a..41be592a52 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -96,8 +96,12 @@ class Boost(Package):
# mpi/python are not installed by default because they pull in many
# dependencies and/or because there is a great deal of customization
# possible (and it would be difficult to choose sensible defaults)
+ #
+ # Boost.Container can be both header-only and compiled. '+container'
+ # indicates the compiled version which requires Extended Allocator
+ # support. The header-only library is installed when no variant is given.
default_noinstall_libs\
- = set(['context', 'coroutine', 'fiber', 'mpi', 'python'])
+ = set(['container', 'context', 'coroutine', 'fiber', 'mpi', 'python'])
all_libs = default_install_libs | default_noinstall_libs
@@ -174,6 +178,9 @@ class Boost(Package):
conflicts('+taggedlayout', when='+versionedlayout')
conflicts('+numpy', when='~python')
+ # Container's Extended Allocators were not added until 1.56.0
+ conflicts('+container', when='@:1.55.99')
+
# Patch fix from https://svn.boost.org/trac/boost/ticket/11856
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py
index 9989f37c02..8100b9dfed 100644
--- a/var/spack/repos/builtin/packages/bowtie2/package.py
+++ b/var/spack/repos/builtin/packages/bowtie2/package.py
@@ -11,7 +11,7 @@ class Bowtie2(Package):
"""Bowtie 2 is an ultrafast and memory-efficient tool for aligning
sequencing reads to long reference sequences"""
- homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
+ homepage = "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml"
url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.3.1/bowtie2-2.3.1-source.zip"
version('2.3.5.1', sha256='335c8dafb1487a4a9228ef922fbce4fffba3ce8bc211e2d7085aac092155a53f')
diff --git a/var/spack/repos/builtin/packages/bubblewrap/package.py b/var/spack/repos/builtin/packages/bubblewrap/package.py
new file mode 100644
index 0000000000..dc00c56148
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bubblewrap/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Bubblewrap(AutotoolsPackage):
+ """Unprivileged sandboxing tool"""
+
+ homepage = "https://github.com/containers/bubblewrap"
+ url = "https://github.com/containers/bubblewrap/archive/v0.4.0.tar.gz"
+
+ version('0.4.0', sha256='dedea228f53dd5f589d8225b4584a9b354849a221caf7304874ca2e4d4bcdafb')
+ version('0.3.3', sha256='439e4cd84d9d19c9e5b0c6aa0f0c3a55bbb893ae5ec112a5b575eadd2165f039')
+ version('0.3.2', sha256='c66c1b6da3257e06b38a339611e76b21dc52a47975d55429071c22455259d010')
+ version('0.3.1', sha256='3757cb021d1a3ccc36828a58363817e1923c458ed03260d0c2b3a99da61bfb81')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('libcap')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('autogen.sh')
diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py
index 57d7046f93..08d5978a63 100644
--- a/var/spack/repos/builtin/packages/bzip2/package.py
+++ b/var/spack/repos/builtin/packages/bzip2/package.py
@@ -16,6 +16,9 @@ class Bzip2(Package):
homepage = "https://sourceware.org/bzip2/"
url = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz"
+ # The server is sometimes a bit slow to respond
+ fetch_options = {'timeout': 60}
+
version('1.0.8', sha256='ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269')
version('1.0.7', sha256='e768a87c5b1a79511499beb41500bcc4caf203726fff46a6f5f9ad27fe08ab2b')
version('1.0.6', sha256='a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd')
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index 6169a7ee78..fb12a78704 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -19,6 +19,7 @@ class Caliper(CMakePackage):
git = "https://github.com/LLNL/Caliper.git"
version('master')
+ version('2.3.0', tag='v2.3.0')
version('2.2.0', tag='v2.2.0')
version('2.1.1', tag='v2.1.1')
version('2.0.1', tag='v2.0.1')
@@ -64,21 +65,23 @@ class Caliper(CMakePackage):
depends_on('libpfm4@4.8:4.99', when='+libpfm')
depends_on('mpi', when='+mpi')
- depends_on('unwind@2018.10.12,1.2:1.99', when='+callpath')
+ depends_on('unwind@1.2:1.99', when='+callpath')
depends_on('sosflow@spack', when='@1.0:1.99+sosflow')
depends_on('cmake', type='build')
- depends_on('python', type='build')
+ depends_on('python@3:', type='build')
# sosflow support not yet in 2.0
- conflicts('+sosflow', '@2.0.0:2.2.99')
+ conflicts('+sosflow', '@2.0.0:2.3.99')
conflicts('+adiak', '@:2.1.99')
def cmake_args(self):
spec = self.spec
args = [
+ ('-DPYTHON_EXECUTABLE=%s' %
+ spec['python'].command.path),
'-DBUILD_TESTING=Off',
'-DBUILD_DOCS=Off',
'-DBUILD_SHARED_LIBS=%s' % ('On' if '+shared' in spec else 'Off'),
diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py
index 481e4a47f1..973a6c3d11 100644
--- a/var/spack/repos/builtin/packages/cctools/package.py
+++ b/var/spack/repos/builtin/packages/cctools/package.py
@@ -13,16 +13,17 @@ class Cctools(AutotoolsPackage):
"""
homepage = "https://github.com/cooperative-computing-lab/cctools"
- url = "https://github.com/cooperative-computing-lab/cctools/archive/release/6.1.1.tar.gz"
+ url = "https://github.com/cooperative-computing-lab/cctools/archive/release/7.1.0.tar.gz"
+ version('7.1.0', sha256='84748245db10ff26c0c0a7b9fd3ec20fbbb849dd4aadc5e8531fd1671abe7a81')
version('7.0.18', sha256='5b6f3c87ae68dd247534a5c073eb68cb1a60176a7f04d82699fbc05e649a91c2')
version('6.1.1', sha256='97f073350c970d6157f80891b3bf6d4f3eedb5f031fea386dc33e22f22b8af9d')
depends_on('openssl')
depends_on('perl+shared', type=('build', 'run'))
- depends_on('python@:2.9', when='@6.1.1', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
depends_on('readline')
+ depends_on('gettext') # Corrects python linking of -lintl flag.
depends_on('swig')
# depends_on('xrootd')
depends_on('zlib')
@@ -44,21 +45,49 @@ class Cctools(AutotoolsPackage):
def configure_args(self):
args = []
- # For python
- if self.spec.satisfies('^python@3:'):
- args.append('--with-python-path=no')
- args.append(
- '--with-python3-path={0}'.format(self.spec['python'].prefix)
- )
+
+ # make sure we do not pick a python outside spack:
+ if self.spec.satisfies('@6.1.1'):
+ if self.spec.satisfies('^python@3:'):
+ args.extend([
+ '--with-python3-path', self.spec['python'].prefix,
+ '--with-python-path', 'no'
+ ])
+ elif self.spec.satisfies('^python@:2.9'):
+ args.extend([
+ '--with-python-path', self.spec['python'].prefix,
+ '--with-python3-path', 'no'
+ ])
+ else:
+ args.extend([
+ '--with-python-path', 'no',
+ '--with-python3-path', 'no'
+ ])
else:
- args.append('--with-python3-path=no')
- args.append(
- '--with-python-path={0}'.format(self.spec['python'].prefix)
- )
+ # versions 7 and above, where --with-python-path recognized the
+ # python version:
+ if self.spec.satisfies('^python@3:'):
+ args.extend([
+ '--with-python-path', self.spec['python'].prefix,
+ '--with-python2-path', 'no'
+ ])
+ elif self.spec.satisfies('^python@:2.9'):
+ args.extend([
+ '--with-python-path', self.spec['python'].prefix,
+ '--with-python3-path', 'no'
+ ])
+ else:
+ args.extend([
+ '--with-python2-path', 'no',
+ '--with-python3-path', 'no'
+ ])
+
# disable these bits
for p in ['mysql', 'xrootd']:
args.append('--with-{0}-path=no'.format(p))
+
# point these bits at the Spack installations
for p in ['openssl', 'perl', 'readline', 'swig', 'zlib']:
args.append('--with-{0}-path={1}'.format(p, self.spec[p].prefix))
+
return args
diff --git a/var/spack/repos/builtin/packages/ceres-solver/package.py b/var/spack/repos/builtin/packages/ceres-solver/package.py
index 599c180121..ab84b4f9b7 100644
--- a/var/spack/repos/builtin/packages/ceres-solver/package.py
+++ b/var/spack/repos/builtin/packages/ceres-solver/package.py
@@ -17,19 +17,38 @@ class CeresSolver(CMakePackage):
homepage = "http://ceres-solver.org"
url = "http://ceres-solver.org/ceres-solver-1.12.0.tar.gz"
+ version('1.14.0', sha256='4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e')
version('1.12.0', sha256='745bfed55111e086954126b748eb9efe20e30be5b825c6dec3c525cf20afc895')
+ variant('suitesparse', default=False, description='Build with SuiteSparse')
+ variant('shared', default=True, description='Build shared libraries')
+ variant('examples', default=False, description='Build examples')
+
depends_on('eigen@3:')
depends_on('lapack')
depends_on('glog')
def cmake_args(self):
args = [
- '-DSUITESPARSE=OFF',
'-DCXSPARSE=OFF',
'-DEIGENSPARSE=ON',
'-DLAPACK=ON',
- '-DBUILD_SHARED_LIBS=ON',
'-DSCHUR_SPECIALIZATIONS=OFF'
]
+
+ if '+suitesparse' in self.spec:
+ args.append('-DSUITESPARSE=ON')
+ else:
+ args.append('-DSUITESPARSE=OFF')
+
+ if '+shared' in self.spec:
+ args.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ args.append('-DBUILD_SHARED_LIBS=OFF')
+
+ if '+examples' in self.spec:
+ args.append('-DBUILD_EXAMPLES=ON')
+ else:
+ args.append('-DBUILD_EXAMPLES=OFF')
+
return args
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
index 4e8a112634..a4f6aa0582 100644
--- a/var/spack/repos/builtin/packages/cgns/package.py
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -18,6 +18,10 @@ class Cgns(CMakePackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('4.1.1', sha256='055d345c3569df3ae832fb2611cd7e0bc61d56da41b2be1533407e949581e226')
+ version('4.1.0', sha256='4674de1fac3c47998248725fd670377be497f568312c5903d1bb8090a3cf4da0')
+ version('4.0.0', sha256='748585a8e52dff4d250d6b603e6b847d05498e4566aba2dc3d7a7d85c4d55849')
+ version('3.4.1', sha256='d32595e7737b9332243bd3de1eb8c018a272f620f09b289dea8292eba1365994')
version('3.4.0', sha256='6372196caf25b27d38cf6f056258cb0bdd45757f49d9c59372b6dbbddb1e05da')
version('3.3.1', sha256='81093693b2e21a99c5640b82b267a495625b663d7b8125d5f1e9e7aaa1f8d469')
version('3.3.0', sha256='8422c67994f8dc6a2f201523a14f6c7d7e16313bdd404c460c16079dbeafc662')
@@ -27,6 +31,7 @@ class Cgns(CMakePackage):
variant('scoping', default=True, description='Enable scoping')
variant('mpi', default=True, description='Enable parallel cgns')
variant('int64', default=False, description='Build with 64-bit integers')
+ variant('shared', default=True, description='Enable shared library')
depends_on('hdf5~mpi', when='+hdf5~mpi')
depends_on('hdf5+mpi', when='+hdf5+mpi')
@@ -44,7 +49,9 @@ class Cgns(CMakePackage):
'-DCGNS_ENABLE_PARALLEL:BOOL=%s' % (
'ON' if '+mpi' in spec else 'OFF'),
'-DCGNS_ENABLE_TESTS:BOOL=OFF',
- '-DCGNS_BUILD_CGNSTOOLS:BOOL=OFF'
+ '-DCGNS_BUILD_CGNSTOOLS:BOOL=OFF',
+ '-DCGNS_BUILD_SHARED:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF')
])
if '+mpi' in spec:
diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py
index 9329455d84..e72c71cf86 100644
--- a/var/spack/repos/builtin/packages/charliecloud/package.py
+++ b/var/spack/repos/builtin/packages/charliecloud/package.py
@@ -9,22 +9,24 @@ from spack import *
class Charliecloud(AutotoolsPackage):
"""Lightweight user-defined software stacks for HPC."""
+ maintainers = ['j-ogas']
homepage = "https://hpc.github.io/charliecloud"
- url = "https://github.com/hpc/charliecloud/releases/download/v0.9.10/charliecloud-0.9.10.tar.gz"
+ url = "https://github.com/hpc/charliecloud/releases/download/v0.14/charliecloud-0.9.10.tar.gz"
git = "https://github.com/hpc/charliecloud.git"
version('master', branch='master')
- version('0.13', sha256='5740bff6e410ca99484c1bdf3dbe834c0f753c846d55c19d6162967a3e2718e0')
+ version('0.14', sha256='4ae23c2d6442949e16902f9d5604dbd1d6059aeb5dd461b11fc5c74d49dcb194')
- depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
- # experimental builder (ch-grow)
- variant('builder', default=False, description='Bundle dependencies for unprivileged builder (ch-grow)')
- depends_on('py-lark-parser', type='run', when='+builder')
- depends_on('skopeo', type='run', when='+builder')
- depends_on('umoci', type='run', when='+builder')
+ depends_on('python@3.5:', type='run')
+ depends_on('py-lark-parser', type='run')
+ depends_on('py-requests', type='run')
- # man pages and html docs
+ # man pages and html docs variant
variant('docs', default=False, description='Build man pages and html docs')
depends_on('rsync', type='build', when='+docs')
depends_on('py-sphinx', type='build', when='+docs')
@@ -37,10 +39,9 @@ class Charliecloud(AutotoolsPackage):
args = []
- if '+docs' not in self.spec:
+ if '+docs' in self.spec:
+ args.append('--enable-html')
+ else:
args.append('--disable-html')
- if '+builder' not in self.spec:
- args.append('--disable-ch-grow')
-
return args
diff --git a/var/spack/repos/builtin/packages/cinch/package.py b/var/spack/repos/builtin/packages/cinch/package.py
index 65281b8455..f46a801cd4 100644
--- a/var/spack/repos/builtin/packages/cinch/package.py
+++ b/var/spack/repos/builtin/packages/cinch/package.py
@@ -16,7 +16,7 @@ class Cinch(Package):
url = "https://github.com/laristra/cinch/archive/1.0.zip"
git = "https://github.com/laristra/cinch.git"
- version('develop', branch='master', submodules=False)
+ version('master', branch='master', submodules=False)
version('1.0', sha256='98b73473829b478191481621d84c3d63c662da6e951321f858a032eae3ca07b7')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py
index 2529e544f6..f05c3d7cd6 100644
--- a/var/spack/repos/builtin/packages/citcoms/package.py
+++ b/var/spack/repos/builtin/packages/citcoms/package.py
@@ -16,8 +16,6 @@ class Citcoms(AutotoolsPackage):
version('3.3.1', sha256='e3520e0a933e4699d31e86fe309b8c154ea6ecb0f42a1cf6f25e8d13d825a4b3')
version('3.2.0', sha256='773a14d91ecbb4a4d1e04317635fab79819d83c57b47f19380ff30b9b19cb07a')
- variant('pyre', default=False, description='build Pyre modules')
- variant('exchanger', default=False, description='use Exchanger')
variant('ggrd', default=False, description='use GGRD file support')
variant('cuda', default=False, description='use CUDA')
variant('hdf5', default=False, description='add HDF5 support')
@@ -27,15 +25,10 @@ class Citcoms(AutotoolsPackage):
depends_on('zlib')
# Optional dependencies
- depends_on('exchanger', when='+exchanger')
- depends_on('py-pythia', type=('build', 'run'), when='+pyre')
depends_on('hc', when='+ggrd')
depends_on('cuda', when='+cuda')
depends_on('hdf5+mpi', when='+hdf5')
- conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+')
- conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+')
-
def setup_build_environment(self, env):
if '+ggrd' in self.spec:
env.set('HC_HOME', self.spec['hc'].prefix)
@@ -45,15 +38,8 @@ class Citcoms(AutotoolsPackage):
# Flags only valid in 3.2
if self.spec.satisfies('@:3.2'):
- if '+pyre' in self.spec:
- args.append('--with-pyre')
- else:
- args.append('--without-pyre')
-
- if '+exchanger' in self.spec:
- args.append('--with-exchanger')
- else:
- args.append('--without-exchanger')
+ args.append('--without-pyre')
+ args.append('--without-exchanger')
if '+ggrd' in self.spec:
args.append('--with-ggrd')
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
index 828f46ec97..4fca7f7efb 100644
--- a/var/spack/repos/builtin/packages/clhep/package.py
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -14,6 +14,8 @@ class Clhep(CMakePackage):
list_url = "https://proj-clhep.web.cern.ch/proj-clhep/"
list_depth = 1
+ maintainers = ['drbenmorgan']
+
version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913')
version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8')
version('2.4.1.0', sha256='d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d')
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index fdfa46af42..994ed42392 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -13,6 +13,7 @@ class Cmake(Package):
url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz'
maintainers = ['chuckatkins']
+ version('3.16.5', sha256='5f760b50b8ecc9c0c37135fae5fbf00a2fef617059aa9d61c1bb91653e5a8bfc')
version('3.16.2', sha256='8c09786ec60ca2be354c29829072c38113de9184f29928eb9da8446a5f2ce6a9')
version('3.16.1', sha256='a275b3168fa8626eca4465da7bb159ff07c8c6cb0fb7179be59e12cbdfa725fd')
version('3.16.0', sha256='6da56556c63cab6e9a3e1656e8763ed4a841ac9859fefb63cbe79472e67e8c5f')
diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py
new file mode 100644
index 0000000000..efb81035da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cosma/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+
+
+class Cosma(CMakePackage):
+ """
+ Distributed Communication-Optimal Matrix-Matrix Multiplication Library
+ """
+
+ maintainers = ['teonnik', 'kabicm']
+ homepage = 'https://github.com/eth-cscs/COSMA'
+ url = 'https://github.com/eth-cscs/COSMA/releases/download/v2.0.2/cosma.tar.gz'
+ git = 'https://github.com/eth-cscs/COSMA.git'
+
+ # note: The default archives produced with github do not have the archives
+ # of the submodules.
+ version('master', branch='master', submodules=True)
+ version('2.0.2', sha256='4f3354828bc718f3eef2f0098c3bdca3499297497a220da32db1acd57920c68d')
+ # note: this version fails to build at the moment
+ # version('1.0.0',
+ # url='https://github.com/eth-cscs/COSMA/releases/download/1.0/cosma.tar.gz',
+ # sha256='c142104258dcca4c17fa7faffc2990a08d2777235c7980006e93c5dca51061f6')
+
+ variant('cuda', default=False,
+ description='Build with the CUBLAS back end.')
+ variant('scalapack', default=False,
+ description='Build with ScaLAPACK support.')
+
+ depends_on('cmake@3.12:', type='build')
+ depends_on('mpi@3:')
+ depends_on('blas', when='~cuda')
+ depends_on('scalapack', when='+scalapack')
+ # COSMA is written entirely in C++, it may use cublasXt but a CUDA capable
+ # compiler is not needed. There is no need for CudaPackage in this recipe.
+ depends_on('cuda', when='+cuda')
+
+ def setup_build_environment(self, env):
+ if '+cuda' in self.spec:
+ env.set('CUDA_PATH', self.spec['cuda'].prefix)
+
+ def cmake_args(self):
+ spec = self.spec
+ args = ['-DCOSMA_WITH_TESTS=OFF',
+ '-DCOSMA_WITH_APPS=OFF',
+ '-DCOSMA_WITH_PROFILING=OFF',
+ '-DCOSMA_WITH_BENCHMARKS=OFF']
+
+ if '^mkl' in spec:
+ args += ['-DCOSMA_BLAS=MKL']
+ elif '^netlib-lapack' in spec:
+ args += ['-DCOSMA_BLAS=CUSTOM']
+ elif '^openblas' in spec:
+ args += ['-DCOSMA_BLAS=OPENBLAS']
+ elif '+cuda' in spec:
+ args += ['-DCOSMA_BLAS=CUDA']
+ else: # TODO '^rocm' in spec:
+ args += ['-DCOSMA_BLAS=ROCM']
+
+ if '+scalapack' and '^mkl' in spec:
+ args += ['-DCOSMA_SCALAPACK=MKL']
+ elif '+scalapack' and '^netlib-scalapack' in spec:
+ args += ['-DCOSMA_SCALAPACK=CUSTOM']
+
+ return args
diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py
index ae6b429ccc..2381a82499 100644
--- a/var/spack/repos/builtin/packages/cpio/package.py
+++ b/var/spack/repos/builtin/packages/cpio/package.py
@@ -16,3 +16,8 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage):
version('2.13', sha256='e87470d9c984317f658567c03bfefb6b0c829ff17dbf6b0de48d71a4c8f3db88')
build_directory = 'spack-build'
+
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('%intel') and name == 'cflags':
+ flags.append('-no-gcc')
+ return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/Release.patch b/var/spack/repos/builtin/packages/cpprestsdk/Release.patch
new file mode 100644
index 0000000000..e860b85f18
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpprestsdk/Release.patch
@@ -0,0 +1,45 @@
+diff -ur spack-src/Release.org/include/pplx/pplxlinux.h spack-src/Release/include/pplx/pplxlinux.h
+--- spack-src/Release.org/include/pplx/pplxlinux.h 2020-03-12 13:52:40.161917503 +0900
++++ spack-src/Release/include/pplx/pplxlinux.h 2020-03-12 14:05:50.834896829 +0900
+@@ -240,6 +240,11 @@
+ {
+ public:
+ _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param);
++#if defined(__APPLE__)
++ virtual ~apple_scheduler() {}
++#else
++ virtual ~linux_scheduler() {}
++#endif
+ };
+
+ } // namespace details
+diff -ur spack-src/Release.org/libs/websocketpp/websocketpp/transport/asio/connection.hpp spack-src/Release/libs/websocketpp/websocketpp/transport/asio/connection.hpp
+--- spack-src/Release.org/libs/websocketpp/websocketpp/transport/asio/connection.hpp 2020-03-12 13:52:40.201921703 +0900
++++ spack-src/Release/libs/websocketpp/websocketpp/transport/asio/connection.hpp 2020-03-12 14:09:13.586186467 +0900
+@@ -422,7 +422,7 @@
+ m_io_service = io_service;
+
+ if (config::enable_multithreading) {
+- m_strand = lib::make_shared<boost::asio::strand>(
++ m_strand = lib::make_shared<boost::asio::io_service::strand>(
+ lib::ref(*io_service));
+
+ m_async_read_handler = m_strand->wrap(lib::bind(
+diff -ur spack-src/Release.org/src/uri/uri.cpp spack-src/Release/src/uri/uri.cpp
+--- spack-src/Release.org/src/uri/uri.cpp 2020-03-12 13:52:40.241925902 +0900
++++ spack-src/Release/src/uri/uri.cpp 2020-03-12 13:53:58.610152210 +0900
+@@ -22,12 +22,12 @@
+ // canonicalize components first
+
+ // convert scheme to lowercase
+- std::transform(m_scheme.begin(), m_scheme.end(), m_scheme.begin(), [this](utility::char_t c) {
++ std::transform(m_scheme.begin(), m_scheme.end(), m_scheme.begin(), [](utility::char_t c) {
+ return (utility::char_t)tolower(c);
+ });
+
+ // convert host to lowercase
+- std::transform(m_host.begin(), m_host.end(), m_host.begin(), [this](utility::char_t c) {
++ std::transform(m_host.begin(), m_host.end(), m_host.begin(), [](utility::char_t c) {
+ return (utility::char_t)tolower(c);
+ });
+
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py
index 51acc882b6..3bfbf52c29 100644
--- a/var/spack/repos/builtin/packages/cpprestsdk/package.py
+++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py
@@ -17,6 +17,11 @@ class Cpprestsdk(CMakePackage):
version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16')
- depends_on('boost')
+ depends_on('boost@:1.69.0')
+
+ # Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4
+ # Ref: https://github.com/Microsoft/cpprestsdk/commit/6b2e0480018530b616f61d5cdc786c92ba148bb7
+ # Ref: https://github.com/microsoft/cpprestsdk/commit/70c1b14f39f5d47984fdd8a31fc357ebb5a37851
+ patch('Release.patch')
root_cmakelists_dir = 'Release'
diff --git a/var/spack/repos/builtin/packages/cryptsetup/package.py b/var/spack/repos/builtin/packages/cryptsetup/package.py
index 10519100ee..ccde594c84 100644
--- a/var/spack/repos/builtin/packages/cryptsetup/package.py
+++ b/var/spack/repos/builtin/packages/cryptsetup/package.py
@@ -25,6 +25,7 @@ class Cryptsetup(AutotoolsPackage):
depends_on('util-linux~libuuid', type=('build', 'link'))
depends_on('gettext', type=('build', 'link'))
+ depends_on('pkgconfig', type='build')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
diff --git a/var/spack/repos/builtin/packages/cscope/package.py b/var/spack/repos/builtin/packages/cscope/package.py
index f0cc8f9fc5..2682ffea70 100644
--- a/var/spack/repos/builtin/packages/cscope/package.py
+++ b/var/spack/repos/builtin/packages/cscope/package.py
@@ -10,8 +10,9 @@ class Cscope(AutotoolsPackage):
"""Cscope is a developer's tool for browsing source code."""
homepage = "http://cscope.sourceforge.net/"
- url = "http://downloads.sourceforge.net/project/cscope/cscope/15.8b/cscope-15.8b.tar.gz"
+ url = "https://sourceforge.net/projects/cscope/files/cscope/v15.9/cscope-15.9.tar.gz"
+ version('15.9', sha256='c5505ae075a871a9cd8d9801859b0ff1c09782075df281c72c23e72115d9f159')
version('15.8b', sha256='4889d091f05aa0845384b1e4965aa31d2b20911fb2c001b2cdcffbcb7212d3af')
depends_on('ncurses')
@@ -20,4 +21,11 @@ class Cscope(AutotoolsPackage):
depends_on('bison', type='build')
depends_on('pkgconfig', type='build')
- build_targets = ['CURSES_LIBS=-lncursesw']
+ build_targets = ['CURSES_LIBS=-lncursesw -ltinfo']
+
+ def url_for_version(self, version):
+ url = "https://sourceforge.net/projects/cscope/files/cscope/{0}{1}/cscope-{1}.tar.gz"
+ if version >= Version('15.9'):
+ return url.format('v', version)
+ else:
+ return url.format('', version)
diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py
index d728bf4037..f6487d498e 100644
--- a/var/spack/repos/builtin/packages/darshan-runtime/package.py
+++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py
@@ -18,6 +18,8 @@ class DarshanRuntime(Package):
url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
git = "https://xgitlab.cels.anl.gov/darshan/darshan.git"
+ maintainers = ['shanedsnyder', 'carns']
+
version('develop', branch='master')
version('3.1.7', sha256='9ba535df292727ac1e8025bdf2dc42942715205cad8319d925723fd88709e8d6')
version('3.1.6', sha256='21cb24e2a971c45e04476e00441b7fbea63d2afa727a5cf8b7a4a9d9004dd856')
diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py
index 4acc4452fd..9fe3012b2c 100644
--- a/var/spack/repos/builtin/packages/darshan-util/package.py
+++ b/var/spack/repos/builtin/packages/darshan-util/package.py
@@ -16,6 +16,8 @@ class DarshanUtil(Package):
url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
git = "https://xgitlab.cels.anl.gov/darshan/darshan.git"
+ maintainers = ['shanedsnyder', 'carns']
+
version('develop', branch='master')
version('3.1.7', sha256='9ba535df292727ac1e8025bdf2dc42942715205cad8319d925723fd88709e8d6')
version('3.1.6', sha256='21cb24e2a971c45e04476e00441b7fbea63d2afa727a5cf8b7a4a9d9004dd856')
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 797931052e..1b9e02c044 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -151,6 +151,7 @@ class Dealii(CMakePackage, CudaPackage):
depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi')
depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64')
depends_on('sundials@:3~pthread', when='@9.0:+sundials')
+ depends_on('trilinos gotype=int', when='+trilinos')
# Both Trilinos and SymEngine bundle the Teuchos RCP library.
# This leads to conflicts between macros defined in the included
# headers when they are not compiled in the same mode.
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py
new file mode 100644
index 0000000000..6de0cfb516
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dihydrogen/package.py
@@ -0,0 +1,111 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Dihydrogen(CMakePackage, CudaPackage):
+ """DiHydrogen is the second version of the Hydrogen fork of the
+ well-known distributed linear algebra library,
+ Elemental. DiHydrogen aims to be a basic distributed
+ multilinear algebra interface with a particular emphasis on the
+ needs of the distributed machine learning effort, LBANN."""
+
+ homepage = "https://github.com/LLNL/DiHydrogen.git"
+ git = "https://github.com/LLNL/DiHydrogen.git"
+
+ maintainers = ['bvanessen']
+
+ version('master', branch='master')
+
+ variant('al', default=True,
+ description='Builds with Aluminum communication library')
+ variant('developer', default=False,
+ description='Enable extra warnings and force tests to be enabled.')
+ variant('half', default=False,
+ description='Enable FP16 support on the CPU.')
+ variant('legacy', default=False,
+ description='Enable the legacy DistConv code branch.')
+ variant('nvshmem', default=False,
+ description='Builds with support for NVSHMEM')
+ variant('openmp', default=False,
+ description='Enable CPU acceleration with OpenMP threads.')
+ variant('rocm', default=False,
+ description='Enable ROCm/HIP language features.')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+
+ # Override the default set of CUDA architectures with the relevant
+ # subset from lib/spack/spack/build_systems/cuda.py
+ cuda_arch_values = [
+ '60', '61', '62',
+ '70', '72', '75',
+ ]
+ variant('cuda_arch',
+ description='CUDA architecture',
+ values=spack.variant.auto_or_any_combination_of(*cuda_arch_values))
+
+ depends_on('mpi')
+ depends_on('catch2', type='test')
+
+ depends_on('aluminum', when='+al ~cuda')
+ depends_on('aluminum +gpu +nccl +mpi_cuda', when='+al +cuda')
+
+ depends_on('cuda', when=('+cuda' or '+legacy'))
+ depends_on('cudnn', when=('+cuda' or '+legacy'))
+ depends_on('cub', when=('+cuda' or '+legacy'))
+
+ # Legacy builds require cuda
+ conflicts('~cuda', when='+legacy')
+
+ depends_on('half', when='+half')
+
+ generator = 'Ninja'
+ depends_on('ninja', type='build')
+ depends_on('cmake@3.14.0:', type='build')
+
+ illegal_cuda_arch_values = [
+ '10', '11', '12', '13',
+ '20', '21',
+ '30', '32', '35', '37',
+ '50', '52', '53',
+ ]
+ for value in illegal_cuda_arch_values:
+ conflicts('cuda_arch=' + value)
+
+ @property
+ def libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ 'libH2Core', root=self.prefix, shared=shared, recursive=True
+ )
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
+ '-DH2_ENABLE_CUDA=%s' % ('+cuda' in spec),
+ '-DH2_ENABLE_DISTCONV_LEGACY=%s' % ('+legacy' in spec),
+ '-DH2_ENABLE_OPENMP=%s' % ('+openmp' in spec),
+ '-DH2_ENABLE_FP16=%s' % ('+half' in spec),
+ '-DH2_ENABLE_HIP_ROCM=%s' % ('+rocm' in spec),
+ '-DH2_DEVELOPER_BUILD=%s' % ('+developer' in spec),
+ ]
+
+ if '+cuda' in spec:
+ cuda_arch = spec.variants['cuda_arch'].value
+ if len(cuda_arch) == 1 and cuda_arch[0] == 'auto':
+ args.append('-DCMAKE_CUDA_FLAGS=-arch=sm_60')
+ else:
+ cuda_arch = [x for x in spec.variants['cuda_arch'].value
+ if x != 'auto']
+ if cuda_arch:
+ args.append('-DCMAKE_CUDA_FLAGS={0}'.format(
+ ' '.join(self.cuda_flags(cuda_arch))
+ ))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/eagle/package.py b/var/spack/repos/builtin/packages/eagle/package.py
new file mode 100644
index 0000000000..81e0be6f90
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eagle/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Eagle(MakefilePackage):
+ """EAGLE: Explicit Alternative Genome Likelihood Evaluator"""
+
+ homepage = "https://github.com/tony-kuo/eagle"
+ url = "https://github.com/tony-kuo/eagle/archive/v1.1.2.tar.gz"
+
+ version('1.1.2', sha256='afe967560d1f8fdbd0caf4b93b5f2a86830e9e4d399fee4a526140431343045e')
+
+ depends_on('curl')
+ depends_on('zlib')
+ depends_on('lzma')
+ depends_on('htslib')
+
+ def edit(self, spec, prefix):
+ # remove unused gcc flags
+ filter_file('$(LFLAGS) $(INCLUDES)', '', 'Makefile', string=True)
+
+ # drop static link to htslib
+ filter_file('$(LIBS)', '', 'Makefile', string=True)
+
+ # don't try to build htslib.
+ filter_file('all: UTIL HTSLIB', 'all: UTIL',
+ 'Makefile', string=True)
+
+ # add htslib link to ldflags
+ filter_file('-lcurl', '-lcurl -lhts', 'Makefile', string=True)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+
+ bins = [
+ 'eagle',
+ 'eagle-rc',
+ 'eagle-nm',
+ ]
+
+ for b in bins:
+ install(b, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
index 11054b409c..13100d89a8 100644
--- a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
+++ b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
@@ -19,6 +19,9 @@ class EclipseGcjParser(Package):
maintainers = ['citibeth']
+ # The server is sometimes a bit slow to respond
+ fetch_options = {'timeout': 60}
+
version('4.8', sha256='98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781', expand=False)
phases = ('build', 'install')
diff --git a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
index c3f79c33bb..501ad6440d 100644
--- a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
+++ b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
@@ -4,31 +4,33 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import os
from spack import *
-class EcpProxyApps(Package):
+class EcpProxyApps(BundlePackage):
"""This is a collection of packages that represents the official suite of
DOE/ECP proxy applications. This is a Spack bundle package that
installs the ECP proxy application suite.
"""
tags = ['proxy-app', 'ecp-proxy-app']
- maintainers = ['bhatele']
+ maintainers = ['rspavel']
homepage = "https://proxyapps.exascaleproject.org"
- # Dummy url
- url = 'https://github.com/exascaleproject/proxy-apps/archive/v1.0.tar.gz'
- version('2.1', sha256='604da008fc4ef3bdbc25505088d610333249e3e9745eac7dbfd05b91e33e218d')
- version('2.0', sha256='5f3cb3a772224e738c1dab42fb34d40f6b313af51ab1c575fb334e573e41e09a')
- version('1.1', sha256='8537e03588c0f46bebf5b7f07146c79812f2ebfb77d29e184baa4dd5f4603ee3')
- version('1.0', sha256='13d9795494dabdb4c724d2c0f322c2149b2507d2fd386ced12b54292b7ecf595')
+ version('3.0')
+ version('2.1')
+ version('2.0')
+ version('1.1')
+ version('1.0')
variant('candle', default=False,
description='Also build CANDLE Benchmarks')
+ # Added with release 3.0
+ depends_on('miniamr@1.4.4', when='@3.0:')
+ depends_on('xsbench@19', when='@3.0:')
+
# Added with release 2.1
depends_on('amg@1.2', when='@2.1:')
depends_on('miniamr@1.4.3', when='@2.1:')
@@ -40,15 +42,15 @@ class EcpProxyApps(Package):
depends_on('picsarlite@0.1', when='@2.0:')
depends_on('thornado-mini@1.0', when='@2.0:')
- depends_on('candle-benchmarks@0.1', when='+candle @2.0:')
+ depends_on('candle-benchmarks@0.1', when='+candle @2.0:2.1')
depends_on('laghos@2.0', when='@2.0:')
depends_on('macsio@1.1', when='@2.0:')
depends_on('sw4lite@1.1', when='@2.0:')
- depends_on('xsbench@18', when='@2.0:')
+ depends_on('xsbench@18', when='@2.0:2.1')
# Dependencies for version 2.0
depends_on('amg@1.1', when='@2.0')
- depends_on('miniamr@1.4.1', when='@2.0')
+ depends_on('miniamr@1.4.1', when='@2.0:2.1')
# Added with release 1.1
depends_on('examinimd@1.0', when='@1.1:')
@@ -71,12 +73,3 @@ class EcpProxyApps(Package):
# Removed after release 1.0
depends_on('comd@1.1', when='@1.0')
-
- # Dummy install for now, will be removed when metapackage is available
- def install(self, spec, prefix):
- with open(os.path.join(spec.prefix, 'package-list.txt'), 'w') as out:
- for dep in spec.dependencies(deptype='build'):
- out.write("%s\n" % dep.format(
- format_string='${PACKAGE} ${VERSION}'))
- os.symlink(dep.prefix, os.path.join(spec.prefix, dep.name))
- out.close()
diff --git a/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch b/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch
deleted file mode 100644
index 4f6e286b72..0000000000
--- a/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Version 3.3.4 contained a bug that prevented it from finding scotch~mpi.
-
-diff --git a/tmp/FindPTSCOTCH.cmake b/cmake/FindPTSCOTCH.cmake
-index 1396d05..23451b1 100644
---- a/tmp/FindPTSCOTCH.cmake
-+++ b/cmake/FindPTSCOTCH.cmake
-@@ -167,11 +167,11 @@ endif()
-
- # If found, add path to cmake variable
- # ------------------------------------
-+unset(PTSCOTCH_INCLUDE_DIRS)
- foreach(ptscotch_hdr ${PTSCOTCH_hdrs_to_find})
- if (PTSCOTCH_${ptscotch_hdr}_DIRS)
- list(APPEND PTSCOTCH_INCLUDE_DIRS "${PTSCOTCH_${ptscotch_hdr}_DIRS}")
- else ()
-- set(PTSCOTCH_INCLUDE_DIRS "PTSCOTCH_INCLUDE_DIRS-NOTFOUND")
- if (NOT PTSCOTCH_FIND_QUIETLY)
- message(STATUS "Looking for ptscotch -- ${ptscotch_hdr} not found")
- endif()
-@@ -255,7 +255,6 @@ foreach(ptscotch_lib ${PTSCOTCH_libs_to_find})
- list(APPEND PTSCOTCH_LIBRARIES "${PTSCOTCH_${ptscotch_lib}_LIBRARY}")
- list(APPEND PTSCOTCH_LIBRARY_DIRS "${${ptscotch_lib}_lib_path}")
- else ()
-- list(APPEND PTSCOTCH_LIBRARIES "${PTSCOTCH_${ptscotch_lib}_LIBRARY}")
- if (NOT PTSCOTCH_FIND_QUIETLY)
- message(STATUS "Looking for ptscotch -- lib ${ptscotch_lib} not found")
- endif()
diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py
index 9b01807bad..283bd65165 100644
--- a/var/spack/repos/builtin/packages/eigen/package.py
+++ b/var/spack/repos/builtin/packages/eigen/package.py
@@ -3,8 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-from spack import *
-
class Eigen(CMakePackage):
"""Eigen is a C++ template library for linear algebra matrices,
@@ -12,41 +10,32 @@ class Eigen(CMakePackage):
"""
homepage = 'http://eigen.tuxfamily.org/'
- url = 'https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2'
-
- version('3.3.7', sha256='9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce')
- version('3.3.5', sha256='7352bff3ea299e4c7d7fbe31c504f8eb9149d7e685dec5a12fbaa26379f603e2')
- version('3.3.4', sha256='dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6')
- version('3.3.3', sha256='a4143fc45e4454b4b98fcea3516b3a79b8cdb3bc7fadf996d088c6a0d805fea1')
- version('3.3.1', sha256='a0b4cebaabd8f371d1b364f9723585fbcc7c9640ca60273b99835e6cf115f056')
- version('3.2.10', sha256='760e6656426fde71cc48586c971390816f456d30f0b5d7d4ad5274d8d2cb0a6d')
- version('3.2.9', sha256='4d1e036ec1ed4f4805d5c6752b76072d67538889f4003fadf2f6e00a825845ff')
- version('3.2.8', sha256='722a63d672b70f39c271c5e2a4a43ba14d12015674331790414fcb167c357e55')
- version('3.2.7', sha256='e58e1a11b23cf2754e32b3c5990f318a8461a3613c7acbf6035870daa45c2f3e')
-
- variant('metis', default=False,
- description='Enables metis permutations in sparse algebra')
- variant('scotch', default=False,
- description='Enables scotch/pastix sparse factorization methods')
- variant('fftw', default=False,
- description='Enables FFTW backend for the FFT plugin')
- variant('suitesparse', default=False,
- description='Enables SuiteSparse sparse factorization methods')
- variant('mpfr', default=False,
- description='Enables the multi-precisions floating-point plugin')
+ url = 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz'
+
+ version('3.3.7', sha256='d56fbad95abf993f8af608484729e3d87ef611dd85b3380a8bad1d5cbc373a57')
+ version('3.3.6', sha256='e7cd8c94d6516d1ada9893ccc7c9a400fcee99927c902f15adba940787104dba')
+ version('3.3.5', sha256='383407ab3d0c268074e97a2cbba84ac197fd24532f014aa2adc522355c1aa2d0')
+ version('3.3.4', sha256='c5ca6e3442fb48ae75159ca7568854d9ba737bc351460f27ee91b6f3f9fd1f3d')
+ version('3.3.3', sha256='fd72694390bd8e81586205717d2cf823e718f584b779a155db747d1e68481a2e')
+ version('3.3.2', sha256='8d7611247fba1236da4dee7a64607017b6fb9ca5e3f0dc44d480e5d33d5663a5')
+ version('3.3.1', sha256='50dd21a8997fce0857b27a126811ae8ee7619984ab5425ecf33510cec649e642')
+ version('3.3.0', sha256='de82e01f97e1a95f121bd3ace87aa1237818353c14e38f630a65f5ba2c92f0e1')
+ version('3.2.10', sha256='0920cb60ec38de5fb509650014eff7cc6d26a097c7b38c7db4b1aa5df5c85042')
+ version('3.2.9', sha256='f683b20259ad72c3d384c00278166dd2a42d99b78dcd589ed4a6ca74bbb4ca07')
+ version('3.2.8', sha256='64c54781cfe9eefef2792003ab04b271d4b2ec32eda6e9cdf120d7aad4ebb282')
+ version('3.2.7', sha256='0ea9df884873275bf39c2965d486fa2d112f3a64b97b60b45b8bc4bb034a36c1')
+ version('3.2.6', sha256='e097b8dcc5ad30d40af4ad72d7052e3f78639469baf83cffaadc045459cda21f')
+ version('3.2.5', sha256='8068bd528a2ff3885eb55225c27237cf5cda834355599f05c2c85345db8338b4')
+
+ # From http://eigen.tuxfamily.org/index.php?title=Main_Page#Requirements
+ # "Eigen doesn't have any dependencies other than the C++ standard
+ # library."
variant('build_type', default='RelWithDebInfo',
description='The build type to build',
values=('Debug', 'Release', 'RelWithDebInfo'))
- # TODO : dependency on googlehash, superlu, adolc missing
- depends_on('metis@5:', when='+metis')
- depends_on('scotch', when='+scotch')
- depends_on('fftw', when='+fftw')
- depends_on('suite-sparse', when='+suitesparse')
- depends_on('mpfr@2.3.0:', when='+mpfr')
- depends_on('gmp', when='+mpfr')
-
- patch('find-ptscotch.patch', when='@3.3.4')
+ # TODO: latex and doxygen needed to produce docs with make doc
+ # TODO: Other dependencies might be needed to test this package
def setup_run_environment(self, env):
env.prepend_path('CPATH', self.prefix.include.eigen3)
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index 07d852f254..e1ffdc0e3b 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -21,6 +21,9 @@ class Elfutils(AutotoolsPackage):
list_url = "https://sourceware.org/elfutils/ftp"
list_depth = 1
+ # Sourceware is often slow to respond.
+ fetch_options = {'timeout': 60}
+
version('0.178', sha256='31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2')
version('0.177', sha256='fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e')
version('0.176', sha256='eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023')
diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py
index 55e5067f12..343a08ff91 100644
--- a/var/spack/repos/builtin/packages/er/package.py
+++ b/var/spack/repos/builtin/packages/er/package.py
@@ -9,8 +9,8 @@ from spack import *
class Er(CMakePackage):
"""Encoding and redundancy on a file set"""
- homepage = "https://github.com/ECP-VeloC/er"
- url = "https://github.com/ECP-VeloC/er/archive/v0.0.3.zip"
+ homepage = "https://github.com/ecp-veloc/er"
+ url = "https://github.com/ecp-veloc/er/archive/v0.0.3.zip"
git = "https://github.com/ecp-veloc/er.git"
tags = ['ecp']
diff --git a/var/spack/repos/builtin/packages/exchanger/package.py b/var/spack/repos/builtin/packages/exchanger/package.py
deleted file mode 100644
index 018459d8c3..0000000000
--- a/var/spack/repos/builtin/packages/exchanger/package.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
-
-
-class Exchanger(AutotoolsPackage):
- """Exchanger is a package containing several C++ base classes. These
- classes, when customized for a solver, can provide communication channels
- between solvers. This packaged is used by CitcomS for solver coupling."""
-
- homepage = "https://geodynamics.org/cig/software/exchanger/"
- url = "https://geodynamics.org/cig/software/exchanger/Exchanger-1.0.1.tar.gz"
-
- version('1.0.1', sha256='1e6c8311db96582bcf2c9aee16a863a5730c1aa54cb3aa7d0249239c6e0b68ee')
-
- depends_on('python', type=('build', 'run'))
- depends_on('py-merlin', type='build')
- depends_on('py-pythia@0.8.1.0:0.8.1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/exiv2/package.py b/var/spack/repos/builtin/packages/exiv2/package.py
index 05d6de7bd8..53fad9cdfe 100644
--- a/var/spack/repos/builtin/packages/exiv2/package.py
+++ b/var/spack/repos/builtin/packages/exiv2/package.py
@@ -15,3 +15,6 @@ class Exiv2(CMakePackage):
url = "https://github.com/Exiv2/exiv2/archive/v0.27.2.tar.gz"
version('0.27.2', sha256='3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934')
+
+ depends_on('zlib', type='link')
+ depends_on('expat@2.2.6:', type='link')
diff --git a/var/spack/repos/builtin/packages/expect/package.py b/var/spack/repos/builtin/packages/expect/package.py
index 4cab48a064..1afe8add1e 100644
--- a/var/spack/repos/builtin/packages/expect/package.py
+++ b/var/spack/repos/builtin/packages/expect/package.py
@@ -66,7 +66,8 @@ class Expect(AutotoolsPackage):
fix_darwin_install_name(
join_path(self.prefix.lib, 'expect{0}'.format(self.version)))
- old = 'libexpect{0}.dylib'.format(self.version)
- new = glob.glob(join_path(self.prefix.lib, 'expect*', 'libexpect*'))[0]
- install_name_tool = Executable('install_name_tool')
- install_name_tool('-change', old, new, self.prefix.bin.expect)
+ old = 'libexpect{0}.dylib'.format(self.version)
+ new = glob.glob(join_path(self.prefix.lib, 'expect*',
+ 'libexpect*'))[0]
+ install_name_tool = Executable('install_name_tool')
+ install_name_tool('-change', old, new, self.prefix.bin.expect)
diff --git a/var/spack/repos/builtin/packages/exuberant-ctags/package.py b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
index 6efb00602c..421b995050 100644
--- a/var/spack/repos/builtin/packages/exuberant-ctags/package.py
+++ b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
@@ -8,7 +8,7 @@ from spack import *
class ExuberantCtags(AutotoolsPackage):
"""The canonical ctags generator"""
- homepage = "ctags.sourceforge.net"
+ homepage = "http://ctags.sourceforge.net"
url = "http://downloads.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz"
version('5.8', sha256='0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7')
diff --git a/var/spack/repos/builtin/packages/f77-zmq/package.py b/var/spack/repos/builtin/packages/f77-zmq/package.py
index c78f3f4110..bab4469442 100644
--- a/var/spack/repos/builtin/packages/f77-zmq/package.py
+++ b/var/spack/repos/builtin/packages/f77-zmq/package.py
@@ -15,10 +15,12 @@ class F77Zmq(MakefilePackage):
maintainers = ['scemama']
+ version('4.3.2', sha256='f1fb7544d38d9bb7235f98c96f241875ddcb0d37ed950618c23d4e4d666a73ca')
version('4.3.1', sha256='a15d72d93022d3e095528d2808c7767cece974a2dc0e2dd95e4c122f60fcf0a8')
depends_on('libzmq')
- depends_on('python', type='build')
+ depends_on('python@3:', type='build', when="@:4.3.1")
+ depends_on('python', type='build', when="@4.3.2:")
def setup_build_environment(self, env):
env.append_flags('CFLAGS', '-O3')
diff --git a/var/spack/repos/builtin/packages/fabtests/package.py b/var/spack/repos/builtin/packages/fabtests/package.py
index a71a69ab37..a9f76b5d07 100644
--- a/var/spack/repos/builtin/packages/fabtests/package.py
+++ b/var/spack/repos/builtin/packages/fabtests/package.py
@@ -7,15 +7,30 @@ from spack import *
class Fabtests(AutotoolsPackage):
- """Fabtests provides a set of examples that uses libfabric.
-
- DEPRECATED. Fabtests has merged with the libfabric git repo."""
+ """Fabtests provides a set of runtime analysis tools and examples that use
+ libfabric."""
homepage = "http://libfabric.org"
- url = "https://github.com/ofiwg/fabtests/releases/download/v1.5.3/fabtests-1.5.3.tar.gz"
+ url = "https://github.com/ofiwg/libfabric/releases/download/v1.9.1/fabtests-1.9.1.tar.bz2"
+ version('1.9.1', sha256='6f8ced2c6b3514759a0e177c8b2a19125e4ef0714d4cc0fe0386b33bd6cd5585')
+ version('1.9.0', sha256='60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e')
+ version('1.8.1', sha256='e9005d8fe73ca3849c872649c29811846bd72a62f897ecab73a08c7a9514f37b')
+ # old releases, published in a separate repository
+ version('1.6.2', sha256='37405c6202f5b1aa81f8ea211237a2d87937f06254fa3ed44a9b69ac73b234e8')
+ version('1.6.1', sha256='d357466b868fdaf1560d89ffac4c4e93a679486f1b4221315644d8d3e21174bf')
version('1.6.0', sha256='dc3eeccccb005205017f5af60681ede15782ce202a0103450a6d56a7ff515a67')
version('1.5.3', sha256='3835b3bf86cd00d23df0ddba8bf317e4a195e8d5c3c2baa918b373d548f77f29')
+ version('1.5.0', sha256='1dddd446c3f1df346899f9a8636f1b4265de5b863103ae24876e9f0c1e40a69d')
+ version('1.4.2', sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e')
+
+ for v in ['1.4.2', '1.5.0', '1.5.3', '1.6.0', '1.6.1', '1.6.2',
+ '1.8.1', '1.9.0', '1.9.1']:
+ depends_on('libfabric@{0}'.format(v), when='@{0}'.format(v))
- depends_on('libfabric@1.6.0', when='@1.6.0')
- depends_on('libfabric@1.5.3', when='@1.5.3')
+ def url_for_version(self, version):
+ if version >= Version('1.8.1'):
+ url = "https://github.com/ofiwg/libfabric/releases/download/v{0}/fabtests-{0}.tar.bz2"
+ else:
+ url = "https://github.com/ofiwg/fabtests/releases/download/v{0}/fabtests-{0}.tar.gz"
+ return url.format(version.dotted)
diff --git a/var/spack/repos/builtin/packages/fairlogger/package.py b/var/spack/repos/builtin/packages/fairlogger/package.py
index 3190f1702c..77d4616097 100644
--- a/var/spack/repos/builtin/packages/fairlogger/package.py
+++ b/var/spack/repos/builtin/packages/fairlogger/package.py
@@ -17,7 +17,8 @@ class Fairlogger(CMakePackage):
maintainers = ['dennisklein', 'ChristianTackeGSI']
# generator = 'Ninja'
- version('develop', branch='dev')
+ version('develop', branch='dev', get_full_repo=True)
+ version('1.6.2', sha256='5c6ef0c0029eb451fee71756cb96e6c5011040a9813e8889667b6f3b6b04ed03')
version('1.6.1', sha256='3894580f4c398d724ba408e410e50f70c9f452e8cfaf7c3ff8118c08df28eaa8')
version('1.6.0', sha256='721e8cadfceb2f63014c2a727e098babc6deba653baab8866445a772385d0f5b')
version('1.5.0', sha256='8e74e0b1e50ee86f4fca87a44c6b393740b32099ac3880046bf252c31c58dd42')
@@ -31,19 +32,22 @@ class Fairlogger(CMakePackage):
values=('Debug', 'Release', 'RelWithDebInfo'),
multi=False,
description='CMake build type')
- variant('cxxstd', default='11',
+ variant('cxxstd', default='default',
values=('11', '14', '17'),
multi=False,
description='Use the specified C++ standard when building.')
variant('pretty',
default=False,
- description='Use BOOST_PRETTY_FUNCTION macro.')
+ description='Use BOOST_PRETTY_FUNCTION macro (Supported by 1.4+).')
conflicts('+pretty', when='@:1.3.99')
depends_on('cmake@3.9.4:', type='build')
depends_on('git', type='build', when='@develop')
+
depends_on('boost', when='+pretty')
- depends_on('fmt@5.3.0:', when='@1.6.0:')
+ conflicts('^boost@1.70:', when='^cmake@:3.14')
+ depends_on('fmt@5.3.0:5.99', when='@1.6.0:1.6.1')
+ depends_on('fmt@5.3.0:', when='@1.6.2:')
def patch(self):
"""FairLogger gets its version number from git.
@@ -55,9 +59,10 @@ class Fairlogger(CMakePackage):
'CMakeLists.txt')
def cmake_args(self):
- cxxstd = self.spec.variants['cxxstd'].value
args = []
- args.append('-DCMAKE_CXX_STANDARD=%s' % cxxstd)
+ cxxstd = self.spec.variants['cxxstd'].value
+ if cxxstd != 'default':
+ args.append('-DCMAKE_CXX_STANDARD=%s' % cxxstd)
args.append('-DUSE_BOOST_PRETTY_FUNCTION=%s' %
('ON' if '+pretty' in self.spec else 'OFF'))
if self.spec.satisfies('@1.6:'):
diff --git a/var/spack/repos/builtin/packages/fast-global-file-status/package.py b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
index afc2ef23de..1f48dc4319 100644
--- a/var/spack/repos/builtin/packages/fast-global-file-status/package.py
+++ b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
@@ -18,6 +18,7 @@ class FastGlobalFileStatus(AutotoolsPackage):
depends_on('mrnet')
depends_on('mount-point-attributes')
depends_on('mpi')
+ depends_on('openssl')
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/fd-find/package.py b/var/spack/repos/builtin/packages/fd-find/package.py
new file mode 100644
index 0000000000..faf7374cb6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fd-find/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class FdFind(Package):
+ """A simple, fast and user-friendly alternative to 'find'."""
+
+ homepage = "https://github.com/sharkdp/fd"
+ url = "https://github.com/sharkdp/fd/archive/v7.3.0.tar.gz"
+
+ version('7.4.0', sha256='33570ba65e7f8b438746cb92bb9bc4a6030b482a0d50db37c830c4e315877537')
+
+ depends_on('rust')
+
+ def install(self, spec, prefix):
+ cargo = which('cargo')
+ cargo('install', '--root', prefix, '--path', '.')
diff --git a/var/spack/repos/builtin/packages/filo/package.py b/var/spack/repos/builtin/packages/filo/package.py
new file mode 100644
index 0000000000..aeba476c04
--- /dev/null
+++ b/var/spack/repos/builtin/packages/filo/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Filo(CMakePackage):
+ """File flush and fetch, with MPI"""
+
+ homepage = "https://github.com/ecp-veloc/filo"
+ git = "https://github.com/ecp-veloc/filo.git"
+
+ tags = ['ecp']
+
+ version('master', branch='master')
+
+ depends_on('mpi')
+ depends_on('axl')
+ depends_on('kvtree')
+ depends_on('spath')
+
+ def cmake_args(self):
+ args = []
+ args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
+ if self.spec.satisfies('platform=cray'):
+ args.append("-DFILO_LINK_STATIC=ON")
+ args.append("-DWITH_AXL_PREFIX=%s" % self.spec['axl'].prefix)
+ args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
+ args.append("-DWITH_SPATH_PREFIX=%s" % self.spec['spath'].prefix)
+ return args
diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py
index 538922a7de..72ad2e599c 100644
--- a/var/spack/repos/builtin/packages/flatbuffers/package.py
+++ b/var/spack/repos/builtin/packages/flatbuffers/package.py
@@ -17,3 +17,16 @@ class Flatbuffers(CMakePackage):
version('1.10.0', sha256='3714e3db8c51e43028e10ad7adffb9a36fc4aa5b1a363c2d0c4303dd1be59a7c')
version('1.9.0', sha256='5ca5491e4260cacae30f1a5786d109230db3f3a6e5a0eb45d0d0608293d247e3')
version('1.8.0', sha256='c45029c0a0f1a88d416af143e34de96b3091642722aa2d8c090916c6d1498c2e')
+
+ variant('shared', default=True,
+ description='Build shared instead of static libraries')
+
+ def cmake_args(self):
+ args = []
+ args.append('-DFLATBUFFERS_BUILD_SHAREDLIB={0}'.format(
+ 'ON' if '+shared' in self.spec else 'OFF'))
+ args.append('-DFLATBUFFERS_BUILD_FLATLIB={0}'.format(
+ 'ON' if '+shared' not in self.spec else 'OFF'))
+ if 'darwin' in self.spec.architecture:
+ args.append('-DCMAKE_MACOSX_RPATH=ON')
+ return args
diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py
index d78f350c59..fccdd686b0 100644
--- a/var/spack/repos/builtin/packages/flecsi/package.py
+++ b/var/spack/repos/builtin/packages/flecsi/package.py
@@ -20,12 +20,17 @@ class Flecsi(CMakePackage):
homepage = 'http://flecsi.org/'
git = 'https://github.com/laristra/flecsi.git'
- version('master', branch='master', submodules=False, preferred=True)
+ version('devel', branch='devel', submodules=False, preferred=False)
+ version('1', branch='1', submodules=False, preferred=True)
+ version('1.4', branch='1.4', submodules=False, preferred=False)
- variant('build_type', default='Release', values=('Debug', 'Release'),
+ variant('build_type', default='Release',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'),
description='The build type to build', multi=False)
- variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx'),
+ variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx', 'charmpp'),
description='Backend to use for distributed memory', multi=False)
+ variant('debug_backend', default=False,
+ description='Build Backend with Debug Mode')
variant('minimal', default=False,
description='Disable FindPackageMetis')
variant('shared', default=True,
@@ -48,28 +53,32 @@ class Flecsi(CMakePackage):
description='Build FleCSI Tutorials')
variant('flecstan', default=False,
description='Build FleCSI Static Analyzer')
+ variant('cinch', default=False,
+ description='Enable External Cinch')
depends_on('cmake@3.12:', type='build')
# Requires cinch > 1.0 due to cinchlog installation issue
- depends_on('cinch@1.01:', type='build')
+ depends_on('cinch@1.01:', type='build', when='+cinch')
depends_on('mpi', when='backend=mpi')
depends_on('mpi', when='backend=legion')
depends_on('mpi', when='backend=hpx')
- depends_on('legion@ctrl-rep +shared +mpi +hdf5', when='backend=legion +hdf5')
- depends_on('legion@ctrl-rep +shared +mpi', when='backend=legion ~hdf5')
- depends_on('hpx@1.3.0 cxxstd=14', when='backend=hpx')
+ depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Debug', when='backend=legion +debug_backend +hdf5')
+ depends_on('legion@ctrl-rep+shared+mpi build_type=Debug', when='backend=legion +debug_backend ~hdf5')
+ depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Release', when='backend=legion ~debug_backend +hdf5')
+ depends_on('legion@ctrl-rep+shared+mpi build_type=Release', when='backend=legion ~debug_backend ~hdf5')
+ depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Debug', when='backend=hpx +debug_backend')
+ depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Release', when='backend=hpx ~debug_backend')
depends_on('boost@1.70.0: cxxstd=14 +program_options')
depends_on('metis@5.1.0:')
depends_on('parmetis@4.0.3:')
- depends_on('hdf5', when='+hdf5')
+ depends_on('hdf5+mpi', when='+hdf5')
depends_on('caliper', when='+caliper')
depends_on('graphviz', when='+graphviz')
depends_on('python@3.0:', when='+tutorial')
depends_on('llvm', when='+flecstan')
conflicts('+tutorial', when='backend=hpx')
-# conflicts('+hdf5', when='backend=hpx')
-# conflicts('+hdf5', when='backend=mpi')
+ # conflicts('+hdf5', when='backend=hpx')
def cmake_args(self):
spec = self.spec
@@ -80,7 +89,9 @@ class Flecsi(CMakePackage):
'-DENABLE_COLORING=ON',
'-DENABLE_DEVEL_TARGETS=ON'
]
- options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix)
+
+ if '+cinch' in spec:
+ options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix)
if spec.variants['backend'].value == 'legion':
options.append('-DFLECSI_RUNTIME_MODEL=legion')
@@ -95,6 +106,11 @@ class Flecsi(CMakePackage):
options.append('-DFLECSI_RUNTIME_MODEL=serial')
options.append('-DENABLE_MPI=OFF')
+ if self.run_tests:
+ options.append('-DENABLE_UNIT_TESTS=ON')
+ else:
+ options.append('-DENABLE_UNIT_TESTS=OFF')
+
if '+minimal' in spec:
options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON')
else:
@@ -104,12 +120,7 @@ class Flecsi(CMakePackage):
else:
options.append('-DBUILD_SHARED_LIBS=OFF')
- if self.run_tests:
- options.append('-DENABLE_UNIT_TESTS=ON')
- else:
- options.append('-DENABLE_UNIT_TESTS=OFF')
-
- if '+hdf5' in spec and spec.variants['backend'].value == 'legion':
+ if '+hdf5' in spec and spec.variants['backend'].value != 'hpx':
options.append('-DENABLE_HDF5=ON')
else:
options.append('-DENABLE_HDF5=OFF')
diff --git a/var/spack/repos/builtin/packages/freeipmi/package.py b/var/spack/repos/builtin/packages/freeipmi/package.py
new file mode 100644
index 0000000000..bcb3e502cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/freeipmi/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import llnl.util.tty as tty
+
+
+class Freeipmi(AutotoolsPackage):
+ """FreeIPMI provides in-band and out-of-band IPMI software based on the IPMI
+ v1.5/2.0 specification. The IPMI specification defines a set of interfaces
+ for platform management and is implemented by a number vendors for system
+ management. The features of IPMI that most users will be interested in are
+ sensor monitoring, system event monitoring, power control, and
+ serial-over-LAN (SOL). The FreeIPMI tools and libraries listed below should
+ provide users with the ability to access and utilize these and many other
+ features. A number of useful features for large HPC or cluster environments
+ have also been implemented into FreeIPMI. See the README or FAQ for more
+ info."""
+
+ homepage = "https://www.gnu.org/software/freeipmi/"
+ url = "https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.4.tar.gz"
+
+ version('1.6.4',
+ sha256='65dfbb95a30438ba247f01a58498862a37d2e71c8c950bcfcee459d079241a3c')
+
+ depends_on('libgcrypt')
+
+ parallel = False
+
+ def configure_args(self):
+ # FIXME: If root checking of root installation is added fix this:
+ # Discussed in issue #4432
+ tty.warn("Requires 'root' for bmc-watchdog.service installation to"
+ " /lib/systemd/system/ !")
+
+ args = ['--prefix={0}'.format(prefix)]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/g4abla/package.py b/var/spack/repos/builtin/packages/g4abla/package.py
index 2ce2f6ece1..b14f88d4d9 100644
--- a/var/spack/repos/builtin/packages/g4abla/package.py
+++ b/var/spack/repos/builtin/packages/g4abla/package.py
@@ -11,6 +11,7 @@ class G4abla(Package):
"""Geant4 data for nuclear shell effects in INCL/ABLA hadronic mode"""
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz"
+ maintainers = ['drbenmorgan']
version(
'3.0', sha256='99fd4dcc9b4949778f14ed8364088e45fa4ff3148b3ea36f9f3103241d277014')
diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py
index 81e6b856d4..df6af19e26 100644
--- a/var/spack/repos/builtin/packages/g4emlow/package.py
+++ b/var/spack/repos/builtin/packages/g4emlow/package.py
@@ -11,6 +11,7 @@ class G4emlow(Package):
"""Geant4 data files for low energy electromagnetic processes."""
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz"
+ maintainers = ['drbenmorgan']
version(
'6.50', sha256='c97be73fece5fb4f73c43e11c146b43f651c6991edd0edf8619c9452f8ab1236')
diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
index 514593f34c..06b50b3754 100644
--- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py
+++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
@@ -12,6 +12,8 @@ class G4ensdfstate(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('2.1', sha256='933e7f99b1c70f24694d12d517dfca36d82f4e95b084c15d86756ace2a2790d9')
version('2.2', sha256='dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6')
diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py
index 909f732b5c..7ab6c9f26d 100644
--- a/var/spack/repos/builtin/packages/g4ndl/package.py
+++ b/var/spack/repos/builtin/packages/g4ndl/package.py
@@ -12,6 +12,8 @@ class G4ndl(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('4.5', sha256='cba928a520a788f2bc8229c7ef57f83d0934bb0c6a18c31ef05ef4865edcdf8e')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/g4neutronxs/package.py b/var/spack/repos/builtin/packages/g4neutronxs/package.py
index f853780c35..df3de0696c 100644
--- a/var/spack/repos/builtin/packages/g4neutronxs/package.py
+++ b/var/spack/repos/builtin/packages/g4neutronxs/package.py
@@ -13,6 +13,8 @@ class G4neutronxs(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('1.4', sha256='57b38868d7eb060ddd65b26283402d4f161db76ed2169437c266105cca73a8fd')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
index ff47072c50..4e5c62b999 100644
--- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py
+++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
@@ -12,6 +12,8 @@ class G4photonevaporation(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('4.3.2', sha256='d4641a6fe1c645ab2a7ecee09c34e5ea584fb10d63d2838248bfc487d34207c7')
version('5.2', sha256='83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f')
diff --git a/var/spack/repos/builtin/packages/g4pii/package.py b/var/spack/repos/builtin/packages/g4pii/package.py
index 65ca27aba2..2e238a6418 100644
--- a/var/spack/repos/builtin/packages/g4pii/package.py
+++ b/var/spack/repos/builtin/packages/g4pii/package.py
@@ -12,6 +12,8 @@ class G4pii(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('1.3', sha256='6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
index e36b0464e1..c281ff63cd 100644
--- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
+++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
@@ -12,6 +12,8 @@ class G4radioactivedecay(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('5.1.1', sha256='f7a9a0cc998f0d946359f2cb18d30dff1eabb7f3c578891111fc3641833870ae')
version('5.2', sha256='99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d')
diff --git a/var/spack/repos/builtin/packages/g4realsurface/package.py b/var/spack/repos/builtin/packages/g4realsurface/package.py
index d20e6fddc5..b741b61ef8 100644
--- a/var/spack/repos/builtin/packages/g4realsurface/package.py
+++ b/var/spack/repos/builtin/packages/g4realsurface/package.py
@@ -12,6 +12,8 @@ class G4realsurface(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('1.0', sha256='3e2d2506600d2780ed903f1f2681962e208039329347c58ba1916740679020b1')
version('2.1', sha256='2a287adbda1c0292571edeae2082a65b7f7bd6cf2bf088432d1d6f889426dcf3')
version('2.1.1', sha256='90481ff97a7c3fa792b7a2a21c9ed80a40e6be386e581a39950c844b2dd06f50')
diff --git a/var/spack/repos/builtin/packages/g4saiddata/package.py b/var/spack/repos/builtin/packages/g4saiddata/package.py
index 0565276d90..7b03177f73 100644
--- a/var/spack/repos/builtin/packages/g4saiddata/package.py
+++ b/var/spack/repos/builtin/packages/g4saiddata/package.py
@@ -12,6 +12,8 @@ class G4saiddata(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('1.1', sha256='a38cd9a83db62311922850fe609ecd250d36adf264a88e88c82ba82b7da0ed7f')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py
index 04ad834271..2a3ecbc074 100644
--- a/var/spack/repos/builtin/packages/g4tendl/package.py
+++ b/var/spack/repos/builtin/packages/g4tendl/package.py
@@ -12,6 +12,8 @@ class G4tendl(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('1.3', sha256='52ad77515033a5d6f995c699809b464725a0e62099b5e55bf07c8bdd02cd3bce')
version('1.3.2', sha256='3b2987c6e3bee74197e3bd39e25e1cc756bb866c26d21a70f647959fc7afb849')
diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch
new file mode 100644
index 0000000000..96037707d3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch
@@ -0,0 +1,37 @@
+From ce9568e9e9cf6094be30e748821421e703754ffc Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Fri, 8 Nov 2019 19:53:18 +0100
+Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
+ bootstrap due to libsanitizer)
+
+ Backported from mainline
+ 2019-10-22 Tamar Christina <tamar.christina@arm.com>
+
+ PR sanitizer/92154
+ * sanitizer_common/sanitizer_platform_limits_posix.cc:
+ Cherry-pick compiler-rt revision r375220.
+
+From-SVN: r277981
+---
+ libsanitizer/ChangeLog | 9 +++++++++
+ .../sanitizer_common/sanitizer_platform_limits_posix.cc | 6 +++++-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 6cd4a5bac8b0..06a605ff4670 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1156,8 +1156,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
++#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
++ !defined(__arm__)
+ /* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
++/* On Arm glibc 2.31 and later provide a different mode field, this field is
++ never used by libsanitizer so we can simply ignore this assert for all glibc
++ versions. */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+
diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch
new file mode 100644
index 0000000000..75234436e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch
@@ -0,0 +1,73 @@
+From 75003cdd23c310ec385344e8040d490e8dd6d2be Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Fri, 20 Dec 2019 17:58:35 +0100
+Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
+ bootstrap due to libsanitizer)
+
+ Backported from mainline
+ 2019-11-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/92154
+ * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
+ llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
+ * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
+
+From-SVN: r279653
+---
+ libsanitizer/ChangeLog | 10 ++++++++++
+ .../sanitizer_platform_limits_posix.cc | 9 +++------
+ .../sanitizer_platform_limits_posix.h | 15 +--------------
+ 3 files changed, 14 insertions(+), 20 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 06a605ff4670..d823a12190c0 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1156,12 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
+- !defined(__arm__)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+-/* On Arm glibc 2.31 and later provide a different mode field, this field is
+- never used by libsanitizer so we can simply ignore this assert for all glibc
+- versions. */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++ on many architectures. */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+index 73af92af1e8f..6a673a7c9959 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -211,26 +211,13 @@ namespace __sanitizer {
+ u64 __unused1;
+ u64 __unused2;
+ #elif defined(__sparc__)
+-#if defined(__arch64__)
+ unsigned mode;
+- unsigned short __pad1;
+-#else
+- unsigned short __pad1;
+- unsigned short mode;
+ unsigned short __pad2;
+-#endif
+ unsigned short __seq;
+ unsigned long long __unused1;
+ unsigned long long __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+- unsigned int mode;
+- unsigned short __seq;
+- unsigned short __pad1;
+- unsigned long __unused1;
+- unsigned long __unused2;
+ #else
+- unsigned short mode;
+- unsigned short __pad1;
++ unsigned int mode;
+ unsigned short __seq;
+ unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 431fcaa9da..f3891161a2 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -25,9 +25,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
version('develop', svn=svn + 'trunk')
+ version('9.3.0', sha256='71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1')
version('9.2.0', sha256='ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206')
version('9.1.0', sha256='79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0')
+ version('8.4.0', sha256='e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4')
version('8.3.0', sha256='64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c')
version('8.2.0', sha256='196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080')
version('8.1.0', sha256='1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153')
@@ -107,12 +109,16 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
depends_on('zip', type='build', when='languages=java')
depends_on('cuda', when='+nvptx')
+ # The server is sometimes a bit slow to respond
+ timeout = {'timeout': 60}
+
resource(
name='newlib',
url='ftp://sourceware.org/pub/newlib/newlib-3.0.0.20180831.tar.gz',
sha256='3ad3664f227357df15ff34e954bfd9f501009a647667cd307bf0658aefd6eb5b',
destination='newlibsource',
- when='+nvptx'
+ when='+nvptx',
+ fetch_options=timeout
)
# nvptx-tools does not seem to work as a dependency,
@@ -193,6 +199,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# Binutils can't build ld on macOS
conflicts('+binutils', when='platform=darwin')
+ # Newer binutils than RHEL's is required to run `as` on some instructions
+ # generated by new GCC (see https://github.com/spack/spack/issues/12235)
+ conflicts('~binutils', when='@7: os=rhel6',
+ msg='New GCC cannot use system assembler on RHEL6')
+
if sys.platform == 'darwin':
# Fix parallel build on APFS filesystem
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
@@ -212,7 +223,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# Fix system headers for Catalina SDK
# (otherwise __OSX_AVAILABLE_STARTING ends up undefined)
patch('https://raw.githubusercontent.com/Homebrew/formula-patches/b8b8e65e/gcc/9.2.0-catalina.patch',
- sha256='0b8d14a7f3c6a2f0d2498526e86e088926671b5da50a554ffa6b7f73ac4f132b', when='@9.2.0:')
+ sha256='0b8d14a7f3c6a2f0d2498526e86e088926671b5da50a554ffa6b7f73ac4f132b', when='@9.2.0')
# Use -headerpad_max_install_names in the build,
# otherwise updated load commands won't fit in the Mach-O header.
# This is needed because `gcc` avoids the superenv shim.
@@ -224,6 +235,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
patch('piclibs.patch', when='+piclibs')
patch('gcc-backport.patch', when='@4.7:4.9.2,5:5.3')
+ # Backport libsanitizer patch for glibc >= 2.31 and 8.1.0 <= gcc <= 9.2.0
+ # https://bugs.gentoo.org/708346
+ patch('glibc-2.31-libsanitizer-1.patch', when='@8.1.0:9.2.0')
+ patch('glibc-2.31-libsanitizer-2.patch', when='@8.1.0:9.2.0')
# Older versions do not compile with newer versions of glibc
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
patch('ucontext_t.patch', when='@4.9,5.1:5.4,6.1:6.4,7.1')
diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py
index c1372dee1a..f5c4e72fac 100644
--- a/var/spack/repos/builtin/packages/geant4-data/package.py
+++ b/var/spack/repos/builtin/packages/geant4-data/package.py
@@ -14,6 +14,8 @@ class Geant4Data(Package):
homepage = "http://geant4.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/ReleaseNotes/ReleaseNotes4.10.3.html"
+ maintainers = ['drbenmorgan']
+
version('10.03.p03', sha256='3e0d4d4e6854c8667d930fd5beaec09b7e6ec41f4847935e5d6a2720d0094b30', expand=False)
version('10.04', sha256='f67fb899b99348a1a7e471a05f249f972e7e303c78238fc5f693b99968642255', expand=False)
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
index 6fb2318479..f3bcb121f6 100644
--- a/var/spack/repos/builtin/packages/geant4/package.py
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -17,6 +17,8 @@ class Geant4(CMakePackage):
homepage = "http://geant4.cern.ch/"
url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz"
+ maintainers = ['drbenmorgan']
+
version('10.05.p01', sha256='f4a292220500fad17e0167ce3153e96e3410ecbe96284e572dc707f63523bdff')
version('10.04', sha256='f6d883132f110eb036c69da2b21df51f13c585dc7b99d4211ddd32f4ccee1670')
version('10.03.p03', sha256='a164f49c038859ab675eec474d08c9d02be8c4be9c0c2d3aa8e69adf89e1e138')
@@ -56,7 +58,6 @@ class Geant4(CMakePackage):
depends_on("expat")
depends_on("zlib")
- depends_on("xerces-c")
depends_on("gl", when='+opengl')
depends_on("glx", when='+opengl+x11')
depends_on("libx11", when='+x11')
diff --git a/var/spack/repos/builtin/packages/gengetopt/package.py b/var/spack/repos/builtin/packages/gengetopt/package.py
new file mode 100644
index 0000000000..44389fa38a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gengetopt/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Gengetopt(AutotoolsPackage):
+ """Tool to write command line option parsing code for C programs"""
+
+ homepage = "https://www.gnu.org/software/gengetopt/gengetopt.html"
+ url = "ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-2.23.tar.xz"
+
+ maintainers = ['rblake-llnl']
+
+ version('2.23', sha256='b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac')
+ version('2.22.6', sha256='30b05a88604d71ef2a42a2ef26cd26df242b41f5b011ad03083143a31d9b01f7')
+ version('2.22.5', sha256='3b6fb3240352b0eb0c5b8583b58b62cbba58167cef5a7e82fa08a7f968ed2137')
+ version('2.22.4', sha256='4edf6b24ec8085929c86835c51d5bf904052cc671530c15f9314d9b87fe54421')
+ version('2.22.3', sha256='8ce6b3df49cefea97bd522dc054ede2037939978bf23754d5c17311e5a1df3dc')
+ version('2.22.2', sha256='4bf96bea9f80ac85c716cd07f5fe68602db7f380f6dc2d025f17139aa0b56455')
+ version('2.22.1', sha256='e8d1de4f8c102263844886a2f2b57d82c291c1eae6307ea406fb96f29a67c3a7')
+ version('2.22', sha256='b605555e41e9bf7e852a37b051e6a49014e561f21290680e3a60c279488d417e')
+ version('2.21', sha256='355a32310b2fee5e7289d6d6e89eddd13275a7c85a243dc5dd293a6cb5bb047e')
+ version('2.20', sha256='4c8b3b42cecff579f5f9de5ccad47e0849e0245e325a04ff5985c248141af1a4')
+
+ parallel = False
+
+ def url_for_version(self, version):
+ url = 'ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-{0}.tar.{1}'
+ if version >= Version('2.23'):
+ suffix = 'xz'
+ else:
+ suffix = 'gz'
+ return url.format(version, suffix)
diff --git a/var/spack/repos/builtin/packages/glfw/package.py b/var/spack/repos/builtin/packages/glfw/package.py
new file mode 100644
index 0000000000..168fff8b0e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glfw/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Glfw(CMakePackage):
+ """GLFW is an Open Source, multi-platform library for
+ OpenGL, OpenGL ES and Vulkan development on the desktop. It
+ provides a simple API for creating windows, contexts and
+ surfaces, receiving input and events."""
+
+ homepage = "https://www.glfw.org/"
+ url = "https://github.com/glfw/glfw/archive/3.3.2.tar.gz"
+
+ version('3.3.2', sha256='98768e12e615fbe9f3386f5bbfeb91b5a3b45a8c4c77159cef06b1f6ff749537')
+ version('3.3.1', sha256='6bca16e69361798817a4b62a5239a77253c29577fcd5d52ae8b85096e514177f')
+ version('3.3', sha256='81bf5fde487676a8af55cb317830703086bb534c53968d71936e7b48ee5a0f3e')
+ version('3.2.1', sha256='e10f0de1384d75e6fc210c53e91843f6110d6c4f3afbfb588130713c2f9d8fe8')
+ version('3.2', sha256='cb3aab46757981a39ae108e5207a1ecc4378e68949433a2b040ce2e17d8f6aa6')
+ version('3.1.2', sha256='6ac642087682aaf7f8397761a41a99042b2c656498217a1c63ba9706d1eef122')
+ version('3.1.1', sha256='4de311ec9bf43bfdc8423ddf93b91dc54dc73dcfbedfb0991b6fbb3a9baf245f')
+ version('3.1', sha256='2140f4c532e7ce4c84cb7e4c419d0979d5954fa1ce204b7646491bd2cc5bf308')
+ version('3.0.4', sha256='a4e7c57db2086803de4fc853bd472ff8b6d2639b9aa16e6ac6b19ffb53958caf')
+ version('3.0.3', sha256='7a182047ba6b1fdcda778b79aac249bb2328b6d141188cb5df29560715d01693')
+
+ depends_on('libxrandr')
+ depends_on('libxinerama')
+ depends_on('libxcursor')
+ depends_on('libxdamage')
+ depends_on('libxft')
+ depends_on('libxi')
+ depends_on('libxmu')
+ depends_on('freetype')
+ depends_on('fontconfig')
+ depends_on('doxygen', type='build')
+ depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py
new file mode 100644
index 0000000000..89024cf977
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glusterfs/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Glusterfs(AutotoolsPackage):
+ """Gluster is a software defined distributed storage that can scale to
+ several petabytes. It provides interfaces for object, block and file
+ storage."""
+
+ homepage = "https://www.gluster.org/"
+ url = "https://download.gluster.org/pub/gluster/glusterfs/7/7.3/glusterfs-7.3.tar.gz"
+ list_url = "https://download.gluster.org/pub/gluster/glusterfs/"
+ list_depth = 2
+
+ version('7.3', sha256='2401cc7c3f5488f6fc5ea09ce2ab30c918612f592571fb3de6124f8482ad4954')
+ version('7.2', sha256='8e43614967b90d64495fbe2c52230dd72572ce219507fb48bc317b1c228a06e1')
+ version('7.1', sha256='ffc5bd78b079009382bd01391865646bc9b2e8e72366afc96d62ba891dd9dbce')
+ version('7.0', sha256='8a872518bf9bd4dc1568f45c716bcde09e3bf7abf5b156ea90405e0fc2e9f07b')
+ version('6.8', sha256='41e855bdc456759c8c15ef494c636a25cc7b62c55ad132ecd55bec05df64793f')
+ version('6.7', sha256='e237dd59a2d5b73e156b0b71df49ff64a143b3aaf8f0a65daaf369bb40f5e923')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('rpcsvc-proto')
+ depends_on('acl')
+ depends_on('libuuid')
+ depends_on('libtirpc')
+ depends_on('userspace-rcu')
+
+ def url_for_version(self, version):
+ url = 'https://download.gluster.org/pub/gluster/glusterfs/{0}/{1}/glusterfs-{1}.tar.gz'
+ return url.format(version.up_to(1), version)
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index b5d677bd99..522a315f29 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -19,6 +19,7 @@ class Gmsh(CMakePackage):
homepage = 'http://gmsh.info'
url = 'http://gmsh.info/src/gmsh-4.4.1-source.tgz'
+ version('4.5.4', sha256='ccf8c74f43cbe3c371abe79862025d41642b3538a0148f018949494e3b3e2ecd')
version('4.4.1', sha256='853c6438fc4e4b765206e66a514b09182c56377bb4b73f1d0d26eda7eb8af0dc')
version('4.2.2', sha256='e9ee9f5c606bbec5f2adbb8c3d6023c4e2577f487fa4e4ecfcfc94a241cc8dcc')
version('4.0.0', sha256='fb0c8afa37425c6f4315ab3b3124e9e102fcf270a35198423a4002796f04155f')
@@ -31,16 +32,18 @@ class Gmsh(CMakePackage):
variant('shared', default=True, description='Enables the build of shared libraries')
variant('mpi', default=True, description='Builds MPI support for parser and solver')
- variant('openmp', default=False, description='Enable OpenMP support')
+ variant('openmp', default=False, description='Enable OpenMP support')
variant('fltk', default=False, description='Enables the build of the FLTK GUI')
variant('hdf5', default=False, description='Enables HDF5 support')
variant('compression', default=True, description='Enables IO compression through zlib')
variant('netgen', default=False, description='Build with Netgen')
+ variant('opencascade', default=False, description='Build with OpenCASCADE')
variant('oce', default=False, description='Build with OCE')
variant('petsc', default=False, description='Build with PETSc')
variant('slepc', default=False, description='Build with SLEPc (only when PETSc is enabled)')
variant('tetgen', default=False, description='Build with Tetgen')
- variant('metis', default=False, description='Build with Metis')
+ variant('metis', default=False, description='Build with Metis')
+ variant('privateapi', default=False, description='Enable the private API')
depends_on('blas')
depends_on('lapack')
@@ -51,6 +54,7 @@ class Gmsh(CMakePackage):
depends_on('fltk', when='+fltk')
depends_on('hdf5', when='+hdf5')
depends_on('netgen', when='+netgen')
+ depends_on('opencascade', when='+opencascade')
depends_on('oce', when='+oce')
depends_on('petsc+mpi', when='+petsc+mpi')
depends_on('petsc', when='+petsc~mpi')
@@ -60,6 +64,7 @@ class Gmsh(CMakePackage):
depends_on('metis', when='+metis')
conflicts('+slepc', when='~petsc')
+ conflicts('+oce', when='+opencascade')
def cmake_args(self):
spec = self.spec
@@ -96,6 +101,9 @@ class Gmsh(CMakePackage):
if '+oce' in spec:
env['CASROOT'] = self.spec['oce'].prefix
options.append('-DENABLE_OCC=ON')
+ elif '+opencascade' in spec:
+ env['CASROOT'] = self.spec['opencascade'].prefix
+ options.append('-DENABLE_OCC=ON')
else:
options.append('-DENABLE_OCC=OFF')
@@ -142,4 +150,9 @@ class Gmsh(CMakePackage):
if '+compression' in spec:
options.append('-DENABLE_COMPRESSED_IO:BOOL=ON')
+ if '+privateapi' in spec:
+ options.append('-DENABLE_PRIVATE_API=ON')
+ else:
+ options.append('-DENABLE_PRIVATE_API=OFF')
+
return options
diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py
index 65005a4bba..943f14d31f 100644
--- a/var/spack/repos/builtin/packages/gnupg/package.py
+++ b/var/spack/repos/builtin/packages/gnupg/package.py
@@ -7,38 +7,49 @@ from spack import *
class Gnupg(AutotoolsPackage):
- """GnuPG is a complete and free implementation of the OpenPGP
- standard as defined by RFC4880 """
+ """GNU Pretty Good Privacy (PGP) package."""
homepage = "https://gnupg.org/index.html"
- url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.17.tar.bz2"
+ url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.19.tar.bz2"
+ version('2.2.19', sha256='242554c0e06f3a83c420b052f750b65ead711cc3fddddb5e7274fcdbb4e9dec0')
version('2.2.17', sha256='afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514')
version('2.2.15', sha256='cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454')
version('2.2.3', sha256='cbd37105d139f7aa74f92b6f65d136658682094b0e308666b820ae4b984084b4')
version('2.1.21', sha256='7aead8a8ba75b69866f583b6c747d91414d523bfdfbe9a8e0fe026b16ba427dd')
+ depends_on('npth@1.2:')
+ depends_on('libgpg-error@1.24:')
depends_on('libgcrypt@1.7.0:')
+ depends_on('libksba@1.3.4:')
depends_on('libassuan@2.4:', when='@:2.2.3')
depends_on('libassuan@2.5:', when='@2.2.15:')
- depends_on('libksba@1.3.4:')
- depends_on('libgpg-error@1.24:')
- depends_on('npth@1.2:')
- depends_on('zlib')
+ depends_on('pinentry', type='run')
depends_on('libiconv')
+ depends_on('zlib')
def configure_args(self):
- return [
- '--without-tar',
+ args = [
+ '--disable-bzip2',
+ '--disable-sqlite',
+ '--disable-ntbtls',
+ '--disable-gnutls',
+ '--disable-ldap',
+ '--disable-regex',
+ '--with-pinentry-pgm=' + self.spec['pinentry'].command.path,
'--with-libgpg-error-prefix=' + self.spec['libgpg-error'].prefix,
'--with-libgcrypt-prefix=' + self.spec['libgcrypt'].prefix,
'--with-libassuan-prefix=' + self.spec['libassuan'].prefix,
'--with-ksba-prefix=' + self.spec['libksba'].prefix,
'--with-npth-prefix=' + self.spec['npth'].prefix,
- '--without-ldap',
'--with-libiconv-prefix=' + self.spec['libiconv'].prefix,
- '--without-regex',
'--with-zlib=' + self.spec['zlib'].prefix,
- '--without-bzip2',
+ '--without-tar',
+ '--without-libiconv-prefix',
'--without-readline',
]
+
+ if self.run_tests:
+ args.append('--enable-all-tests')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index 75d183148f..09d5796c09 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -35,6 +35,7 @@ class Go(Package):
extendable = True
+ version('1.14', sha256='6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389')
version('1.13.8', sha256='b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34')
version('1.13.7', sha256='e4ad42cc5f5c19521fbbbde3680995f2546110b5c6aa2b48c3754ff7af9b41f4')
version('1.13.6', sha256='aae5be954bdc40bcf8006eb77e8d8a5dde412722bc8effcdaf9772620d06420c')
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index bc61efdbe9..037b25721b 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -2,8 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
+import llnl.util.cpu
class Gromacs(CMakePackage):
@@ -24,8 +23,10 @@ class Gromacs(CMakePackage):
git = 'https://github.com/gromacs/gromacs.git'
maintainers = ['junghans', 'marvinbernhardt']
- version('develop', branch='master')
+ version('master', branch='master')
+ version('2020.1', sha256='e1666558831a3951c02b81000842223698016922806a8ce152e8f616e29899cf')
version('2020', sha256='477e56142b3dcd9cb61b8f67b24a55760b04d1655e8684f979a75a5eec40ba01')
+ version('2019.6', sha256='bebe396dc0db11a9d4cc205abc13b50d88225617642508168a2195324f06a358')
version('2019.5', sha256='438061a4a2d45bbb5cf5c3aadd6c6df32d2d77ce8c715f1c8ffe56156994083a')
version('2019.4', sha256='ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867')
version('2019.3', sha256='4211a598bf3b7aca2b14ad991448947da9032566f13239b1a05a2d4824357573')
@@ -60,12 +61,6 @@ class Gromacs(CMakePackage):
description='The build type to build',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel',
'Reference', 'RelWithAssert', 'Profile'))
- variant('simd', default='auto',
- description='The SIMD instruction set to use',
- values=('auto', 'none', 'SSE2', 'SSE4.1', 'AVX_128_FMA', 'AVX_256',
- 'AVX2_128', 'AVX2_256', 'AVX_512', 'AVX_512_KNL',
- 'IBM_QPX', 'Sparc64_HPC_ACE', 'IBM_VMX', 'IBM_VSX',
- 'ARM_NEON', 'ARM_NEON_ASIMD'))
variant('rdtscp', default=True, description='Enable RDTSCP instruction usage')
variant('mdrun_only', default=False,
description='Enables the build of a cut-down version'
@@ -117,13 +112,40 @@ class Gromacs(CMakePackage):
else:
options.append('-DGMX_GPU:BOOL=OFF')
- simd_value = self.spec.variants['simd'].value
- if simd_value == 'auto':
- pass
- elif simd_value == 'none':
- options.append('-DGMX_SIMD:STRING=None')
+ # Activate SIMD based on properties of the target
+ target = self.spec.target
+ if target >= llnl.util.cpu.targets['bulldozer']:
+ # AMD Family 15h
+ options.append('-DGMX_SIMD=AVX_128_FMA')
+ elif target >= llnl.util.cpu.targets['zen']:
+ # AMD Family 17h
+ options.append('-DGMX_SIMD=AVX2_128')
+ elif target >= llnl.util.cpu.targets['power7']:
+ # IBM Power 7 and beyond
+ options.append('-DGMX_SIMD=IBM_VSX')
+ elif target.family == llnl.util.cpu.targets['aarch64']:
+ # ARMv8
+ options.append('-DGMX_SIMD=ARM_NEON_ASIMD')
+ elif target == llnl.util.cpu.targets['mic_knl']:
+ # Intel KNL
+ options.append('-DGMX_SIMD=AVX_512_KNL')
+ elif target.vendor == 'GenuineIntel':
+ # Other Intel architectures
+ simd_features = [
+ ('sse2', 'SSE2'),
+ ('sse4_1', 'SSE4.1'),
+ ('avx', 'AVX_256'),
+ ('axv128', 'AVX2_128'),
+ ('avx2', 'AVX2_256'),
+ ('avx512', 'AVX_512'),
+ ]
+ for feature, flag in reversed(simd_features):
+ if feature in target:
+ options.append('-DGMX_SIMD:STRING={0}'.format(flag))
+ break
else:
- options.append('-DGMX_SIMD:STRING=' + simd_value)
+ # Fall back to this for unknown microarchitectures
+ options.append('-DGMX_SIMD:STRING=None')
if '-rdtscp' in self.spec:
options.append('-DGMX_USE_RDTSCP:BOOL=OFF')
diff --git a/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch b/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch
new file mode 100644
index 0000000000..7417ca57a7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch
@@ -0,0 +1,323 @@
+ Makefile.am | 8 +-
+ ax_cblas.m4 | 69 +++++
+ bspline/Makefile.am | 2 +-
+ configure.ac | 10 +
+ eigen/Makefile.am | 2 +-
+ gsl-config.in | 4 +-
+ gsl.pc.in | 2 +-
+ interpolation/Makefile.am | 2 +-
+ linalg/Makefile.am | 2 +-
+ multifit/Makefile.am | 4 +-
+ multimin/Makefile.am | 4 +-
+ multiroots/Makefile.am | 2 +-
+ ode-initval/Makefile.am | 2 +-
+ poly/Makefile.am | 2 +-
+ specfunc/Makefile.am | 2 +-
+ wavelet/Makefile.am | 2 +-
+ 31 files changed, 1157 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c522001..4513bc8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,7 +19,7 @@ EXTRA_DIST = autogen.sh gsl-config.in gsl.pc.in configure.ac THANKS BUGS gsl.spe
+
+ lib_LTLIBRARIES = libgsl.la
+ libgsl_la_SOURCES = version.c
+-libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS)
++libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS) @CBLAS_LINK_LIBS@
+ libgsl_la_LDFLAGS = $(GSL_LDFLAGS) -version-info $(GSL_LT_VERSION)
+ noinst_HEADERS = templates_on.h templates_off.h build.h
+
+@@ -29,10 +29,10 @@ m4data_DATA = gsl.m4
+ bin_PROGRAMS = gsl-randist gsl-histogram
+
+ gsl_randist_SOURCES = gsl-randist.c
+-gsl_randist_LDADD = libgsl.la cblas/libgslcblas.la
++gsl_randist_LDADD = libgsl.la
+
+ gsl_histogram_SOURCES = gsl-histogram.c
+-gsl_histogram_LDADD = libgsl.la cblas/libgslcblas.la
++gsl_histogram_LDADD = libgsl.la
+
+ check_SCRIPTS = test_gsl_histogram.sh pkgconfig.test
+ TESTS = test_gsl_histogram.sh pkgconfig.test
+@@ -51,6 +51,8 @@ edit = $(SED) \
+ -e 's|@GSL_CFLAGS[@]|$(GSL_CFLAGS)|g' \
+ -e 's|@GSL_LIBM[@]|$(GSL_LIBM)|g' \
+ -e 's|@GSL_LIBS[@]|$(GSL_LIBS)|g' \
++ -e 's|@CBLAS_CFLAGS[@]|$(CBLAS_CFLAGS)|g' \
++ -e 's|@CBLAS_LIBS[@]|$(CBLAS_LIBS)|g' \
+ -e 's|@LIBS[@]|$(LIBS)|g' \
+ -e 's|@VERSION[@]|$(VERSION)|g'
+
+diff --git a/ax_cblas.m4 b/ax_cblas.m4
+new file mode 100644
+index 0000000..6ef143a
+--- /dev/null
++++ b/ax_cblas.m4
+@@ -0,0 +1,69 @@
++AC_DEFUN([AX_CBLAS],[
++
++ ext_cblas=no
++ ext_cblas_libs="-lcblas"
++ ext_cblas_cflags=""
++
++ AC_ARG_WITH(cblas-external,
++ [AS_HELP_STRING([--with-cblas-external],
++ [Use external CBLAS library (default is no)])],
++ [with_ext_cblas=$withval],
++ [with_ext_cblas=no])
++
++ case $with_ext_cblas in
++ no) ext_cblas=no ;;
++ yes) ext_cblas=yes ;;
++ -* | */* | *.a | *.so | *.so.* | *.o)
++ ext_cblas=yes
++ ext_cblas_libs="$with_cblas" ;;
++ *) ext_cblas=yes
++ ext_cblas_libs="-l$with_cblas" ;;
++ esac
++
++ AC_ARG_WITH(cblas-external-libs,
++ [AS_HELP_STRING([--with-cblas-external-libs=<libs>],
++ [External cblas libraries to link with (default is "$ext_cblas_libs")])],
++ [ext_cblas_libs=$withval],
++ [])
++
++ AC_ARG_WITH(cblas-external-cflags,
++ [AS_HELP_STRING([--with-cblas-external-cflags=<flags>],
++ [Pre-processing flags to compile with external cblas ("-I<dir>")])],
++ [ext_cblas_cflags=$withval],
++ [])
++
++ if test x$ext_cblas != xno; then
++ if test "x$CBLAS_LIBS" = x; then
++ CBLAS_LIBS="$ext_cblas_libs"
++ fi
++ if test "x$CBLAS_CFLAGS" = x; then
++ CBLAS_CFLAGS="$ext_cblas_cflags"
++ fi
++
++ CFLAGS_sav="$CFLAGS"
++ CFLAGS="$CFLAGS $CBLAS_CFLAGS"
++ AC_CHECK_HEADER(cblas.h, ,
++ [AC_MSG_ERROR([
++ *** Header file cblas.h not found.
++ *** If you installed cblas header in a non standard place,
++ *** specify its install prefix using the following option
++ *** --with-cblas-external-cflags="-I<include_dir>"])
++ ])
++ CFLAGS="$CFLAGS_sav"
++
++ LIBS_sav="$LIBS"
++ LIBS="$LIBS $CBLAS_LIBS -lm"
++ AC_MSG_CHECKING([for cblas_sgemm in $CBLAS_LIBS])
++ AC_TRY_LINK_FUNC(cblas_sgemm, [ext_cblas=yes],
++ [AC_MSG_ERROR([
++ *** Linking with cblas with $LIBS failed.
++ *** If you installed cblas library in a non standard place,
++ *** specify its install prefix using the following option
++ *** --with-cblas-external-libs="-L<lib_dir> -l<lib>"])
++ ])
++ AC_MSG_RESULT($ext_cblas)
++ LIBS="$LIBS_sav"
++ AC_SUBST([CBLAS_CFLAGS])
++ AC_SUBST([CBLAS_LIBS])
++ fi
++])
+diff --git a/bspline/Makefile.am b/bspline/Makefile.am
+index 3f4f950..d413036 100644
+--- a/bspline/Makefile.am
++++ b/bspline/Makefile.am
+@@ -12,6 +12,6 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
++test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
+
+ test_SOURCES = test.c
+diff --git a/configure.ac b/configure.ac
+index a26fc1e..564d426 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -208,6 +208,16 @@ if test "x$LIBS" = "x" ; then
+ AC_CHECK_LIB(m, cos)
+ fi
+
++sinclude(ax_cblas.m4)
++AX_CBLAS
++if test "x$CBLAS_LIBS" != "x"; then
++ CBLAS_LINK_LIBS="$CBLAS_LIBS"
++else
++ CBLAS_LINK_LIBS="\$(top_builddir)/cblas/libgslcblas.la"
++ CBLAS_LIBS="-lgslcblas"
++fi
++AC_SUBST(CBLAS_LINK_LIBS)
++
+ dnl Remember to put a definition in acconfig.h for each of these
+ AC_CHECK_DECLS(feenableexcept,,,[#define _GNU_SOURCE 1
+ #include <fenv.h>])
+diff --git a/eigen/Makefile.am b/eigen/Makefile.am
+index c28bfde..14197a4 100644
+--- a/eigen/Makefile.am
++++ b/eigen/Makefile.am
+@@ -11,7 +11,7 @@ noinst_HEADERS = qrstep.c
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
++test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
+
+ test_SOURCES = test.c
+
+diff --git a/gsl-config.in b/gsl-config.in
+old mode 100755
+new mode 100644
+index 3f3fa61..c9c4262
+--- a/gsl-config.in
++++ b/gsl-config.in
+@@ -58,11 +58,11 @@ while test $# -gt 0; do
+ ;;
+
+ --cflags)
+- echo @GSL_CFLAGS@
++ echo @GSL_CFLAGS@ @CBLAS_CFLAGS@
+ ;;
+
+ --libs)
+- : ${GSL_CBLAS_LIB=-lgslcblas}
++ : ${GSL_CBLAS_LIB=@CBLAS_LIBS@}
+ echo @GSL_LIBS@ $GSL_CBLAS_LIB @GSL_LIBM@
+ ;;
+
+diff --git a/gsl.pc.in b/gsl.pc.in
+index 5e9ef21..5a7a0f3 100644
+--- a/gsl.pc.in
++++ b/gsl.pc.in
+@@ -2,7 +2,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+ includedir=@includedir@
+-GSL_CBLAS_LIB=-lgslcblas
++GSL_CBLAS_LIB=@CBLAS_LIBS@
+
+ Name: GSL
+ Description: GNU Scientific Library
+diff --git a/interpolation/Makefile.am b/interpolation/Makefile.am
+index 1d80755..e45bd51 100644
+--- a/interpolation/Makefile.am
++++ b/interpolation/Makefile.am
+@@ -12,7 +12,7 @@ AM_CPPFLAGS = -I$(top_srcdir)
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
+diff --git a/linalg/Makefile.am b/linalg/Makefile.am
+index a6c15b0..447ebbe 100644
+--- a/linalg/Makefile.am
++++ b/linalg/Makefile.am
+@@ -13,4 +13,4 @@ TESTS = $(check_PROGRAMS)
+ check_PROGRAMS = test
+
+ test_SOURCES = test.c
+-test_LDADD = libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la
++test_LDADD = libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la
+diff --git a/multifit/Makefile.am b/multifit/Makefile.am
+index 988614e..793b485 100644
+--- a/multifit/Makefile.am
++++ b/multifit/Makefile.am
+@@ -67,8 +67,8 @@ check_PROGRAMS = test #demo
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c
+-test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la
++test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la
+
+ #demo_SOURCES = demo.c
+-#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
++#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
+
+diff --git a/multimin/Makefile.am b/multimin/Makefile.am
+index 7071359..65a488a 100644
+--- a/multimin/Makefile.am
++++ b/multimin/Makefile.am
+@@ -13,8 +13,8 @@ check_PROGRAMS = test #demo
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c test_funcs.c test_funcs.h
+-test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ #demo_SOURCES = demo.c
+-#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+diff --git a/multiroots/Makefile.am b/multiroots/Makefile.am
+index a351c3f..6178448 100644
+--- a/multiroots/Makefile.am
++++ b/multiroots/Makefile.am
+@@ -15,5 +15,5 @@ check_PROGRAMS = test
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c test_funcs.c test_funcs.h
+-test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+diff --git a/ode-initval/Makefile.am b/ode-initval/Makefile.am
+index 9c774b5..346c381 100644
+--- a/ode-initval/Makefile.am
++++ b/ode-initval/Makefile.am
+@@ -12,7 +12,7 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
+diff --git a/poly/Makefile.am b/poly/Makefile.am
+index f1dae5d..e0f8e83 100644
+--- a/poly/Makefile.am
++++ b/poly/Makefile.am
+@@ -10,7 +10,7 @@ noinst_HEADERS = balance.c companion.c qr.c
+
+ TESTS = $(check_PROGRAMS)
+
+-check_PROGRAMS = test
++#check_PROGRAMS = test
+
+ test_SOURCES = test.c
+ test_LDADD = libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../sort/libgslsort.la
+diff --git a/specfunc/Makefile.am b/specfunc/Makefile.am
+index eba9ab2..772cc7e 100644
+--- a/specfunc/Makefile.am
++++ b/specfunc/Makefile.am
+@@ -12,7 +12,7 @@ TESTS = $(check_PROGRAMS)
+
+ check_PROGRAMS = test
+
+-test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test_sf.c test_sf.h test_airy.c test_bessel.c test_coulomb.c test_dilog.c test_gamma.c test_hyperg.c test_legendre.c test_mathieu.c
+
+diff --git a/wavelet/Makefile.am b/wavelet/Makefile.am
+index 9da20d8..8cdbd77 100644
+--- a/wavelet/Makefile.am
++++ b/wavelet/Makefile.am
+@@ -10,7 +10,7 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslwavelet.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslwavelet.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py
index 3ad7b11971..fb81843c64 100644
--- a/var/spack/repos/builtin/packages/gsl/package.py
+++ b/var/spack/repos/builtin/packages/gsl/package.py
@@ -24,3 +24,31 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage):
version('2.1', sha256='59ad06837397617f698975c494fe7b2b698739a59e2fcf830b776428938a0c66')
version('2.0', sha256='e361f0b19199b5e6c21922e9f16adf7eca8dd860842802424906d0f83485ca2d')
version('1.16', sha256='73bc2f51b90d2a780e6d266d43e487b3dbd78945dd0b04b14ca5980fe28d2f53')
+
+ variant('external-cblas', default=False, description='Build against external blas')
+
+ # from https://dev.gentoo.org/~mgorny/dist/gsl-2.3-cblas.patch.bz2
+ patch('gsl-2.3-cblas.patch', when="+external-cblas")
+
+ conflicts('+external-cblas', when="@:2.2.9999")
+ depends_on('m4', type='build', when='+external-cblas')
+ depends_on('autoconf', type='build', when='+external-cblas')
+ depends_on('automake', type='build', when='+external-cblas')
+ depends_on('libtool', type='build', when='+external-cblas')
+ depends_on('blas', when='+external-cblas')
+
+ @property
+ def force_autoreconf(self):
+ # The external cblas patch touches configure
+ return self.spec.satisfies('+external-cblas')
+
+ def configure_args(self):
+ configure_args = []
+ if self.spec.satisfies('+external-cblas'):
+ configure_args.append('--with-external-cblas')
+ configure_args.append('CBLAS_CFLAGS=%s'
+ % self.spec['blas'].headers.include_flags)
+ configure_args.append('CBLAS_LIBS=%s'
+ % self.spec['blas'].libs.ld_flags)
+
+ return configure_args
diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py
new file mode 100644
index 0000000000..f47c1bf635
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gunrock/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Gunrock(CMakePackage, CudaPackage):
+ """High-Performance Graph Primitives on GPUs"""
+
+ homepage = "https://gunrock.github.io/docs/"
+ git = "https://github.com/gunrock/gunrock.git"
+
+ version('master', submodules=True)
+ version('1.1', submodules=True, tag='v1.1')
+ version('1.0', submodules=True, tag='v1.0')
+ version('0.5.1', submodules=True, tag='v0.5.1')
+ version('0.5', submodules=True, tag='v0.5')
+ version('0.4', submodules=True, tag='v0.4')
+ version('0.3.1', submodules=True, tag='v0.3.1')
+ version('0.3', submodules=True, tag='v0.3')
+ version('0.2', submodules=True, tag='v0.2')
+ version('0.1', submodules=True, tag='v0.1')
+
+ depends_on('cuda')
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ install_tree('bin', prefix.bin)
+ install_tree('lib', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/hcol/package.py b/var/spack/repos/builtin/packages/hcol/package.py
new file mode 100644
index 0000000000..70278eba93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hcol/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Hcol(Package):
+ """This is the SPIRAL package for the Hybrid Control Operator Language
+ (HCOL)."""
+
+ homepage = "https://https://spiral.net"
+ url = "https://github.com/spiral-software/spiral-package-hcol/archive/1.0.0.zip"
+
+ maintainers = ['spiralgen']
+ extends('spiral')
+
+ version('1.0.0', sha256='9a95574e2b061d03d264c32dbf733e893017d1644b6486c7a8a55a3b24783f58')
+
+ # HCOL package is an extension for Spiral. Install the files in their own
+ # prefix, in "namespaces/packages/hcol". This allows 'spack activate' to
+ # symlink hcol at the right location for spiral packages.
+ def install(self, spec, prefix):
+ install_tree('.', prefix.namespaces.packages.hcol)
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 3c62d46f0d..e560c23f44 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -23,6 +23,8 @@ class Hdf5(AutotoolsPackage):
version('develop', branch='develop')
+ version('1.12.0', sha256='a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a')
+
version('1.10.6', sha256='5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa')
version('1.10.5', sha256='6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8')
version('1.10.4', sha256='8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2')
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
index 2828a179ff..d208e7ecde 100644
--- a/var/spack/repos/builtin/packages/hepmc/package.py
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -28,24 +28,46 @@ class Hepmc(CMakePackage):
variant('python', default=False, description='Enable Python bindings')
variant('rootio', default=False, description='Enable ROOT I/O')
+ variant('interfaces', default=False, description='Install interfaces for some Monte-Carlo Event Gens')
depends_on('cmake@2.8.9:', type='build')
- # FIXME: Officially supports Python3, but the build system doesn't find it
- depends_on('python@:2.99.99', when='+python')
+ depends_on('python', when='+python')
depends_on('root', when='+rootio')
- conflicts('+python', when='@:3.1.99')
- conflicts('+rootio', when='@:2.99.99')
+ conflicts('+python', when='@:3.1')
+ conflicts('+rootio', when='@:2')
+ conflicts('+interfaces', when='@:2')
+ @when('@:2')
+ def cmake_args(self):
+ return ['-Dmomentum:STRING=GEV', '-Dlength:STRING=MM']
+
+ @when('@3:')
def cmake_args(self):
spec = self.spec
- return [
+ args = [
'-Dmomentum:STRING=GEV',
'-Dlength:STRING=MM',
'-DHEPMC3_ENABLE_PYTHON={0}'.format(spec.satisfies('+python')),
- '-DHEPMC3_ENABLE_ROOTIO={0}'.format(spec.satisfies('+rootio'))
+ '-DHEPMC3_ENABLE_ROOTIO={0}'.format(spec.satisfies('+rootio')),
+ '-DHEPMC3_INSTALL_INTERFACES={0}'.format(
+ spec.satisfies('+interfaces')),
]
+ if self.spec.satisfies('+python'):
+ py_ver = spec['python'].version.up_to(2)
+ py_sitepkg = join_path(self.prefix, site_packages_dir)
+ args.extend([
+ '-DHEPMC3_PYTHON_VERSIONS={0}'.format(py_ver),
+ '-DHEPMC3_Python_SITEARCH{0}={1}'.format(
+ py_ver.joined, py_sitepkg)
+ ])
+
+ if self.spec.satisfies('+rootio'):
+ args.append('-DROOT_DIR={0}'.format(self.spec['root'].prefix))
+
+ return args
+
def url_for_version(self, version):
if version > Version("3.0.0"):
url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC3-{0}.tar.gz"
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index fef2ec7b3e..d64ce78fad 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -19,6 +19,7 @@ class Hpctoolkit(AutotoolsPackage):
maintainers = ['mwkrentel']
version('master', branch='master')
+ version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769')
version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240')
version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c')
version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc')
@@ -52,27 +53,28 @@ class Hpctoolkit(AutotoolsPackage):
'for the compute nodes.')
variant('cuda', default=False,
- description='Support CUDA on NVIDIA GPUs (master branch).')
+ description='Support CUDA on NVIDIA GPUs (2020.03.01 or later).')
boost_libs = (
'+atomic +chrono +date_time +filesystem +system +thread +timer'
' +graph +regex +shared +multithreaded visibility=global'
)
- depends_on('binutils+libiberty~nls', type='link')
+ depends_on('binutils+libiberty~nls', type='link', when='@master')
+ depends_on('binutils@:2.33.1+libiberty~nls', type='link', when='@:2020.03.99')
depends_on('boost' + boost_libs)
- depends_on('bzip2', type='link')
- depends_on('dyninst')
- depends_on('elfutils~nls', type='link')
- depends_on('intel-tbb')
+ depends_on('bzip2+shared', type='link')
+ depends_on('dyninst@9.3.2:')
+ depends_on('elfutils+bzip2+xz~nls', type='link')
+ depends_on('intel-tbb+shared')
depends_on('libdwarf')
- depends_on('libmonitor+hpctoolkit')
- depends_on('libmonitor+bgq', when='+bgq')
- depends_on('libunwind@1.4:')
+ depends_on('libmonitor+hpctoolkit+bgq', when='+bgq')
+ depends_on('libmonitor+hpctoolkit~bgq', when='~bgq')
+ depends_on('libunwind@1.4: +xz')
depends_on('mbedtls+pic')
depends_on('xerces-c transcoder=iconv')
depends_on('xz', type='link')
- depends_on('zlib')
+ depends_on('zlib+shared')
depends_on('cuda', when='+cuda')
depends_on('intel-xed', when='target=x86_64:')
@@ -83,11 +85,14 @@ class Hpctoolkit(AutotoolsPackage):
conflicts('%gcc@:4.7.99', when='^dyninst@10.0.0:',
msg='hpctoolkit requires gnu gcc 4.8.x or later')
- conflicts('%gcc@:4.99.99', when='@master',
- msg='the master branch requires gnu gcc 5.x or later')
+ conflicts('%gcc@:4.99.99', when='@2020.03.01:',
+ msg='hpctoolkit requires gnu gcc 5.x or later')
conflicts('+cuda', when='@2018.0.0:2019.99.99',
- msg='cuda is only available on the master branch')
+ msg='cuda requires 2020.03.01 or later')
+
+ conflicts('+bgq', when='@2020.03.01:',
+ msg='blue gene requires 2019.12.28 or earlier')
flag_handler = AutotoolsPackage.build_system_flags
diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py
index 21cfa67daa..97688963cf 100644
--- a/var/spack/repos/builtin/packages/hpcviewer/package.py
+++ b/var/spack/repos/builtin/packages/hpcviewer/package.py
@@ -37,6 +37,9 @@ class Hpcviewer(Package):
maintainers = ['mwkrentel']
viewer_sha = {
+ ('2020.02', 'x86_64'): 'af1f514547a9325aee30eb891b31e38c7ea3f33d2d1978b44f83e7daa3d5de6b',
+ ('2020.02', 'ppc64'): '7bb4926202db663aedd5a6830778c5f73f6b08a65d56861824ea95ba83b1f59c',
+ ('2020.02', 'ppc64le'): 'cfcebb7ba301affd6d21d2afd43c540e6dd4c5bc39b0d20e8bd1e4fed6aa3481',
('2020.01', 'x86_64'): '3cd5a2a382cec1d64c8bd0abaf2b1461dcd4092a4b4074ddbdc1b96d2a0b4220',
('2020.01', 'ppc64'): '814394a5f410033cc1019526c268ef98b5b381e311fcd39ae8b2bde6c6ff017c',
('2020.01', 'ppc64le'): 'e830e956b8088c415fb25ef44a8aca16ebcb27bcd34536866612343217e3f9e4',
@@ -61,6 +64,9 @@ class Hpcviewer(Package):
}
trace_sha = {
+ ('2020.02', 'x86_64'): 'b7b634e91108aa50a2e8647ac6bac87df775ae38aff078545efaa84735e0a666',
+ ('2020.02', 'ppc64'): 'a3e845901689e1b32bc6ab2826c6ac6ed352df4839090fa530b20f747e6e0957',
+ ('2020.02', 'ppc64le'): 'a64a283f61e706d988952a7cede9fac0328b09d2d0b64e4c08acc54e38781c98',
('2020.01', 'x86_64'): '9459177a2445e85d648384e2ccee20524592e91a74d615262f32d0876831cd7c',
('2020.01', 'ppc64'): '02366a2ba30b9b2450d50cf44933288f04fae5bf9868eef7bb2ae1b49d4f454e',
('2020.01', 'ppc64le'): '39970e84e397ed96bc994e7b8db3b7b3aab4e3155fa7ca8e68b9274bb58115f0',
diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py
index 9d24fc0e88..a8f028b27b 100644
--- a/var/spack/repos/builtin/packages/hpx/package.py
+++ b/var/spack/repos/builtin/packages/hpx/package.py
@@ -15,6 +15,8 @@ class Hpx(CMakePackage, CudaPackage):
maintainers = ['msimberg', 'albestro']
version('master', git='https://github.com/STEllAR-GROUP/hpx.git', branch='master')
+ version('stable', git='https://github.com/STEllAR-GROUP/hpx.git', tag='stable')
+ version('1.4.1', sha256='965dabe44d17480e326d92da4eec56722d98b33943c53d2b0f8f4655cb208023')
version('1.4.0', sha256='241a1c47fafba751848fac12446e7bf4ad3d342d5eb2fa1ef94dd904acc329ed')
version('1.3.0', sha256='cd34da674064c4cc4a331402edbd65c5a1f8058fb46003314ca18fa08423c5ad')
version('1.2.1', sha256='8cba9b48e919035176d3b7bbfc2c110df6f07803256626f1dad8d9dde16ab77a')
@@ -67,6 +69,7 @@ class Hpx(CMakePackage, CudaPackage):
depends_on('boost cxxstd=11', when='cxxstd=11')
depends_on('boost cxxstd=14', when='cxxstd=14')
depends_on('boost cxxstd=17', when='cxxstd=17')
+ depends_on('boost cxxstd=17', when='@stable')
# Malloc
depends_on('gperftools', when='malloc=tcmalloc')
@@ -156,7 +159,8 @@ class Hpx(CMakePackage, CudaPackage):
'-DBOOST_ROOT={0}'.format(spec['boost'].prefix),
'-DHWLOC_ROOT={0}'.format(spec['hwloc'].prefix),
'-DHPX_WITH_BOOST_ALL_DYNAMIC_LINK=ON',
- '-DBUILD_SHARED_LIBS=ON'
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DHPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE=OFF'
])
return args
diff --git a/var/spack/repos/builtin/packages/htop/package.py b/var/spack/repos/builtin/packages/htop/package.py
index 9de69ae0bf..e0d9960467 100644
--- a/var/spack/repos/builtin/packages/htop/package.py
+++ b/var/spack/repos/builtin/packages/htop/package.py
@@ -18,6 +18,7 @@ class Htop(AutotoolsPackage):
version('2.0.2', sha256='179be9dccb80cee0c5e1a1f58c8f72ce7b2328ede30fb71dcdf336539be2f487')
depends_on('ncurses')
+ depends_on('python+pythoncmd', type='build')
def configure_args(self):
return ['--enable-shared']
diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py
index 625c336fff..d0aef797e7 100644
--- a/var/spack/repos/builtin/packages/hydrogen/package.py
+++ b/var/spack/repos/builtin/packages/hydrogen/package.py
@@ -18,7 +18,7 @@ class Hydrogen(CMakePackage):
maintainers = ['bvanessen']
version('develop', branch='hydrogen')
- version('1.3.3', sha256='140112066b84d33ca4b75c8e520fb15748fa648c4d2b934c1eb5510173ede5f5')
+ version('1.3.3', sha256='a51a1cfd40ac74d10923dfce35c2c04a3082477683f6b35e7b558ea9f4bb6d51')
version('1.3.2', sha256='50bc5e87955f8130003d04dfd9dcad63107e92b82704f8107baf95b0ccf98ed6')
version('1.3.1', sha256='a8b8521458e9e747f2b24af87c4c2749a06e500019c383e0cefb33e5df6aaa1d')
version('1.3.0', sha256='0f3006aa1d8235ecdd621e7344c99f56651c6836c2e1bc0cf006331b70126b36')
diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py
index 72ed301bd8..6dbb1971f5 100644
--- a/var/spack/repos/builtin/packages/intel-tbb/package.py
+++ b/var/spack/repos/builtin/packages/intel-tbb/package.py
@@ -21,7 +21,7 @@ class IntelTbb(Package):
# Note: when adding new versions, please check and update the
# patches, filters and url_for_version() below as needed.
- version('2020.1', sha256='48d51c63b16787af54e1ee4aaf30042087f20564b4eecf9a032d5568bc2f0bf8')
+ version('2020.1', sha256='7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971')
version('2020.0', sha256='8eed2377ac62e6ac10af5a8303ce861e4525ffe491a061b48e8fe094fc741ce9')
version('2019.9', sha256='15652f5328cf00c576f065e5cd3eaf3317422fe82afb67a9bcec0dc065bd2abe')
version('2019.8', sha256='7b1fd8caea14be72ae4175896510bf99c809cd7031306a1917565e6de7382fba')
diff --git a/var/spack/repos/builtin/packages/intel-xed/package.py b/var/spack/repos/builtin/packages/intel-xed/package.py
index ac9a7a4b0c..31b157531e 100644
--- a/var/spack/repos/builtin/packages/intel-xed/package.py
+++ b/var/spack/repos/builtin/packages/intel-xed/package.py
@@ -42,7 +42,8 @@ class IntelXed(Package):
variant('debug', default=False, description='Enable debug symbols')
- depends_on('python@2.7:', type='build')
+ # python module 'platform.linux_distribution' was removed in python 3.8
+ depends_on('python@2.7:3.7', type='build')
conflicts('target=ppc64:', msg='intel-xed only runs on x86')
conflicts('target=ppc64le:', msg='intel-xed only runs on x86')
diff --git a/var/spack/repos/builtin/packages/jblob/package.py b/var/spack/repos/builtin/packages/jblob/package.py
new file mode 100644
index 0000000000..1aa1738230
--- /dev/null
+++ b/var/spack/repos/builtin/packages/jblob/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Jblob(Package):
+ """
+ The German Climate Computing Center
+ (DKRZ: Deutsches Klimarechenzentrum GmbH)
+ provides a Long Term Archiving Service for large research
+ data sets which are relevant for climate or Earth system research.
+ """
+
+ homepage = "https://cera-www.dkrz.de/WDCC/ui/cerasearch"
+ url = "https://cera-www.dkrz.de/jblob/jblob-3.0.zip"
+
+ maintainers = ['ajkotobi']
+
+ version('3.0', sha256='576b5956358386a8832c6d1d13c410705e54888354a10cfd4f094513458067e4')
+
+ depends_on('java@8:', type='run')
+
+ def setup_run_environment(self, env):
+ env.set('JAVA_HOME', self.spec['java'].prefix)
+
+ def install(self, spec, prefix):
+ filter_file('/opt/jblob-' + self.version, prefix, 'jblob')
+
+ mkdir(prefix.bin)
+ install('jblob', prefix.bin)
+ install_tree('lib', prefix.lib)
+ install_tree('docs', prefix.docs)
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py
index 431943ac86..025d12be65 100644
--- a/var/spack/repos/builtin/packages/jdk/package.py
+++ b/var/spack/repos/builtin/packages/jdk/package.py
@@ -24,11 +24,7 @@ class Jdk(Package):
# automate this process, we need to utilize these additional curl
# command-line options. See:
# http://stackoverflow.com/questions/10268583/how-to-automate-download-and-installation-of-java-jdk-on-linux
- curl_options = [
- '-j', # junk cookies
- '-b', # specify required License Agreement cookie
- 'oraclelicense=accept-securebackup-cookie'
- ]
+ fetch_options = {'cookie': 'oraclelicense=accept-securebackup-cookie'}
# To add the latest version, go to the homepage listed above,
# click "JDK Download", click "Accept License Agreement", right-click the
@@ -36,29 +32,29 @@ class Jdk(Package):
# found in a link above. The build number can be deciphered from the URL.
# Alternatively, run `bin/java -version` after extracting. Replace '+'
# symbol in version with '_', otherwise it will be interpreted as a variant
- version('12.0.2_10', sha256='2dde6fda89a4ec6e6560ed464e917861c9e40bf576e7a64856dafc55abaaff51', curl_options=curl_options,
+ version('12.0.2_10', sha256='2dde6fda89a4ec6e6560ed464e917861c9e40bf576e7a64856dafc55abaaff51',
url='https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz')
- version('12.0.1_12', sha256='9fd6dcdaf2cfca7da59e39b009a0f5bcd53bec2fb16105f7ca8d689cdab68d75', curl_options=curl_options,
+ version('12.0.1_12', sha256='9fd6dcdaf2cfca7da59e39b009a0f5bcd53bec2fb16105f7ca8d689cdab68d75',
url='https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.tar.gz')
- version('11.0.2_9', sha256='7b4fd8ffcf53e9ff699d964a80e4abf9706b5bdb5644a765c2b96f99e3a2cdc8', curl_options=curl_options,
+ version('11.0.2_9', sha256='7b4fd8ffcf53e9ff699d964a80e4abf9706b5bdb5644a765c2b96f99e3a2cdc8',
url='https://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.tar.gz')
- version('11.0.1_13', sha256='e7fd856bacad04b6dbf3606094b6a81fa9930d6dbb044bbd787be7ea93abc885', curl_options=curl_options,
+ version('11.0.1_13', sha256='e7fd856bacad04b6dbf3606094b6a81fa9930d6dbb044bbd787be7ea93abc885',
url='https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz')
- version('10.0.2_13', sha256='6633c20d53c50c20835364d0f3e172e0cbbce78fff81867488f22a6298fa372b', curl_options=curl_options,
+ version('10.0.2_13', sha256='6633c20d53c50c20835364d0f3e172e0cbbce78fff81867488f22a6298fa372b',
url='https://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz')
- version('10.0.1_10', sha256='ae8ed645e6af38432a56a847597ac61d4283b7536688dbab44ab536199d1e5a4', curl_options=curl_options,
+ version('10.0.1_10', sha256='ae8ed645e6af38432a56a847597ac61d4283b7536688dbab44ab536199d1e5a4',
url='https://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz')
- version('1.8.0_241-b07', sha256='419d32677855f676076a25aed58e79432969142bbd778ff8eb57cb618c69e8cb', curl_options=curl_options,
+ version('1.8.0_241-b07', sha256='419d32677855f676076a25aed58e79432969142bbd778ff8eb57cb618c69e8cb',
url='https://download.oracle.com/otn-pub/java/jdk/8u241-b07/1f5b5a70bf22433b84d0e960903adac8/jdk-8u241-linux-x64.tar.gz')
- version('1.8.0_231-b11', sha256='a011584a2c9378bf70c6903ef5fbf101b30b08937441dc2ec67932fb3620b2cf', curl_options=curl_options,
+ version('1.8.0_231-b11', sha256='a011584a2c9378bf70c6903ef5fbf101b30b08937441dc2ec67932fb3620b2cf',
url='https://download.oracle.com/otn-pub/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz')
- version('1.8.0_212-b10', sha256='3160c50aa8d8e081c8c7fe0f859ea452922eca5d2ae8f8ef22011ae87e6fedfb', curl_options=curl_options,
+ version('1.8.0_212-b10', sha256='3160c50aa8d8e081c8c7fe0f859ea452922eca5d2ae8f8ef22011ae87e6fedfb',
url='https://download.oracle.com/otn-pub/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/jdk-8u212-linux-x64.tar.gz')
- version('1.8.0_202-b08', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0', curl_options=curl_options,
+ version('1.8.0_202-b08', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0',
url='https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz')
- version('1.8.0_141-b15', sha256='041d5218fbea6cd7e81c8c15e51d0d32911573af2ed69e066787a8dc8a39ba4f', curl_options=curl_options,
+ version('1.8.0_141-b15', sha256='041d5218fbea6cd7e81c8c15e51d0d32911573af2ed69e066787a8dc8a39ba4f',
url='https://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz')
- version('1.8.0_131-b11', sha256='62b215bdfb48bace523723cdbb2157c665e6a25429c73828a32f00e587301236', curl_options=curl_options,
+ version('1.8.0_131-b11', sha256='62b215bdfb48bace523723cdbb2157c665e6a25429c73828a32f00e587301236',
url='https://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz')
provides('java@12', when='@12.0:12.999')
diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py
index 337b50f188..d33bd970a2 100644
--- a/var/spack/repos/builtin/packages/kallisto/package.py
+++ b/var/spack/repos/builtin/packages/kallisto/package.py
@@ -13,8 +13,37 @@ class Kallisto(CMakePackage):
homepage = "http://pachterlab.github.io/kallisto"
url = "https://github.com/pachterlab/kallisto/archive/v0.43.1.tar.gz"
+ version('0.46.2', sha256='c447ca8ddc40fcbd7d877d7c868bc8b72807aa8823a8a8d659e19bdd515baaf2')
version('0.43.1', sha256='7baef1b3b67bcf81dc7c604db2ef30f5520b48d532bf28ec26331cb60ce69400')
depends_on('zlib')
depends_on('hdf5')
depends_on('mpich')
+
+ # htslib isn't built in time to be used....
+ parallel = False
+
+ # v0.44.0 vendored a copy of htslib and uses auto* to build
+ # its configure script.
+ depends_on('autoconf', type='build', when='@0.44.0:')
+ depends_on('automake', type='build', when='@0.44.0:')
+ depends_on('libtool', type='build', when='@0.44.0:')
+ depends_on('m4', type='build', when='@0.44.0:')
+
+ # Including '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' in the cmake args
+ # causes bits of cmake's output to end up in the autoconf-generated
+ # configure script.
+ # See https://github.com/spack/spack/issues/15274 and
+ # https://github.com/pachterlab/kallisto/issues/253
+ @property
+ def std_cmake_args(self):
+ """Call the original std_cmake_args and then filter the verbose
+ setting.
+ """
+ a = super(Kallisto, self).std_cmake_args
+ if (self.spec.version >= Version('0.44.0')):
+ args = [i for i in a if i != '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON']
+ else:
+ args = a
+
+ return args
diff --git a/var/spack/repos/builtin/packages/kealib/package.py b/var/spack/repos/builtin/packages/kealib/package.py
index e164dac4b4..3e050a213c 100644
--- a/var/spack/repos/builtin/packages/kealib/package.py
+++ b/var/spack/repos/builtin/packages/kealib/package.py
@@ -23,12 +23,13 @@ class Kealib(CMakePackage):
Development work on this project has been funded by Landcare Research.
"""
homepage = "http://www.kealib.org/"
- url = "https://bitbucket.org/chchrsc/kealib/downloads/kealib-1.4.11.tar.gz"
- hg = "https://bitbucket.org/chchrsc/kealib"
+ url = "https://github.com/ubarsc/kealib/releases/download/kealib-1.4.12/kealib-1.4.12.tar.gz"
+ git = "https://github.com/ubarsc/kealib"
maintainers = ['gillins']
- version('develop', hg=hg)
+ version('develop', git=git)
+ version('1.4.12', sha256='0b100e36b3e25e57487aa197d7be47f22e1b30afb16a57fdaa5f877696ec321e')
version('1.4.11', sha256='3d64cdec560c7a338ccb38e3a456db4e3b176ac62f945daa6e332e60fe4eca90')
version('1.4.10', sha256='b1bd2d6834d2fe09ba456fce77f7a9452b406dbe302f7ef1aabe924e45e6bb5e')
version('1.4.9', sha256='1c80489f17114a229097c2e8c61d5e4c82ea63ae631c81a817fef95cfd527174')
diff --git a/var/spack/repos/builtin/packages/keyutils/package.py b/var/spack/repos/builtin/packages/keyutils/package.py
new file mode 100644
index 0000000000..049dbb1c22
--- /dev/null
+++ b/var/spack/repos/builtin/packages/keyutils/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import glob
+
+
+class Keyutils(MakefilePackage):
+ """These tools are used to control the key management system built
+ into the Linux kernel."""
+
+ homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/"
+ url = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/keyutils-1.6.1.tar.gz"
+
+ version('1.6.1', sha256='3c71dcfc6900d07b02f4e061d8fb218a4ae6519c1d283d6a57b8e27718e2f557')
+ version('1.6', sha256='c6a27b4e3d0122d921f3dcea4b1f02a8616ca844535960d6af76ef67d015b5cf')
+ version('1.5.10', sha256='e1fdbde234c786b65609a4cf080a2c5fbdb57f049249c139160c85fc3dfa7da9')
+ version('1.5.9', sha256='2dc0bdb099ab8331e02e5dbbce320359bef76eda0a4ddbd2ba1d1b9d3a8cdff8')
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
+ mkdirp(prefix.include)
+ headers = glob.glob(join_path(prefix, '*.h'))
+ for h in headers:
+ install(h, prefix.include)
diff --git a/var/spack/repos/builtin/packages/kraken2/package.py b/var/spack/repos/builtin/packages/kraken2/package.py
new file mode 100644
index 0000000000..e970752ad2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kraken2/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import glob
+import os
+
+
+class Kraken2(Package):
+ """Kraken2 is a system for assigning taxonomic labels to short DNA
+ sequences, usually obtained through metagenomic studies."""
+
+ homepage = "https://ccb.jhu.edu/software/kraken2/"
+ url = "https://github.com/DerrickWood/kraken2/archive/v2.0.8-beta.tar.gz"
+
+ maintainers = ['rberg2']
+
+ version('2.0.8-beta', sha256='f2a91fc57a40b3e87df8ac2ea7c0ff1060cc9295c95de417ee53249ee3f7ad8e')
+ version('2.0.7-beta', sha256='baa160f5aef73327e1a79e6d1c54b64b2fcdaee0be31b456f7bc411d1897a744')
+ version('2.0.6-beta', sha256='d77db6251179c4d7e16bc9b5e5e9043d25acf81f3e32ad6eadfba829a31e1d09')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('rsync', type=('run'))
+ depends_on('wget', type=('run'))
+
+ def install(self, spec, prefix):
+ installer = Executable('./install_kraken2.sh')
+ installer(self.stage.source_path)
+ mkdirp(prefix.bin)
+ files = glob.iglob('*')
+ for file in files:
+ if os.path.isfile(file):
+ install(file, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/kvtree/package.py b/var/spack/repos/builtin/packages/kvtree/package.py
index be265f5ecd..40e57ed0ee 100644
--- a/var/spack/repos/builtin/packages/kvtree/package.py
+++ b/var/spack/repos/builtin/packages/kvtree/package.py
@@ -10,8 +10,8 @@ class Kvtree(CMakePackage):
"""KVTree provides a fully extensible C datastructure modeled after perl
hashes."""
- homepage = "https://github.com/ECP-VeloC/KVTree"
- url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.2.zip"
+ homepage = "https://github.com/ecp-veloc/KVTree"
+ url = "https://github.com/ecp-veloc/KVTree/archive/v1.0.2.zip"
git = "https://github.com/ecp-veloc/kvtree.git"
tags = ['ecp']
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index 72a1a9246f..9a6ef2e2b4 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -20,7 +20,16 @@ class Lammps(CMakePackage, CudaPackage):
tags = ['ecp', 'ecp-apps']
- version('develop', branch='master')
+ version('master', branch='master')
+ version('20200303', sha256='9aa56dfb8673a06e6c88588505ec1dfc01dd94f9d60e719ed0c605e48cc06c58')
+ version('20200227', sha256='1aabcf38bc72285797c710b648e906151a912c36b634a9c88ac383aacf85516e')
+ version('20200218', sha256='73bcf146660804ced954f6a0a8dce937482677778d46018ca5a688127bf97211')
+ version('20200204', sha256='3bf3de546ede34ffcd89f1fca5fd66aa78c662e7c8a76e30ce593e44a00d23ce')
+ version('20200124', sha256='443829560d760690e1ae21ad54922f56f34f640a81e817f5cc65d2a4af3a6a5d')
+ version('20200109', sha256='f2fd24f6c10837801f490913d73f672ec7c6becda08465d7e834a2bfbe3d7cd6')
+ version('20191120', sha256='fd146bf517a6c2fb8a69ecb3749dc352eef94414739cd7855c668c690af85d27')
+ version('20191030', sha256='5279567f731386ffdb87800b448903a63de2591064e13b4d5216acae25b7e541')
+ version('20190919', sha256='0f693203afe86bc70c084c55f29330bdeea3e3ad6791f81c727f7a34a7f6caf3')
version('20190807', sha256='895d71914057e070fdf0ae5ccf9d6552b932355056690bdb8e86d96549218cc0')
version('20190605', sha256='c7b35090aef7b114d2b47a7298c1e8237dd811da87995c997bf7639cca743152')
version('20181212', sha256='ccc5d2c21c4b62ce4afe7b3a0fe2f37b83e5a5e43819b7c2e2e255cce2ce0f24')
diff --git a/var/spack/repos/builtin/packages/lastz/package.py b/var/spack/repos/builtin/packages/lastz/package.py
index cbe4ee4e14..4b0431b2e9 100644
--- a/var/spack/repos/builtin/packages/lastz/package.py
+++ b/var/spack/repos/builtin/packages/lastz/package.py
@@ -12,7 +12,15 @@ class Lastz(MakefilePackage):
homepage = "https://lastz.github.io/lastz"
url = "https://github.com/lastz/lastz/archive/1.04.00.tar.gz"
+ version('1.04.03', sha256='c58ed8e37c4b0e82492b3a2b3e12447a3c40286fb8358906d19f10b0a713e9f4')
version('1.04.00', sha256='a4c2c7a77430387e96dbc9f5bdc75874334c672be90f5720956c0f211abf9f5a')
+ # Ref: https://github.com/lastz/lastz/commit/20aa14f483265b4eac97f25aca666c708b9655e4
+ patch('sequences.c.patch', when='@:1.04.03')
+
+ # set compile commands for each compiler
+ def edit(self, spec, prefix):
+ filter_file('gcc', spack_cc, 'src/Makefile')
+
def install(self, spec, prefix):
make('install', 'LASTZ_INSTALL={0}'.format(prefix.bin))
diff --git a/var/spack/repos/builtin/packages/lastz/sequences.c.patch b/var/spack/repos/builtin/packages/lastz/sequences.c.patch
new file mode 100644
index 0000000000..b5c34108aa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lastz/sequences.c.patch
@@ -0,0 +1,244 @@
+--- spack-src/src/sequences.c.org 2020-03-05 13:34:15.764971874 +0900
++++ spack-src/src/sequences.c 2020-03-05 13:49:45.315370741 +0900
+@@ -2180,7 +2180,7 @@
+
+ ch = skip_seq_whitespace (_seq);
+
+- if (ch != '>') seq_ungetc (ch, _seq);
++ if (ch != '>') seq_ungetc ((char)ch, _seq);
+ else parse_fasta_header (_seq);
+
+ debugFastaFile_2;
+@@ -2298,7 +2298,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ }
+@@ -2346,7 +2346,7 @@
+ while (ch != EOF)
+ {
+ if ((prevCh == '\n') && (ch == '>')) // (start of next sequence)
+- { seq_ungetc (ch, _seq); break; }
++ { seq_ungetc ((char)ch, _seq); break; }
+
+ if ((_seq->separatorCh == 0) || (ch != _seq->separatorCh))
+ {
+@@ -2445,7 +2445,7 @@
+ // while (ch != EOF)
+ // {
+ // if ((prevCh == '\n') && (ch == '>')) // (start of next sequence)
+-// { seq_ungetc (ch, _seq); break; }
++// { seq_ungetc ((char)ch, _seq); break; }
+ //
+ // switch (char_to_fasta_type[(u8)ch])
+ // {
+@@ -2627,7 +2627,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ // copy from trueHeader into the header (unless the header is locked), then
+@@ -2762,7 +2762,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ _seq->v[_seq->len] = 0; // (set the terminating zero)
+@@ -2834,7 +2834,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ //////////
+@@ -2877,7 +2877,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ if (qualCount < nucCount) goto not_enough_qualities;
+@@ -3061,7 +3061,7 @@
+ ch = seq_getc (_seq);
+ }
+
+- if (ch != '>') seq_ungetc (ch, _seq);
++ if (ch != '>') seq_ungetc ((char)ch, _seq);
+ else parse_csfasta_header (_seq);
+
+ //////////
+@@ -3166,7 +3166,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ }
+@@ -3223,7 +3223,7 @@
+ {
+ if ((prevCh == '\n')
+ && ((ch == '#') || (ch == '>'))) // (start of next sequence)
+- { seq_ungetc (ch, _seq); break; }
++ { seq_ungetc ((char)ch, _seq); break; }
+
+ chType = char_to_csfasta_type[(u8)ch];
+ switch (chType)
+@@ -3324,7 +3324,7 @@
+ // {
+ // if ((prevCh == '\n')
+ // && ((ch == '#') || (ch == '>'))) // (start of next sequence)
+-// { seq_ungetc (ch, _seq); break; }
++// { seq_ungetc ((char)ch, _seq); break; }
+ //
+ // switch (char_to_csfasta_type[(u8)ch])
+ // {
+@@ -4701,10 +4701,10 @@
+ else if (magic == oldQdnaMagicBig) { oldFormat = bigEndian = true; }
+ else
+ {
+- seq_ungetc ((magic >> 24) & 0xFF, _seq);
+- seq_ungetc ((magic >> 16) & 0xFF, _seq);
+- seq_ungetc ((magic >> 8) & 0xFF, _seq);
+- seq_ungetc ( magic & 0xFF, _seq);
++ seq_ungetc ((char) ((magic >> 24) & 0xFF), _seq);
++ seq_ungetc ((char) ((magic >> 16) & 0xFF), _seq);
++ seq_ungetc ((char) ((magic >> 8) & 0xFF), _seq);
++ seq_ungetc ((char) ( magic & 0xFF), _seq);
+ oldFormat = true;
+ }
+
+@@ -5050,7 +5050,7 @@
+ _seq->filename);
+ if (ch == EOF) return false; // we're at end of file now
+
+- seq_ungetc (ch, _seq); // save what we peeked at
++ seq_ungetc ((char)ch, _seq); // save what we peeked at
+ return true; // we have characters to process
+ }
+
+@@ -5074,7 +5074,8 @@
+ int headerLen;
+ int mustBeHeader;
+ int leadingWhite;
+- char ch, *s;
++ int ch;
++ char* s;
+ int ix;
+
+ debugNamesFile_12;
+@@ -5118,7 +5119,7 @@
+
+ ch = seq_getc (_seq);
+ if (ch == EOF) goto failure;
+- while ((ch != '\n') && (isspace (ch)))
++ while ((ch != '\n') && (isspace (ch))) // nota bene: isspace's arg type is an int
+ {
+ leadingWhite++;
+ ch = seq_getc (_seq);
+@@ -5186,7 +5187,7 @@
+
+ // unget the header
+
+- seq_ungetc (ch, _seq); // (ch terminated the header)
++ seq_ungetc ((char)ch, _seq); // (ch terminated the header)
+
+ for (ix=strlen(buffer) ; ix>0 ; )
+ seq_ungetc (buffer[--ix], _seq);
+@@ -5218,7 +5219,8 @@
+ char buffer[maxSequenceHeader+1];
+ char* header;
+ int headerLen;
+- char ch, *s;
++ int ch;
++ char* s;
+ int ix;
+ int ok;
+
+@@ -5257,7 +5259,7 @@
+ if (ch == '\r') // handle possible DOS CR-LF line ending
+ {
+ ch = seq_getc (_seq);
+- if (ch != '\n') seq_ungetc (ch, _seq);
++ if (ch != '\n') seq_ungetc ((char)ch, _seq);
+ }
+
+ // if we have a name trigger, locate the sequence's name
+@@ -5310,7 +5312,7 @@
+
+ // unget the header
+
+- seq_ungetc (ch, _seq); // (ch terminated the header)
++ seq_ungetc ((char)ch, _seq); // (ch terminated the header)
+
+ for (ix=strlen(buffer) ; ix>0 ; )
+ seq_ungetc (buffer[--ix], _seq);
+@@ -9067,10 +9069,10 @@
+
+ // put those four bytes back in the file (in reverse of the read order)
+
+- seq_ungetc (magic >> 24, _seq);
+- seq_ungetc (magic >> 16, _seq);
+- seq_ungetc (magic >> 8, _seq);
+- seq_ungetc (magic , _seq);
++ seq_ungetc ((char) (magic >> 24), _seq);
++ seq_ungetc ((char) (magic >> 16), _seq);
++ seq_ungetc ((char) (magic >> 8), _seq);
++ seq_ungetc ((char) magic , _seq);
+
+ if (type != seq_type_unknown)
+ return type;
+@@ -9080,7 +9082,7 @@
+ //////////
+
+ ch = seq_getc (_seq);
+- seq_ungetc (ch, _seq);
++ seq_ungetc ((char)ch, _seq);
+ if (ch == '@')
+ return seq_type_fastq;
+
+@@ -9095,12 +9097,12 @@
+ ch = seq_getc (_seq);
+ if (ch == '#')
+ {
+- seq_ungetc (ch, _seq);
++ seq_ungetc ((char)ch, _seq);
+ return seq_type_csfasta;
+ }
+
+ if (ch != '>')
+- seq_ungetc (ch, _seq);
++ seq_ungetc ((char)ch, _seq);
+ else
+ {
+ // read header
+@@ -9122,12 +9124,12 @@
+
+ intCh = seq_getc (_seq);
+ if (intCh == EOF) goto unknown;
+- buffer[bufferLen++] = intCh;
++ buffer[bufferLen++] = (char) intCh;
+ if (ustrchr ("ACGTacgtNn", intCh) != NULL)
+ {
+ intCh = seq_getc (_seq);
+ if (intCh == EOF) goto unknown;
+- buffer[bufferLen++] = intCh;
++ buffer[bufferLen++] = (char) intCh;
+ if (ustrchr ("ACGTacgtNn", intCh) != NULL)
+ type = seq_type_fasta;
+ else if (ustrchr ("0123", intCh) != NULL)
diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py
index 5b8b761d49..15effc6bea 100644
--- a/var/spack/repos/builtin/packages/legion/package.py
+++ b/var/spack/repos/builtin/packages/legion/package.py
@@ -27,9 +27,9 @@ class Legion(CMakePackage):
version('master', branch='master')
version('ctrl-rep', branch='control_replication')
- version('ctrl-rep-2', commit='96682fd8aae071ecd30a3ed5f481a9d84457a4b6')
- version('ctrl-rep-1', commit='a03671b21851d5f0d3f63210343cb61a630f4405')
- version('ctrl-rep-0', commit='177584e77036c9913d8a62e33b55fa784748759c')
+ version('19.12.0', sha256='ea517638de7256723bb9c119796d4d9d4ef662c52d0151ad24af5288e5a72e7d')
+ version('19.09.1', sha256='c507133fb9dce16b7fcccd7eb2933d13cce96ecf835da60a27c0f66840cabf51')
+ version('19.09.0', sha256='a01c3e3c6698cafb64b77a66341cc06d039faed4fa31b764159f021b94ce13e8')
version('19.06.0', sha256='31cd97e9264c510ab83b1f9e8e1e6bf72021a0c6ee4a028966fce08736e39fbf')
version('19.04.0', sha256='279bbc8dcdab4c75be570318989a9fc9821178143e9db9c3f62e58bf9070b5ac')
version('18.12.0', sha256='71f2c409722975c0ad92f2caffcc9eaa9260f7035e2b55b731d819eb6a94016c')
@@ -46,14 +46,15 @@ class Legion(CMakePackage):
description='Build on top of ibv conduit for InfiniBand support')
variant('shared', default=True, description='Build shared libraries')
variant('hdf5', default=True, description='Enable HDF5 support')
- variant('build_type', default='Release', values=('Debug', 'Release'),
- description='The build type to build')
+ variant('build_type', default='Release',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'),
+ description='The build type to build', multi=False)
depends_on("cmake@3.1:", type='build')
depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB'", when='~mpi')
depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +mpi", when='+mpi')
depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +ibv", when='+ibv')
- depends_on("hdf5~mpi", when='+hdf5')
+ depends_on("hdf5", when='+hdf5')
def cmake_args(self):
cmake_cxx_flags = [
@@ -69,7 +70,11 @@ class Legion(CMakePackage):
'-DBUILD_SHARED_LIBS=%s' % ('+shared' in self.spec)]
if self.spec.variants['build_type'].value == 'Debug':
- cmake_cxx_flags.append('-DDEBUG_REALM', '-DDEBUG_LEGION', '-ggdb')
+ cmake_cxx_flags.extend([
+ '-DDEBUG_REALM',
+ '-DDEBUG_LEGION',
+ '-ggdb',
+ ])
options.append('-DCMAKE_CXX_FLAGS=%s' % (" ".join(cmake_cxx_flags)))
diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py
index 030b4b0788..cddaee99a7 100644
--- a/var/spack/repos/builtin/packages/libfabric/package.py
+++ b/var/spack/repos/builtin/packages/libfabric/package.py
@@ -3,7 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import os.path
from spack import *
@@ -12,24 +11,22 @@ class Libfabric(AutotoolsPackage):
fabric communication services to applications."""
homepage = "https://libfabric.org/"
- url = "https://github.com/ofiwg/libfabric/releases/download/v1.6.1/libfabric-1.6.1.tar.gz"
+ url = "https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2"
git = "https://github.com/ofiwg/libfabric.git"
- version('develop', branch='master')
- version('1.9.0', sha256='559bfb7376c38253c936d0b104591c3394880376d676894895706c4f5f88597c',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/libfabric-1.9.0.tar.bz2')
- version('1.8.1', sha256='3c560b997f9eafd89f961dd8e8a29a81aad3e39aee888e3f3822da419047dc88',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.8.1/libfabric-1.8.1.tar.bz2')
- version('1.8.0', sha256='c4763383a96af4af52cd81b3b094227f5cf8e91662f861670965994539b7ee37',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2')
- version('1.7.1', sha256='312e62c57f79b7274f89c41823932c00b15f1cc8de9c1f8dce17cd7fdae66fa1')
- version('1.7.0', sha256='9d7059e2ef48341f967f2a20ee215bc50f9079b32aad485f654098f83040e4be')
- version('1.6.2', sha256='b1a9cf8c47189a1c918f8b5710d05cb50df6b47a1c9b2ba51d927e97503b4df0')
- version('1.6.1', sha256='ac85f18bbf09226e868d72771ecba39cfdb7915aab3aeb855c95f8be7817f8bc')
- version('1.6.0', sha256='cd7d4543cf706820e4a33003457eff97336b5160f35d0e8b001aea18b5470423')
- version('1.5.3', sha256='770e505185074b4c66a0c33ac2155670142746a71a6299c286f6d5cd220cbff8')
- version('1.5.0', sha256='f62709e70fab6abea719402da854f3c6ab60369be6b1e31e4f77554c7454da28')
- version('1.4.2', sha256='858e30d92b69ee5e47ac10a8ac0c731b491d75a6e28267a128f3d6eb43f940a1')
+ version('master', branch='master')
+ version('1.9.1', sha256='c305c6035c992523e08c7591a6a3707225ba3e72de40443eaed837a10df6771a')
+ version('1.9.0', sha256='559bfb7376c38253c936d0b104591c3394880376d676894895706c4f5f88597c')
+ version('1.8.1', sha256='3c560b997f9eafd89f961dd8e8a29a81aad3e39aee888e3f3822da419047dc88')
+ version('1.8.0', sha256='c4763383a96af4af52cd81b3b094227f5cf8e91662f861670965994539b7ee37')
+ version('1.7.1', sha256='f4e9cc48319763cff4943de96bf527b737c9f1d6ac3088b8b5c75d07bd719569')
+ version('1.7.0', sha256='b3dd9cc0fa36fe8c3b9997ba279ec831a905704816c25fe3c4c09fc7eeceaac4')
+ version('1.6.2', sha256='ec63f61f5e529964ef65fd101627d8782c0efc2b88b3d5fc7f0bfd2c1e95ab2c')
+ version('1.6.1', sha256='33215a91450e2234ebdc7c467f041b6757f76f5ba926425e89d80c27b3fd7da2')
+ version('1.6.0', sha256='b3ce7bd655052ea4da7bf01a3177d96d94e5f41b3fd6011ac43f50fcb2dc7581')
+ version('1.5.3', sha256='f62a40da06f8951db267a59a4ee7363b6ee60a7abbc55cd5db6c8b067d93fa0c')
+ version('1.5.0', sha256='88a8ad6772f11d83e5b6f7152a908ffcb237af273a74a1bd1cb4202f577f1f23')
+ version('1.4.2', sha256='5d027d7e4e34cb62508803e51d6bd2f477932ad68948996429df2bfff37ca2a5')
fabrics = ('psm',
'psm2',
@@ -76,38 +73,8 @@ class Libfabric(AutotoolsPackage):
depends_on('automake', when='@develop', type='build')
depends_on('libtool', when='@develop', type='build')
- resource(name='fabtests',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/fabtests-1.9.0.tar.bz2',
- sha256='60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e',
- placement='fabtests', when='@1.9.0')
- resource(name='fabtests',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.8.0/fabtests-1.8.0.tar.gz',
- sha256='4b9af18c9c7c8b28eaeac4e6e9148bd2ea7dc6b6f00f8e31c90a6fc536c5bb6c',
- placement='fabtests', when='@1.8.0')
- resource(name='fabtests',
- url='https://github.com/ofiwg/libfabric/releases/download/v1.7.0/fabtests-1.7.0.tar.gz',
- sha256='ebb4129dc69dc0e1f48310ce1abb96673d8ddb18166bc595312ebcb96e803de9',
- placement='fabtests', when='@1.7.0')
- resource(name='fabtests',
- url='https://github.com/ofiwg/fabtests/releases/download/v1.6.1/fabtests-1.6.1.tar.gz',
- sha256='d357466b868fdaf1560d89ffac4c4e93a679486f1b4221315644d8d3e21174bf',
- placement='fabtests', when='@1.6.1')
- resource(name='fabtests',
- url='https://github.com/ofiwg/fabtests/releases/download/v1.6.0/fabtests-1.6.0.tar.gz',
- sha256='dc3eeccccb005205017f5af60681ede15782ce202a0103450a6d56a7ff515a67',
- placement='fabtests', when='@1.6.0')
- resource(name='fabtests',
- url='https://github.com/ofiwg/fabtests/releases/download/v1.5.3/fabtests-1.5.3.tar.gz',
- sha256='3835b3bf86cd00d23df0ddba8bf317e4a195e8d5c3c2baa918b373d548f77f29',
- placement='fabtests', when='@1.5.3')
- resource(name='fabtests',
- url='https://github.com/ofiwg/fabtests/releases/download/v1.5.0/fabtests-1.5.0.tar.gz',
- sha256='1dddd446c3f1df346899f9a8636f1b4265de5b863103ae24876e9f0c1e40a69d',
- placement='fabtests', when='@1.5.0')
- resource(name='fabtests',
- url='https://github.com/ofiwg/fabtests/releases/download/v1.4.2/fabtests-1.4.2.tar.gz',
- sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e',
- placement='fabtests', when='@1.4.2')
+ conflicts('@1.9.0', when='platform=darwin',
+ msg='This distribution is missing critical files')
def setup_build_environment(self, env):
if self.run_tests:
@@ -118,10 +85,6 @@ class Libfabric(AutotoolsPackage):
bash = which('bash')
bash('./autogen.sh')
- if self.run_tests:
- with working_dir('fabtests'):
- bash('./autogen.sh')
-
def configure_args(self):
args = []
@@ -138,29 +101,6 @@ class Libfabric(AutotoolsPackage):
return args
- def install(self, spec, prefix):
- # Call main install method
- super(Libfabric, self).install(spec, prefix)
-
- # Build and install fabtests, if available
- if not os.path.isdir('fabtests'):
- return
- with working_dir('fabtests'):
- configure = Executable('./configure')
- configure('--prefix={0}'.format(self.prefix),
- '--with-libfabric={0}'.format(self.prefix))
- make()
- make('install')
-
def installcheck(self):
fi_info = Executable(self.prefix.bin.fi_info)
fi_info()
-
- # Run fabtests test suite if available
- if not os.path.isdir('fabtests'):
- return
- if self.spec.satisfies('@1.8.0,1.9.0'):
- # make test seems broken.
- return
- with working_dir('fabtests'):
- make('test')
diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py
index e5bf7b1df6..07ec319fb8 100644
--- a/var/spack/repos/builtin/packages/libffi/package.py
+++ b/var/spack/repos/builtin/packages/libffi/package.py
@@ -13,6 +13,9 @@ class Libffi(AutotoolsPackage):
run time."""
homepage = "https://sourceware.org/libffi/"
+ # The server is sometimes a bit slow to respond
+ fetch_options = {'timeout': 60}
+
version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37',
url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py
index 496bfc3465..bc566fad52 100644
--- a/var/spack/repos/builtin/packages/libgcrypt/package.py
+++ b/var/spack/repos/builtin/packages/libgcrypt/package.py
@@ -7,14 +7,10 @@ from spack import *
class Libgcrypt(AutotoolsPackage):
- """Libgcrypt is a general purpose cryptographic library based on
- the code from GnuPG. It provides functions for all cryptographic
- building blocks: symmetric ciphers, hash algorithms, MACs, public
- key algorithms, large integer functions, random numbers and a lot
- of supporting functions."""
+ """Cryptographic library based on the code from GnuPG."""
- homepage = "http://www.gnu.org/software/libgcrypt/"
- url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2"
+ homepage = "https://gnupg.org/software/libgcrypt/index.html"
+ url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2"
version('1.8.5', sha256='3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3')
version('1.8.4', sha256='f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227')
@@ -23,3 +19,18 @@ class Libgcrypt(AutotoolsPackage):
version('1.6.2', sha256='de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c')
depends_on('libgpg-error@1.25:')
+
+ def check(self):
+ # Without this hack, `make check` fails on macOS when SIP is enabled
+ # https://bugs.gnupg.org/gnupg/issue2056
+ # https://github.com/Homebrew/homebrew-core/pull/3004
+ if self.spec.satisfies('platform=darwin'):
+ old = self.prefix.lib.join('libgcrypt.20.dylib')
+ new = join_path(
+ self.stage.source_path, 'src', '.libs', 'libgcrypt.20.dylib')
+ filename = 'tests/.libs/random'
+
+ install_name_tool = Executable('install_name_tool')
+ install_name_tool('-change', old, new, filename)
+
+ make('check')
diff --git a/var/spack/repos/builtin/packages/libgit2/package.py b/var/spack/repos/builtin/packages/libgit2/package.py
index 58ea638de0..222075ffdb 100644
--- a/var/spack/repos/builtin/packages/libgit2/package.py
+++ b/var/spack/repos/builtin/packages/libgit2/package.py
@@ -16,8 +16,79 @@ class Libgit2(CMakePackage):
homepage = "https://libgit2.github.com/"
url = "https://github.com/libgit2/libgit2/archive/v0.26.0.tar.gz"
- version('0.28.2', sha256='42b5f1e9b9159d66d86fff0394215c5733b6ef8f9b9d054cdd8c73ad47177fc3')
- version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac')
+ version('0.99.0', sha256='174024310c1563097a6613a0d3f7539d11a9a86517cd67ce533849065de08a11')
+ version('0.28.4', sha256='30f3877469d09f2e4a21be933b4e2800560d16646028dd800744dc5f7fb0c749')
+ version('0.28.3', sha256='ee5344730fe11ce7c86646e19c2d257757be293f5a567548d398fb3af8b8e53b')
+ version('0.28.2', sha256='42b5f1e9b9159d66d86fff0394215c5733b6ef8f9b9d054cdd8c73ad47177fc3')
+ version('0.28.1', sha256='0ca11048795b0d6338f2e57717370208c2c97ad66c6d5eac0c97a8827d13936b')
+ version('0.28.0', sha256='9d60d64dc77085e8e530e5c66314057eafe0c06e4a7a61149a70ff3e0688f284')
+ version('0.27.10', sha256='f6fd26378ff71bd7a4b17b576c82c774a2e9c2d6b74b24718a8fb29551e1c4a5')
+ version('0.27.9', sha256='adf17310b590e6e7618f070c742b5ee028aeeed2c60099bc4190c386b5060de1')
+ version('0.27.8', sha256='8313873d49dc01e8b880ec334d7430ae67496a89aaa8c6e7bbd3affb47a00c76')
+ version('0.27.7', sha256='1a5435a483759b1cd96feb12b11abb5231b0688016db506ce5947178f6ba2531')
+ version('0.27.6', sha256='d98db2ed11ec82fee94dce4819b466524613852c2c9c3426d351c57729ec49da')
+ version('0.27.5', sha256='15f2775f4f325951d9139ed906502b6c71fee6787cada9b045f5994072ccbd33')
+ version('0.27.4', sha256='0b7ca31cb959ff1b22afa0da8621782afe61f99242bf716c403802ffbdb21d51')
+ version('0.27.3', sha256='50a57bd91f57aa310fb7d5e2a340b3779dc17e67b4e7e66111feac5c2432f1a5')
+ version('0.27.2', sha256='ffacdbd5588aeb03e98e3866a7e2ceace468723a439bdc9bb01362fe140fa9e5')
+ version('0.27.1', sha256='837b11927bc5f64e7f9ab0376f57cfe3ca5aa52ffd2007ac41184b21124fb086')
+ version('0.27.0', sha256='545b0458292c786aba334f1bf1c8f73600ae73dd7205a7bb791a187ee48ab8d2')
+ version('0.26.8', sha256='0f20d7e239be030db33d7350bab38ada2830b3bffab5539730074e71b0267796')
+ version('0.26.7', sha256='65584ac1f4de2c3ab8491351c8629eb68bad2d65e67f6411bf0333b8976dc4ef')
+ version('0.26.6', sha256='7669dd47ebdab86ced8888816c552596ec923b6e126704a3445b2081cb0e5662')
+ version('0.26.5', sha256='52e28a5166564bc4365a2e4112f5e5c6e334708dbf13596241b2fd34efc1b0a9')
+ version('0.26.4', sha256='292fa2600bbb4e52641793cfcc1c19ffc0bf97b5fd8378d422a6bfe7afffcb97')
+ version('0.26.3', sha256='0da4e211dfb63c22e5f43f2a4a5373e86a140afa88a25ca6ba3cc2cae58263d2')
+ version('0.26.2', sha256='747b47d5b02a2387ff81301c694763785181b895690b6eb91ed1ae4b7904307b')
+ version('0.26.1', sha256='68cd0f8ee9e0ca84dcf0f0267d0a8297471d3365622d22d3da67c57165bb0722')
+ version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac')
- depends_on('cmake@2.8:', type='build')
- depends_on('libssh2')
+ # Backends
+ variant(
+ 'https', default='system', description='HTTPS support',
+ values=('system', 'openssl', 'none'), multi=False)
+ variant('ssh', default=True, description='Enable SSH support')
+ variant('curl', default=False, description='Enable libcurl support (only supported through v0.27)')
+
+ # Build Dependencies
+ depends_on('cmake@2.8:', type='build', when="@:0.28")
+ depends_on('cmake@3.5:', type='build', when="@0.99:")
+
+ # Runtime Dependencies
+ depends_on('libssh2', when='+ssh')
+ depends_on('openssl', when='https=system platform=linux')
+ depends_on('openssl', when='https=system platform=cray')
+ depends_on('openssl', when='https=openssl')
+ depends_on('curl', when='+curl')
+
+ conflicts('+curl', when='@0.28:')
+
+ def cmake_args(self):
+ args = []
+ if 'https=system' in self.spec:
+ if 'platform=linux' in self.spec or 'platform=cray' in self.spec:
+ args.append('-DUSE_HTTPS=OpenSSL')
+ elif 'platform=darwin' in self.spec:
+ args.append('-DUSE_HTTPS=SecureTransport')
+ else:
+ # Let CMake try to find an HTTPS implementation. Mileage on
+ # your platform may vary
+ args.append('-DUSE_HTTPS=ON')
+ elif 'https=openssl' in self.spec:
+ args.append('-DUSE_HTTPS=OpenSSL')
+ else:
+ args.append('-DUSE_HTTPS=OFF')
+
+ args.append(
+ '-DUSE_SSH={0}'.format('ON' if '+ssh' in self.spec else 'OFF'))
+
+ # The curl backed is not supported after 0.27.x
+ if '@:0.27 +curl' in self.spec:
+ args.append(
+ '-DCURL={0}'.format('ON' if '+curl' in self.spec else 'OFF'))
+
+ # Control tests
+ args.append(
+ '-DBUILD_CLAR={0}'.format('ON' if self.run_tests else 'OFF'))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py
index 6e61bf1403..c4978751ff 100644
--- a/var/spack/repos/builtin/packages/libgpg-error/package.py
+++ b/var/spack/repos/builtin/packages/libgpg-error/package.py
@@ -7,14 +7,12 @@ from spack import *
class LibgpgError(AutotoolsPackage):
- """Libgpg-error is a small library that defines common error
- values for all GnuPG components. Among these are GPG, GPGSM,
- GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry,
- SmartCard Daemon and possibly more in the future. """
+ """Common error values for all GnuPG components."""
- homepage = "https://www.gnupg.org/related_software/libgpg-error"
- url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.27.tar.bz2"
+ homepage = "https://www.gnupg.org/related_software/libgpg-error/index.en.html"
+ url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.37.tar.bz2"
+ version('1.37', sha256='b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763')
version('1.36', sha256='babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c')
version('1.27', sha256='4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2')
version('1.21', sha256='b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d')
@@ -23,3 +21,13 @@ class LibgpgError(AutotoolsPackage):
depends_on('awk', type=('build'))
# Patch for using gawk@5, c.f. https://dev.gnupg.org/T4459
patch('awk-5.patch', when='@1.36^gawk@5:')
+
+ def configure_args(self):
+ args = ['--enable-static']
+
+ if self.run_tests:
+ args.append('--enable-tests')
+ else:
+ args.append('--disable-tests')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libhio/package.py b/var/spack/repos/builtin/packages/libhio/package.py
index 42ef377a5a..f04dc7c660 100644
--- a/var/spack/repos/builtin/packages/libhio/package.py
+++ b/var/spack/repos/builtin/packages/libhio/package.py
@@ -16,11 +16,15 @@ class Libhio(AutotoolsPackage):
homepage = "https://github.com/hpc/libhio"
url = "https://github.com/hpc/libhio/releases/download/hio.1.4.1.0/libhio-1.4.1.0.tar.bz2"
+ git = "https://github.com/hpc/libhio.git"
+ maintainers = ['plamborn']
#
# We don't include older versions since they are missing features
# needed by current and future consumers of libhio
#
+ version('master', branch='master')
+ version('1.4.1.4', sha256='6998a424cff97be9a207032b3addd19f292d8ebda72043be92a8f942ae3b4da1')
version('1.4.1.3', sha256='b6ad2354f1bc597e7e55fc989ff50944835d64149f4925c2f45df950919e4d08')
version('1.4.1.2', sha256='87a0f9b72b7aa69485c40d9bd36f02af653b70e8eed3eb0b50eaeb02ff0a9049')
version('1.4.1.1', sha256='5c65d18bf74357f9d9960bf6b9ad2432f8fc5a2b653e72befe4d1caabb9a2f7a')
@@ -57,4 +61,6 @@ class Libhio(AutotoolsPackage):
if '+hdf5' in spec:
args.append('--with-hdf5={0}'.format(spec['hdf5'].prefix))
+ args.append('--with-external-json={0}'.format(spec['json-c'].prefix))
+
return args
diff --git a/var/spack/repos/builtin/packages/libiscsi/package.py b/var/spack/repos/builtin/packages/libiscsi/package.py
new file mode 100644
index 0000000000..621cc875d6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libiscsi/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Libiscsi(AutotoolsPackage):
+ """Libiscsi is a client-side library to implement the iSCSI protocol that can
+ be used to access the resources of an iSCSI target."""
+
+ homepage = "https://github.com/sahlberg/libiscsi"
+ url = "https://github.com/sahlberg/libiscsi/archive/1.19.0.tar.gz"
+
+ version('1.19.0', sha256='c7848ac722c8361d5064654bc6e926c2be61ef11dd3875020a63931836d806df')
+ version('1.18.0', sha256='464d104e12533dc11f0dd7662cbc2f01c132f94aa4f5bd519e3413ef485830e8')
+ version('1.17.0', sha256='80a7f75bfaffc8bec9920ba7af3f1d14cd862c35c3c5f2c9617b45b975232112')
+ version('1.16.0', sha256='35c7be63a8c3a7cee7b697901b6d2dd464e098e1881671eb67462983053b3c7b')
+ version('1.15.0', sha256='489e625e58c1e6da2fa3536f9c4b12290f2d3fb4ce14edc0583b8ba500605c34')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ def autoreconf(self, spec, prefix):
+ autoreconf('--install', '--force')
diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py
index 541e98a0d4..a828b3c87a 100644
--- a/var/spack/repos/builtin/packages/libmesh/package.py
+++ b/var/spack/repos/builtin/packages/libmesh/package.py
@@ -79,10 +79,7 @@ class Libmesh(AutotoolsPackage):
'variant.')
depends_on('boost', when='+boost')
- # The Scotch dependency of Eigen is not used by libMesh. Since Scotch can
- # only be used with certain versions of flex it conflicts with several
- # versions of GCC, so explicitly disable it.
- depends_on('eigen~scotch', when='+eigen')
+ depends_on('eigen', when='+eigen')
depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('mpi', when='+mpi')
depends_on('mpi', when='+slepc')
diff --git a/var/spack/repos/builtin/packages/libsndfile/package.py b/var/spack/repos/builtin/packages/libsndfile/package.py
new file mode 100644
index 0000000000..4c5c294d48
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsndfile/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Libsndfile(AutotoolsPackage):
+ """Libsndfile is a C library for reading and writing files containing
+ sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format)
+ through one standard library interface. It is released in source code
+ format under the Gnu Lesser General Public License."""
+
+ homepage = "http://www.mega-nerd.com/libsndfile/"
+ url = "http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz"
+
+ version('1.0.28', sha256='1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9')
+
+ variant('alsa', default=False, description='Use alsa in example programs')
+ variant('external-libs',
+ default=False,
+ description='Build with support for FLAC, Ogg and Vorbis')
+ variant('sqlite', default=False, description='Build with sqlite support')
+
+ depends_on('pkgconfig', type='build')
+ depends_on('alsa-lib', when='+alsa')
+ depends_on('flac@1.3.1:', when='+external-libs')
+ depends_on('libogg@1.1.3:', when='+external-libs')
+ depends_on('libvorbis@1.2.3:', when='+external-libs')
+ depends_on('sqlite@3.2:', when='+sqlite')
+
+ def configure_args(self):
+ args = []
+
+ args += self.enable_or_disable('alsa')
+ args += self.enable_or_disable('external-libs')
+ args += self.enable_or_disable('sqlite')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py
index b8e01f0a92..971840f5e0 100644
--- a/var/spack/repos/builtin/packages/libunwind/package.py
+++ b/var/spack/repos/builtin/packages/libunwind/package.py
@@ -13,9 +13,10 @@ class Libunwind(AutotoolsPackage):
homepage = "http://www.nongnu.org/libunwind/"
url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz"
git = "https://github.com/libunwind/libunwind"
+ maintainers = ['mwkrentel']
- version('develop', branch='master')
- version('2018.10.12', commit='f551e16213c52169af8bda554e4051b756a169cc')
+ version('master', branch='master')
+ version('1.4-head', branch='v1.4-stable')
version('1.4-rc1', sha256='1928459139f048f9b4aca4bb5010540cb7718d44220835a2980b85429007fa9f')
version('1.3.1', sha256='43997a3939b6ccdf2f669b50fdb8a4d3205374728c2923ddc2354c65260214f8', preferred=True)
version('1.2.1', sha256='3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb')
@@ -24,14 +25,19 @@ class Libunwind(AutotoolsPackage):
variant('xz', default=False,
description='Support xz (lzma) compressed symbol tables.')
+ variant('zlib', default=False,
+ description='Support zlib compressed symbol tables (master '
+ 'branch only).')
+
# The libunwind releases contain the autotools generated files,
# but the git repo snapshots do not.
- depends_on('autoconf', type='build', when='@2018:')
- depends_on('automake', type='build', when='@2018:')
- depends_on('libtool', type='build', when='@2018:')
- depends_on('m4', type='build', when='@2018:')
+ depends_on('autoconf', type='build', when='@master,1.4-head')
+ depends_on('automake', type='build', when='@master,1.4-head')
+ depends_on('libtool', type='build', when='@master,1.4-head')
+ depends_on('m4', type='build', when='@master,1.4-head')
depends_on('xz', type='link', when='+xz')
+ depends_on('zlib', type='link', when='+zlib')
conflicts('platform=darwin',
msg='Non-GNU libunwind needs ELF libraries Darwin does not have')
@@ -49,4 +55,11 @@ class Libunwind(AutotoolsPackage):
else:
args.append('--disable-minidebuginfo')
+ # zlib support is only in the master branch (for now).
+ if spec.satisfies('@master'):
+ if '+zlib' in spec:
+ args.append('--enable-zlibdebuginfo')
+ else:
+ args.append('--disable-zlibdebuginfo')
+
return args
diff --git a/var/spack/repos/builtin/packages/libxpresent/package.py b/var/spack/repos/builtin/packages/libxpresent/package.py
index 0fddba389a..1305623472 100644
--- a/var/spack/repos/builtin/packages/libxpresent/package.py
+++ b/var/spack/repos/builtin/packages/libxpresent/package.py
@@ -15,10 +15,15 @@ class Libxpresent(AutotoolsPackage):
version('1.0.0', sha256='92f1bdfb67ae2ffcdb25ad72c02cac5e4912dc9bc792858240df1d7f105946fa')
- depends_on('libx11')
+ depends_on('libx11', type='link')
+ depends_on('libxext', type='link')
+ depends_on('libxfixes', type='link')
+ depends_on('libxrandr', type='link')
- depends_on('xproto', type='build')
- depends_on('presentproto@1.0:', type='build')
- depends_on('xextproto', type='build')
+ depends_on('xproto', type='link')
+ depends_on('presentproto@1.0:', type='link')
+ depends_on('xextproto', type='link')
+ depends_on('fixesproto', type='link')
+ depends_on('randrproto', type='link')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py
index 070b24396f..12cfc32dfd 100644
--- a/var/spack/repos/builtin/packages/libxsmm/package.py
+++ b/var/spack/repos/builtin/packages/libxsmm/package.py
@@ -14,10 +14,11 @@ class Libxsmm(MakefilePackage):
and deep learning primitives."""
homepage = 'https://github.com/hfp/libxsmm'
- url = 'https://github.com/hfp/libxsmm/archive/1.14.tar.gz'
+ url = 'https://github.com/hfp/libxsmm/archive/1.15.tar.gz'
git = 'https://github.com/hfp/libxsmm.git'
- version('develop', branch='master')
+ version('master', branch='master')
+ version('1.15', sha256='499e5adfbf90cd3673309243c2b56b237d54f86db2437e1ac06c8746b55ab91c')
version('1.14', sha256='9c0af4509ea341d1ee2c6c19fc6f19289318c3bd4b17844efeb9e7f9691abf76')
version('1.13', sha256='47c034e169820a9633770eece0e0fdd8d4a744e09b81da2af8c2608a4625811e')
version('1.12.1', sha256='3687fb98da00ba92cd50b5f0d18b39912c7886dad3856843573aee0cb34e9791')
diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py
index c24d5e720a..8556fb0d8e 100644
--- a/var/spack/repos/builtin/packages/likwid/package.py
+++ b/var/spack/repos/builtin/packages/likwid/package.py
@@ -19,7 +19,9 @@ class Likwid(Package):
homepage = "https://github.com/RRZE-HPC/likwid"
url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz"
git = "https://github.com/RRZE-HPC/likwid.git"
+ maintainers = ['TomTheBear']
+ version('5.0.1', sha256='3757b0cb66e8af0116f9288c7f90543acbd8e2af8f72f77aef447ca2b3e76453')
version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e')
version('4.3.4', sha256='5c0d1c66b25dac8292a02232f06454067f031a238f010c62f40ef913c6609a83')
version('4.3.3', sha256='a681378cd66c1679ca840fb5fac3136bfec93c01b3d78cc1d00a641db325a9a3')
@@ -40,8 +42,6 @@ class Likwid(Package):
depends_on('perl', type=('build', 'run'))
- supported_compilers = {'clang': 'CLANG', 'gcc': 'GCC', 'intel': 'ICC'}
-
def patch(self):
files = glob.glob('perl/*.*') + glob.glob('bench/perl/*.*')
@@ -59,13 +59,18 @@ class Likwid(Package):
*files)
def install(self, spec, prefix):
- if self.compiler.name not in self.supported_compilers:
+ supported_compilers = {'clang': 'CLANG', 'gcc': 'GCC', 'intel': 'ICC'}
+ if spec.target.family == 'aarch64':
+ supported_compilers = {'gcc': 'GCCARMv8', 'clang': 'ARMCLANG'}
+ elif spec.target.family == 'ppc64' or spec.target.family == 'ppc64le':
+ supported_compilers = {'gcc': 'GCCPOWER'}
+ if self.compiler.name not in supported_compilers:
raise RuntimeError('{0} is not a supported compiler \
to compile Likwid'.format(self.compiler.name))
filter_file('^COMPILER .*',
'COMPILER = ' +
- self.supported_compilers[self.compiler.name],
+ supported_compilers[self.compiler.name],
'config.mk')
filter_file('^PREFIX .*',
'PREFIX = ' +
diff --git a/var/spack/repos/builtin/packages/lksctp-tools/package.py b/var/spack/repos/builtin/packages/lksctp-tools/package.py
new file mode 100644
index 0000000000..ca168aa320
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lksctp-tools/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class LksctpTools(AutotoolsPackage):
+ """A Linux SCTP helper library"""
+
+ homepage = "https://github.com/sctp/lksctp-tools"
+ url = "https://github.com/sctp/lksctp-tools/archive/v1.0.18.tar.gz"
+
+ version('1.0.18', sha256='3e9ab5b3844a8b65fc8152633aafe85f406e6da463e53921583dfc4a443ff03a')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py
new file mode 100644
index 0000000000..e38ca29e24
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lmbench/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Lmbench(MakefilePackage):
+ """lmbench is a suite of simple, portable, ANSI/C microbenchmarks for
+ UNIX/POSIX. In general, it measures two key features: latency and
+ bandwidth. lmbench is intended to give system developers insight into
+ basic costs of key operations."""
+
+ homepage = "http://lmbench.sourceforge.net/"
+ git = "https://github.com/intel/lmbench.git"
+
+ version('master', branch='master')
+
+ depends_on('libtirpc')
+
+ def setup_build_environment(self, env):
+ env.prepend_path('CPATH', self.spec['libtirpc'].prefix.include.tirpc)
+ env.append_flags('LDFLAGS', '-ltirpc')
+
+ def build(self, spec, prefix):
+ make('build')
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/lua-luaposix/package.py b/var/spack/repos/builtin/packages/lua-luaposix/package.py
index f69c2a3682..f5290eae1c 100644
--- a/var/spack/repos/builtin/packages/lua-luaposix/package.py
+++ b/var/spack/repos/builtin/packages/lua-luaposix/package.py
@@ -13,6 +13,7 @@ class LuaLuaposix(Package):
url = "https://github.com/luaposix/luaposix/archive/release-v33.4.0.tar.gz"
version('33.4.0', sha256='e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21')
+ version('33.2.1', sha256='4fb34dfea67f4cf3194cdecc6614c9aea67edc3c4093d34137669ea869c358e1')
extends("lua")
diff --git a/var/spack/repos/builtin/packages/lvm2/package.py b/var/spack/repos/builtin/packages/lvm2/package.py
index c552fe3ef5..55fa1f1d39 100644
--- a/var/spack/repos/builtin/packages/lvm2/package.py
+++ b/var/spack/repos/builtin/packages/lvm2/package.py
@@ -20,6 +20,9 @@ class Lvm2(AutotoolsPackage):
homepage = "https://www.sourceware.org/lvm2"
url = "https://sourceware.org/pub/lvm2/releases/LVM2.2.03.05.tgz"
+ # The server is sometimes a bit slow to respond
+ fetch_options = {'timeout': 60}
+
version('2.03.05', sha256='ca52815c999b20c6d25e3192f142f081b93d01f07b9d787e99664b169dba2700')
version('2.03.04', sha256='f151f36fc0039997d2d9369b607b9262568b1a268afe19fd1535807355402142')
version('2.03.03', sha256='cedefa63ec5ae1b62fedbfddfc30706c095be0fc7c6aaed6fd1c50bc8c840dde')
diff --git a/var/spack/repos/builtin/packages/margo/package.py b/var/spack/repos/builtin/packages/margo/package.py
index c6f932e1bb..30e124cac6 100644
--- a/var/spack/repos/builtin/packages/margo/package.py
+++ b/var/spack/repos/builtin/packages/margo/package.py
@@ -13,7 +13,7 @@ class Margo(AutotoolsPackage):
url = "https://xgitlab.cels.anl.gov/sds/margo/-/archive/v0.4.3/margo-v0.4.3.tar.gz"
git = "https://xgitlab.cels.anl.gov/sds/margo.git"
- maintainers = ['fbudin69500', 'chuckatkins']
+ maintainers = ['fbudin69500', 'chuckatkins', 'carns']
version('develop', branch='master')
version('0.4.3', sha256='61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475')
diff --git a/var/spack/repos/builtin/packages/minigan/package.py b/var/spack/repos/builtin/packages/minigan/package.py
new file mode 100644
index 0000000000..5d3b553bcf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minigan/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Minigan(Package):
+ """miniGAN is a generative adversarial network code developed as part of the
+ Exascale Computing Project's (ECP) ExaLearn project at
+ Sandia National Laboratories."""
+
+ homepage = "https://github.com/SandiaMLMiniApps/miniGAN"
+ url = "https://github.com/SandiaMLMiniApps/miniGAN/archive/1.0.0.tar.gz"
+
+ version('1.0.0', sha256='ef6d5def9c7040af520acc64b7a8b6c8ec4b7901721b11b0cb25a583ea0c8ae3')
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-torch', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-horovod@master', type=('build', 'run'))
+ depends_on('py-torchvision', type=('build', 'run'))
+ depends_on('py-matplotlib@3.0.0', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/mofem-cephas/package.py b/var/spack/repos/builtin/packages/mofem-cephas/package.py
index 28e00565d2..24e8815084 100644
--- a/var/spack/repos/builtin/packages/mofem-cephas/package.py
+++ b/var/spack/repos/builtin/packages/mofem-cephas/package.py
@@ -42,7 +42,7 @@ class MofemCephas(CMakePackage):
depends_on("parmetis")
# Fixed version of hdf5, to remove some problems with dependent
# packages, f.e. MED format
- depends_on("hdf5@:1.8.19+hl+mpi")
+ depends_on("hdf5@:1.8.19+hl+mpi+fortran")
depends_on("petsc@:3.9.3+mumps+mpi")
depends_on('slepc', when='+slepc')
depends_on("moab")
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_0.patch
index 458c18813e..18d5c2ad65 100644
--- a/var/spack/repos/builtin/packages/netcdf-fortran/nag.patch
+++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_0.patch
@@ -1,30 +1,28 @@
-diff --git a/configure b/configure
-index 06ac8b0..d518a1a 100755
--- a/configure
+++ b/configure
-@@ -10657,6 +10657,8 @@ _LT_EOF
+@@ -11563,6 +11563,8 @@ _LT_EOF
lf95*) # Lahey Fortran 8.1
whole_archive_flag_spec=
tmp_sharedflag='--shared' ;;
-+ nagfor*)
++ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
tmp_sharedflag='-qmkshrobj'
tmp_addflag= ;;
-@@ -14252,6 +14254,8 @@ _LT_EOF
+@@ -19036,6 +19038,8 @@ _LT_EOF
lf95*) # Lahey Fortran 8.1
whole_archive_flag_spec_F77=
tmp_sharedflag='--shared' ;;
-+ nagfor*)
++ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
tmp_sharedflag='-qmkshrobj'
tmp_addflag= ;;
-@@ -17142,6 +17146,8 @@ _LT_EOF
+@@ -22116,6 +22120,8 @@ _LT_EOF
lf95*) # Lahey Fortran 8.1
whole_archive_flag_spec_FC=
tmp_sharedflag='--shared' ;;
-+ nagfor*)
++ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
tmp_sharedflag='-qmkshrobj'
diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch
new file mode 100644
index 0000000000..8fb671093b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch
@@ -0,0 +1,71 @@
+--- a/confdb/ltmain.sh
++++ b/confdb/ltmain.sh
+@@ -180,6 +180,20 @@ func_basename ()
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+ } # func_basename may be replaced by extended shell implementation
+
++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
++func_cc_basename ()
++{
++ for cc_temp in $*""; do
++ case $cc_temp in
++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
++ \-*) ;;
++ *) break;;
++ esac
++ done
++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++}
++
+
+ # func_dirname_and_basename file append nondir_replacement
+ # perform func_basename and func_dirname in a single function
+@@ -6419,6 +6433,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8001,6 +8022,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+--- a/configure
++++ b/configure
+@@ -11614,6 +11614,8 @@ _LT_EOF
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -19246,6 +19248,8 @@ _LT_EOF
+ whole_archive_flag_spec_FC=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object_FC=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch
new file mode 100644
index 0000000000..871ffe6dd2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -22237,6 +22237,8 @@ _LT_EOF
+ whole_archive_flag_spec_F77=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object_F77=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch
new file mode 100644
index 0000000000..50f73f2dde
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch
@@ -0,0 +1,69 @@
+--- a/confdb/ltmain.sh
++++ b/confdb/ltmain.sh
+@@ -7867,6 +7867,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8886,7 +8893,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9498,6 +9506,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+--- a/configure
++++ b/configure
+@@ -12583,6 +12583,8 @@ _LT_EOF
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -20684,6 +20686,8 @@ _LT_EOF
+ whole_archive_flag_spec_FC=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_FC=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -23958,6 +23962,8 @@ _LT_EOF
+ whole_archive_flag_spec_F77=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_F77=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index 0980c66818..8360046ab4 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -63,6 +63,9 @@ spack package at this time.''',
)
variant('pci', default=(sys.platform != 'darwin'),
description="Support analyzing devices on PCI bus")
+ variant('libxml2', default=True,
+ description='Use libxml2 for XML support instead of the custom '
+ 'minimalistic implementation')
provides('mpi')
provides('mpi@:3.0', when='@3:')
@@ -86,6 +89,23 @@ spack package at this time.''',
sha256='c7d4ecf865dccff5b764d9c66b6a470d11b0b1a5b4f7ad1ffa61079ad6b5dede',
when='@3.3:3.3.0')
+ # This patch for Libtool 2.4.2 enables shared libraries for NAG and is
+ # applied by MPICH starting version 3.1.
+ patch('nag_libtool_2.4.2_0.patch', when='@:3.0%nag')
+
+ # This patch for Libtool 2.4.2 fixes the problem with '-pthread' flag and
+ # enables convenience libraries for NAG. Starting version 3.1, the order of
+ # checks for FC and F77 is changed, therefore we need to apply the patch in
+ # two steps (the patch files can be merged once the support for versions
+ # 3.1 and older is dropped).
+ patch('nag_libtool_2.4.2_1.patch', when='@:3.1.3%nag')
+ patch('nag_libtool_2.4.2_2.patch', when='@:3.1.3%nag')
+
+ # This patch for Libtool 2.4.6 does the same as the previous two. The
+ # problem is not fixed upstream yet and the upper version constraint is
+ # given just to avoid application of the patch to the develop version.
+ patch('nag_libtool_2.4.6.patch', when='@3.1.4:3.3%nag')
+
depends_on('findutils', type='build')
depends_on('pkgconfig', type='build')
@@ -96,8 +116,14 @@ spack package at this time.''',
depends_on('ucx', when='netmod=ucx')
- depends_on('libpciaccess', when="+pci")
- depends_on('libxml2')
+ # The dependencies on libpciaccess and libxml2 come from the embedded
+ # hwloc, which, before version 3.3, was used only for Hydra.
+ depends_on('libpciaccess', when="@:3.2+hydra+pci")
+ depends_on('libxml2', when='@:3.2+hydra+libxml2')
+
+ # Starting with version 3.3, MPICH uses hwloc directly.
+ depends_on('libpciaccess', when="@3.3:+pci")
+ depends_on('libxml2', when='@3.3:+libxml2')
# Starting with version 3.3, Hydra can use libslurm for nodelist parsing
depends_on('slurm', when='+slurm')
@@ -119,6 +145,12 @@ spack package at this time.''',
conflicts('pmi=pmi2', when='device=ch3 netmod=ofi')
conflicts('pmi=pmix', when='device=ch3')
+ # MPICH does not require libxml2 and libpciaccess for versions before 3.3
+ # when ~hydra is set: prevent users from setting +libxml2 and +pci in this
+ # case to avoid generating an identical MPICH installation.
+ conflicts('+pci', when='@:3.2~hydra')
+ conflicts('+libxml2', when='@:3.2~hydra')
+
def setup_build_environment(self, env):
env.unset('F90')
env.unset('F90FLAGS')
@@ -181,6 +213,7 @@ spack package at this time.''',
def configure_args(self):
spec = self.spec
config_args = [
+ '--disable-silent-rules',
'--enable-shared',
'--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'),
'--{0}-romio'.format('enable' if '+romio' in spec else 'disable'),
@@ -234,4 +267,11 @@ spack package at this time.''',
config_args.append('--with-ucx={0}'.format(
spec['ucx'].prefix))
+ # In other cases the argument is redundant.
+ if '@:3.2+hydra' in spec or '@3.3:' in spec:
+ # The root configure script passes the argument to the configure
+ # scripts of all instances of hwloc (there are three copies of it:
+ # for hydra, for hydra2, and for MPICH itself).
+ config_args += self.enable_or_disable('libxml2')
+
return config_args
diff --git a/var/spack/repos/builtin/packages/mrcpp/package.py b/var/spack/repos/builtin/packages/mrcpp/package.py
new file mode 100644
index 0000000000..558b145a71
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mrcpp/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Mrcpp(CMakePackage):
+ """The MultiResolution Computation Program Package (MRCPP) is a general purpose
+ numerical mathematics library based on multiresolution analysis and the
+ multiwavelet basis which provide low-scaling algorithms as well as rigorous
+ error control in numerical computations."""
+
+ homepage = "https://mrcpp.readthedocs.io/en/latest/"
+ url = "https://github.com/MRChemSoft/mrcpp/archive/v1.1.0.tar.gz"
+
+ maintainers = ["robertodr", "stigrj", "ilfreddy"]
+
+ version('1.2.0-alpha2',
+ sha256='8f4df594751a5b7e76b09a62450c6c4956b1974876afa143cc9b5703156ccd40')
+ version('1.1.0',
+ sha256='e9ffb87eccbd45305f822a0b46b875788b70386b3c1d38add6540dc4e0327ab2',
+ preferred=True)
+ version('1.0.2',
+ sha256='d2b26f7d7b16fa67f16788119abc0f6c7562cb37ece9ba075c116463dcf19df3')
+ version('1.0.1',
+ sha256='b4d7120545da3531bc7aa0a4cb4eb579fdbe1f8e5d32b1fd1086976583e3e27c')
+ version('1.0.0',
+ sha256='0858146141d3a60232e8874380390f9e9fa0b1bd6e67099d5833704478213efd')
+
+ variant("openmp", default=True, description="Enable OpenMP support.")
+
+ variant("mpi", default=True, description="Enable MPI support")
+ depends_on("mpi", when="+mpi")
+
+ depends_on("cmake@3.11:", type="build")
+ depends_on("eigen")
+
+ def cmake_args(self):
+ args = [
+ "-DENABLE_OPENMP={0}".format("ON" if "+openmp" in
+ self.spec else "OFF"),
+ "-DENABLE_MPI={0}".format("ON" if "+mpi" in self.spec else "OFF"),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py
index a56bc111e2..de34b6aa19 100644
--- a/var/spack/repos/builtin/packages/mumps/package.py
+++ b/var/spack/repos/builtin/packages/mumps/package.py
@@ -241,7 +241,7 @@ class Mumps(Package):
else:
makefile_conf.extend([
'LIBEXT = .a',
- 'AR = ar vr',
+ 'AR = ar vr ',
'RANLIB = ranlib'
])
diff --git a/var/spack/repos/builtin/packages/munge/package.py b/var/spack/repos/builtin/packages/munge/package.py
index 5c10720e77..66d14ec5d7 100644
--- a/var/spack/repos/builtin/packages/munge/package.py
+++ b/var/spack/repos/builtin/packages/munge/package.py
@@ -10,14 +10,28 @@ import os
class Munge(AutotoolsPackage):
""" MUNGE Uid 'N' Gid Emporium """
homepage = "https://code.google.com/p/munge/"
- url = "https://github.com/dun/munge/releases/download/munge-0.5.13/munge-0.5.13.tar.xz"
+ url = "https://github.com/dun/munge/releases/download/munge-0.5.14/munge-0.5.14.tar.xz"
+ maintainers = ['ChristianTackeGSI']
+
+ version('0.5.14', sha256='6606a218f18090fa1f702e3f6fb608073eb6aafed534cf7dd81b67b2e0d30640')
version('0.5.13', sha256='99753dfd06a4f063c36f3fb0eb1964f394feb649937d94c4734d85b7964144da')
version('0.5.12', sha256='e972e3c3e947995a99e023f5758047db16cfe2f0c2c9ca76399dc1511fa71be8')
version('0.5.11', sha256='8e075614f81cb0a6df21a0aafdc825498611a04429d0876f074fc828739351a5',
url='https://github.com/dun/munge/releases/download/munge-0.5.11/munge-0.5.11.tar.bz2')
+ variant('localstatedir', default='PREFIX/var', values=any,
+ description='Set local state path (possibly to /var)')
+
depends_on('openssl')
depends_on('libgcrypt')
+ depends_on('bzip2')
+
+ def configure_args(self):
+ args = []
+ localstatedir = self.spec.variants['localstatedir'].value
+ if localstatedir != 'PREFIX/var':
+ args.append('--localstatedir={0}'.format(localstatedir))
+ return args
def install(self, spec, prefix):
os.makedirs(os.path.join(prefix, "lib/systemd/system"))
diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py
index 87e9f77848..f6301a564a 100644
--- a/var/spack/repos/builtin/packages/mvapich2/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2/package.py
@@ -10,10 +10,11 @@ import sys
class Mvapich2(AutotoolsPackage):
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
- url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.2.tar.gz"
+ url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.3.tar.gz"
list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
# Prefer the latest stable release
+ version('2.3.3', sha256='41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73')
version('2.3.2', sha256='30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf')
version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf')
version('2.3', sha256='01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd')
diff --git a/var/spack/repos/builtin/packages/mxnet/package.py b/var/spack/repos/builtin/packages/mxnet/package.py
index f3b7cddb23..492a2573bc 100644
--- a/var/spack/repos/builtin/packages/mxnet/package.py
+++ b/var/spack/repos/builtin/packages/mxnet/package.py
@@ -13,6 +13,8 @@ class Mxnet(MakefilePackage):
homepage = "http://mxnet.io"
url = "https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz"
+ maintainers = ['adamjstewart']
+
version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2')
variant('cuda', default=False, description='Enable CUDA support')
diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py
index 7b9b67b939..9df2de49b7 100644
--- a/var/spack/repos/builtin/packages/ncurses/package.py
+++ b/var/spack/repos/builtin/packages/ncurses/package.py
@@ -20,13 +20,14 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage):
# URL must remain http:// so Spack can bootstrap curl
gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz"
+ version('6.2', sha256='30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d')
version('6.1', sha256='aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17')
version('6.0', sha256='f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260')
version('5.9', sha256='9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b')
variant('symlinks', default=False,
description='Enables symlinks. Needed on AFS filesystem.')
- variant('termlib', default=False,
+ variant('termlib', default=True,
description='Enables termlib needs for gnutls in emacs.')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch b/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch
new file mode 100644
index 0000000000..11e149081a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch
@@ -0,0 +1,312 @@
+--- a/config.h.in
++++ b/config.h.in
+@@ -52,9 +52,6 @@
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+
+-/* Define to 1 if you have the `curl' library (-lcurl). */
+-#undef HAVE_LIBCURL
+-
+ /* Define to 1 if you have the `m' library (-lm). */
+ #undef HAVE_LIBM
+
+--- a/configure
++++ b/configure
+@@ -22122,6 +22122,14 @@ $as_echo "$as_me: checking types, headers, and functions" >&6;}
+
+ # We must check for all these, because they may be used by the netCDF
+ # C library.
++# Removing the checks for some of the libraries because of issues
++# observed when they are detected, are not needed, and an attempt to
++# link against is made anyways.
++# See https://github.com/Unidata/netcdf-fortran/issues/164
++#
++# Specifying LDFLAGS="$(nc-config --libs [--static])" should
++# let downstream developers link more reliably against libnetcdf.
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for floor in -lm" >&5
+ $as_echo_n "checking for floor in -lm... " >&6; }
+ if ${ac_cv_lib_m_floor+:} false; then :
+@@ -22167,163 +22175,6 @@ _ACEOF
+
+ fi
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_setopt in -lcurl" >&5
+-$as_echo_n "checking for curl_easy_setopt in -lcurl... " >&6; }
+-if ${ac_cv_lib_curl_curl_easy_setopt+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lcurl $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char curl_easy_setopt ();
+-int
+-main ()
+-{
+-return curl_easy_setopt ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_lib_curl_curl_easy_setopt=yes
+-else
+- ac_cv_lib_curl_curl_easy_setopt=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_setopt" >&5
+-$as_echo "$ac_cv_lib_curl_curl_easy_setopt" >&6; }
+-if test "x$ac_cv_lib_curl_curl_easy_setopt" = xyes; then :
+- cat >>confdefs.h <<_ACEOF
+-#define HAVE_LIBCURL 1
+-_ACEOF
+-
+- LIBS="-lcurl $LIBS"
+-
+-fi
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5
+-$as_echo_n "checking for library containing deflate... " >&6; }
+-if ${ac_cv_search_deflate+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char deflate ();
+-int
+-main ()
+-{
+-return deflate ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-for ac_lib in '' zlibwapi zlibstat zlib zlib1 z; do
+- if test -z "$ac_lib"; then
+- ac_res="none required"
+- else
+- ac_res=-l$ac_lib
+- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+- fi
+- if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_search_deflate=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext
+- if ${ac_cv_search_deflate+:} false; then :
+- break
+-fi
+-done
+-if ${ac_cv_search_deflate+:} false; then :
+-
+-else
+- ac_cv_search_deflate=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5
+-$as_echo "$ac_cv_search_deflate" >&6; }
+-ac_res=$ac_cv_search_deflate
+-if test "$ac_res" != no; then :
+- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SZ_Compress" >&5
+-$as_echo_n "checking for library containing SZ_Compress... " >&6; }
+-if ${ac_cv_search_SZ_Compress+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char SZ_Compress ();
+-int
+-main ()
+-{
+-return SZ_Compress ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-for ac_lib in '' szip sz; do
+- if test -z "$ac_lib"; then
+- ac_res="none required"
+- else
+- ac_res=-l$ac_lib
+- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+- fi
+- if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_search_SZ_Compress=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext
+- if ${ac_cv_search_SZ_Compress+:} false; then :
+- break
+-fi
+-done
+-if ${ac_cv_search_SZ_Compress+:} false; then :
+-
+-else
+- ac_cv_search_SZ_Compress=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SZ_Compress" >&5
+-$as_echo "$ac_cv_search_SZ_Compress" >&6; }
+-ac_res=$ac_cv_search_SZ_Compress
+-if test "$ac_res" != no; then :
+- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+ $as_echo_n "checking for library containing dlopen... " >&6; }
+ if ${ac_cv_search_dlopen+:} false; then :
+@@ -22380,118 +22231,6 @@ if test "$ac_res" != no; then :
+
+ fi
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing H5Fflush" >&5
+-$as_echo_n "checking for library containing H5Fflush... " >&6; }
+-if ${ac_cv_search_H5Fflush+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char H5Fflush ();
+-int
+-main ()
+-{
+-return H5Fflush ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-for ac_lib in '' hdf5dll hdf5; do
+- if test -z "$ac_lib"; then
+- ac_res="none required"
+- else
+- ac_res=-l$ac_lib
+- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+- fi
+- if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_search_H5Fflush=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext
+- if ${ac_cv_search_H5Fflush+:} false; then :
+- break
+-fi
+-done
+-if ${ac_cv_search_H5Fflush+:} false; then :
+-
+-else
+- ac_cv_search_H5Fflush=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_H5Fflush" >&5
+-$as_echo "$ac_cv_search_H5Fflush" >&6; }
+-ac_res=$ac_cv_search_H5Fflush
+-if test "$ac_res" != no; then :
+- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing H5DSis_scale" >&5
+-$as_echo_n "checking for library containing H5DSis_scale... " >&6; }
+-if ${ac_cv_search_H5DSis_scale+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+- ac_func_search_save_LIBS=$LIBS
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char H5DSis_scale ();
+-int
+-main ()
+-{
+-return H5DSis_scale ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-for ac_lib in '' hdf5_hldll hdf5_hl; do
+- if test -z "$ac_lib"; then
+- ac_res="none required"
+- else
+- ac_res=-l$ac_lib
+- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+- fi
+- if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_search_H5DSis_scale=$ac_res
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext
+- if ${ac_cv_search_H5DSis_scale+:} false; then :
+- break
+-fi
+-done
+-if ${ac_cv_search_H5DSis_scale+:} false; then :
+-
+-else
+- ac_cv_search_H5DSis_scale=no
+-fi
+-rm conftest.$ac_ext
+-LIBS=$ac_func_search_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_H5DSis_scale" >&5
+-$as_echo "$ac_cv_search_H5DSis_scale" >&6; }
+-ac_res=$ac_cv_search_H5DSis_scale
+-if test "$ac_res" != no; then :
+- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+-
+-fi
+-
+
+ # Find the netCDF header and library.
+ for ac_header in netcdf.h
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch b/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch
new file mode 100644
index 0000000000..fadeb8cfe6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch
@@ -0,0 +1,13 @@
+--- a/fortran/nf_logging.F90
++++ b/fortran/nf_logging.F90
+@@ -1,3 +1,10 @@
++! This file is compiled only if logging is enabled. However, the macro LOGGING
++! is never defined. For most of the compilers this simply leads to an empty
++! object: they do not complain when a source file is empty. This is not the
++! case for NAG: the compiler fails the compilation of empty sources. To fix
++! this problem, we define the macro here.
++#define LOGGING
++
+ #ifdef LOGGING
+ ! Function to turn on logging
+ !-------------------------------- nf_set_log_level ----------------------------
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch
new file mode 100644
index 0000000000..73fbdbd03b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch
@@ -0,0 +1,124 @@
+--- a/configure
++++ b/configure
+@@ -9584,6 +9584,10 @@ for cc_temp in $compiler""; do
+ esac
+ done
+ cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++case $cc_basename in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
++esac
+
+
+ # Only perform the check for file, if the check method requires it
+@@ -10657,6 +10661,10 @@ _LT_EOF
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
++ nagfor*)
++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object=yes
++ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+@@ -13415,6 +13423,10 @@ $RM -r conftest*
+ esac
+ done
+ cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++case $cc_basename in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
++esac
+
+ GCC=$G77
+ if test -n "$compiler"; then
+@@ -14252,6 +14264,10 @@ _LT_EOF
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec_F77=
+ tmp_sharedflag='--shared' ;;
++ nagfor*)
++ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object_F77=yes
++ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+@@ -16142,6 +16158,10 @@ $RM -r conftest*
+ esac
+ done
+ cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++case $cc_basename in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;;
++esac
+
+
+ if test -n "$compiler"; then
+@@ -17142,6 +17162,10 @@ _LT_EOF
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec_FC=
+ tmp_sharedflag='--shared' ;;
++ nagfor*)
++ whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
++ compiler_needs_object_FC=yes
++ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -180,6 +180,24 @@ func_basename ()
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+ } # func_basename may be replaced by extended shell implementation
+
++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
++func_cc_basename ()
++{
++ for cc_temp in $*""; do
++ case $cc_temp in
++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
++ \-*) ;;
++ *) break;;
++ esac
++ done
++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++ case $func_cc_basename_result in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
++ esac
++}
++
+
+ # func_dirname_and_basename file append nondir_replacement
+ # perform func_basename and func_dirname in a single function
+@@ -6422,6 +6440,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8007,6 +8032,14 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch
new file mode 100644
index 0000000000..dfb47fd5f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch
@@ -0,0 +1,96 @@
+--- a/configure
++++ b/configure
+@@ -9034,6 +9034,12 @@ func_cc_basename ()
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++
++ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90).
++ case $func_cc_basename_result in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
++ esac
+ }
+
+ # Check whether --enable-libtool-lock was given.
+@@ -11811,6 +11817,8 @@ _LT_EOF
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -15663,6 +15671,8 @@ _LT_EOF
+ whole_archive_flag_spec_F77=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_F77=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -18788,6 +18798,8 @@ _LT_EOF
+ whole_archive_flag_spec_FC=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_FC=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -26086,6 +26098,12 @@ func_cc_basename ()
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
++
++ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90).
++ case $func_cc_basename_result in
++ nagfor*) ;;
++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;;
++ esac
+ }
+
+
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -7868,6 +7868,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8890,7 +8897,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9502,6 +9510,14 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch
new file mode 100644
index 0000000000..4c730f94c8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch
@@ -0,0 +1,11 @@
+--- a/nf_test/ftst_rengrps.F
++++ b/nf_test/ftst_rengrps.F
+@@ -11,7 +11,7 @@ C use typeSizes
+ C use netcdf
+ C use netcdf4_f03
+ implicit none
+- include "netcdf.inc"
++ include "netcdf.inc"
+
+ C This is the name of the data file we will create.
+ character (len = *), parameter :: FILE_NAME = "ftst_rengrps.nc"
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
index e3703fd609..5aed9697cd 100644
--- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
@@ -13,7 +13,9 @@ class NetcdfFortran(AutotoolsPackage):
distribution."""
homepage = "https://www.unidata.ucar.edu/software/netcdf"
- url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.5.2.tar.gz"
+ url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-fortran-4.5.2.tar.gz"
+
+ maintainers = ['skosukhin']
version('4.5.2', sha256='b959937d7d9045184e9d2040a915d94a7f4d0185f4a9dceb8f08c94b0c3304aa')
version('4.4.5', sha256='2467536ce29daea348c736476aa8e684c075d2f6cab12f3361885cb6905717b8')
@@ -24,6 +26,7 @@ class NetcdfFortran(AutotoolsPackage):
description='Enable parallel I/O for netcdf-4')
variant('pic', default=True,
description='Produce position-independent code (for shared libs)')
+ variant('shared', default=True, description='Enable shared library')
# We need to build with MPI wrappers if parallel I/O features is enabled:
# https://www.unidata.ucar.edu/software/netcdf/docs/building_netcdf_fortran.html
@@ -34,42 +37,79 @@ class NetcdfFortran(AutotoolsPackage):
# The default libtool.m4 is too old to handle NAG compiler properly:
# https://github.com/Unidata/netcdf-fortran/issues/94
- patch('nag.patch', when='@:4.4.4%nag')
+ # Moreover, Libtool can't handle '-pthread' flag coming from libcurl,
+ # doesn't inject convenience libraries into the shared ones, and is unable
+ # to detect NAG when it is called with an MPI wrapper.
+ patch('nag_libtool_2.4.2.patch', when='@:4.4.4%nag')
+ patch('nag_libtool_2.4.6.patch', when='@4.4.5:%nag')
+
+ # Enable 'make check' for NAG, which is too strict.
+ patch('nag_testing.patch', when='@4.4.5%nag')
+
+ # File fortran/nf_logging.F90 is compiled without -DLOGGING, which leads
+ # to missing symbols in the library. Additionally, the patch enables
+ # building with NAG, which refuses to compile empty source files (see also
+ # comments in the patch):
+ patch('logging.patch', when='@:4.4.5')
+
+ # Prevent excessive linking to system libraries. Without this patch the
+ # library might get linked to the system installation of libcurl. See
+ # https://github.com/Unidata/netcdf-fortran/commit/0a11f580faebbc1c4dce68bf5135709d1c7c7cc1#diff-67e997bcfdac55191033d57a16d1408a
+ patch('excessive_linking.patch', when='@4.4.5')
# Parallel builds do not work in the fortran directory. This patch is
# derived from https://github.com/Unidata/netcdf-fortran/pull/211
patch('no_parallel_build.patch', when='@4.5.2')
def flag_handler(self, name, flags):
+ config_flags = None
+
if name in ['cflags', 'fflags'] and '+pic' in self.spec:
- flags.append(self.compiler.pic_flag)
+ # Unlike NetCDF-C, we add PIC flag only when +pic. Adding the
+ # flags also when ~shared would make it impossible to build a
+ # static-only version of the library with NAG.
+ config_flags = [self.compiler.pic_flag]
elif name == 'cppflags':
- flags.append(self.spec['netcdf-c'].headers.cpp_flags)
+ config_flags = [self.spec['netcdf-c'].headers.cpp_flags]
elif name == 'ldflags':
# We need to specify LDFLAGS to get correct dependency_libs
# in libnetcdff.la, so packages that use libtool for linking
# could correctly link to all the dependencies even when the
# building takes place outside of Spack environment, i.e.
# without Spack's compiler wrappers.
- flags.append(self.spec['netcdf-c'].libs.search_flags)
+ config_flags = [self.spec['netcdf-c'].libs.search_flags]
- return None, None, flags
+ return flags, None, config_flags
@property
def libs(self):
libraries = ['libnetcdff']
- # This package installs both shared and static libraries. Permit
- # clients to query which one they want.
query_parameters = self.spec.last_query.extra_parameters
- shared = 'shared' in query_parameters
- return find_libraries(
+ if 'shared' in query_parameters:
+ shared = True
+ elif 'static' in query_parameters:
+ shared = False
+ else:
+ shared = '+shared' in self.spec
+
+ libs = find_libraries(
libraries, root=self.prefix, shared=shared, recursive=True
)
+ if libs:
+ return libs
+
+ msg = 'Unable to recursively locate {0} {1} libraries in {2}'
+ raise spack.error.NoLibrariesError(
+ msg.format('shared' if shared else 'static',
+ self.spec.name,
+ self.spec.prefix))
+
def configure_args(self):
- config_args = []
+ config_args = self.enable_or_disable('shared')
+ config_args.append('--enable-static')
if '+mpi' in self.spec:
config_args.append('CC=%s' % self.spec['mpi'].mpicc)
@@ -77,3 +117,8 @@ class NetcdfFortran(AutotoolsPackage):
config_args.append('F77=%s' % self.spec['mpi'].mpif77)
return config_args
+
+ @when('@:4.4.5')
+ def check(self):
+ with working_dir(self.build_directory):
+ make('check', parallel=False)
diff --git a/var/spack/repos/builtin/packages/nfs-utils/package.py b/var/spack/repos/builtin/packages/nfs-utils/package.py
new file mode 100644
index 0000000000..be46c57030
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nfs-utils/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class NfsUtils(AutotoolsPackage):
+ """The NFS Utilities package contains the userspace server and client tools
+ necessary to use the kernel's NFS abilities. NFS is a protocol that allows
+ sharing file systems over the network."""
+
+ homepage = "http://linux-nfs.org/"
+ url = "https://sourceforge.net/projects/nfs/files/nfs-utils/2.4.2/nfs-utils-2.4.2.tar.gz/download"
+
+ version('2.4.2', sha256='bb08106cd7bd397c6cc34e2461bc7818a664450d2805da08b07e1ced88e5155f')
+ version('2.4.1', sha256='c0dda96318af554881f4eb1590bfe91f1aba2fba59ed2ac3ba099f80fdf838e9')
+ version('2.3.4', sha256='36e70b0a583751ead0034ebe5d8826caf2dcc7ee7c0beefe94d6ee5a3b0b2484')
+
+ depends_on('libtirpc')
+ depends_on('libevent')
+ depends_on('libdmx')
+ depends_on('lvm2')
+ depends_on('keyutils')
+ depends_on('sqlite')
+ depends_on('util-linux')
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', '-lintl')
+
+ def configure_args(self):
+ args = ['--disable-gss', '--with-rpcgen=internal']
+ return args
diff --git a/var/spack/repos/builtin/packages/nlopt/package.py b/var/spack/repos/builtin/packages/nlopt/package.py
index c533bf60e8..509218ea83 100644
--- a/var/spack/repos/builtin/packages/nlopt/package.py
+++ b/var/spack/repos/builtin/packages/nlopt/package.py
@@ -17,6 +17,7 @@ class Nlopt(CMakePackage):
git = "https://github.com/stevengj/nlopt.git"
version('master', branch='master')
+ version('2.6.1', sha256='66d63a505187fb6f98642703bd0ef006fedcae2f9a6d1efa4f362ea919a02650')
version('2.5.0', sha256='c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae')
variant('shared', default=True, description='Enables the build of shared libraries')
diff --git a/var/spack/repos/builtin/packages/ntirpc/package.py b/var/spack/repos/builtin/packages/ntirpc/package.py
new file mode 100644
index 0000000000..fa29056e16
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ntirpc/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Ntirpc(CMakePackage):
+ """New development on tirpc"""
+
+ homepage = "https://github.com/nfs-ganesha/ntirpc"
+ url = "https://github.com/nfs-ganesha/ntirpc/archive/v3.2.tar.gz"
+
+ version('3.2', sha256='db1639ca2f15df7e30d8c0a820ed9adf4eb623798db03b56a3659eedff49af76')
+ version('3.1', sha256='280b57db3a37c5b05116a7850460152b1ac53c050fd61ce190f5a5eb55ed3ba1')
+ version('3.0', sha256='9a6b11c1aa3e7f5f1f491bca0275e759de5bed2d73c8a028af7b6aadb68ac795')
+ version('1.8.0', sha256='3bb642dccc8f2506b57a03b5d3358654f59f47b33fddfaa5a7330df4cf336f9f')
+ version('1.7.3', sha256='8713ef095efc44df426bbd2b260ad457e5335bf3008fb97f01b0775c8042e54b')
+
+ depends_on('libnsl')
+ depends_on('userspace-rcu')
diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py
index 34ff99eb93..f155c55c13 100644
--- a/var/spack/repos/builtin/packages/ocaml/package.py
+++ b/var/spack/repos/builtin/packages/ocaml/package.py
@@ -13,11 +13,22 @@ class Ocaml(Package):
homepage = "http://ocaml.org/"
url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz"
+ maintainers = ['scemama']
+
+ version('4.10.0', sha256='58d431dde66f5750ebe9b15d5a1c4872f80d283dec23448689b0d1a498b7e4c7')
+ version('4.09.0', sha256='2b728f8a0e90da14f22fdc04660f2ab33819cdbb12bff0ceae3fdbb0133cf7a6')
+ version('4.08.1', sha256='ee50118ee88472fd4b64311fa560f8f8ab66a1899f0117815c69a16070980f78')
+ version('4.08.0', sha256='e6e244f893f2070ebcdeac0637fbe2054fd82deebefefa3e3ed85a405cd4ecd8')
+ version('4.07.1', sha256='2ad43be17ed5c74ea27887ae0cc4793b835408180c0b9175bc9ad53082a59af4')
+ version('4.07.0', sha256='50e10b0c4e28300cb889e56839ec9e07e2847a85e04bfbd5a7ed0290b7239ef8')
+ version('4.06.1', sha256='0c38c6f531103e87fab1c218a7e76287d7cb4d7ee4dea64e7f85952af3b1b50e')
version('4.06.0', sha256='c17578e243c4b889fe53a104d8927eb8749c7be2e6b622db8b3c7b386723bf50')
version('4.03.0', sha256='7fdf280cc6c0a2de4fc9891d0bf4633ea417046ece619f011fd44540fcfc8da2')
depends_on('ncurses')
+ sanity_check_file = ['bin/ocaml']
+
def url_for_version(self, version):
url = "http://caml.inria.fr/pub/distrib/ocaml-{0}/ocaml-{1}.tar.gz"
return url.format(str(version)[:-2], version)
diff --git a/var/spack/repos/builtin/packages/opam/package.py b/var/spack/repos/builtin/packages/opam/package.py
index 179fad0bd9..d25999f89e 100644
--- a/var/spack/repos/builtin/packages/opam/package.py
+++ b/var/spack/repos/builtin/packages/opam/package.py
@@ -16,14 +16,35 @@ class Opam(AutotoolsPackage):
homepage = "https://opam.ocaml.org/"
url = "https://github.com/ocaml/opam/releases/download/1.2.2/opam-full-1.2.2.tar.gz"
+ maintainers = ['scemama']
+
+ version('2.0.6', sha256='7c4bff5e5f3628ad00c53ee1b044ced8128ffdcfbb7582f8773fb433e12e07f4')
+ version('2.0.5', sha256='776c7e64d6e24c2ef1efd1e6a71d36e007645efae94eaf860c05c1929effc76f')
+ version('2.0.4', sha256='debfb828b400fb511ca290f1bfc928db91cad74ec1ccbddcfdbfeff26f7099e5')
+ version('2.0.3', sha256='0589da4da184584a5445d59385009536534f60bc0e27772245b2f49e5fa8f0e2')
+ version('2.0.2', sha256='eeb99fdda4b10ad3467a700fa4d1dfedb30714837d18d2faf1ef9c87d94cf0bc')
+ version('2.0.1', sha256='81f7f1b661a0c1e04642fe02d0bea5524b32aa2cbed0ecf9b18d7145324ed97c')
+ version('2.0.0', sha256='9dad4fcb4f53878c9daa6285d8456ccc671e21bfa71544d1f926fb8a63bfed25')
version('1.2.2', sha256='15e617179251041f4bf3910257bbb8398db987d863dd3cfc288bdd958de58f00')
version('1.2.1', sha256='f210ece7a2def34b486c9ccfb75de8febd64487b2ea4a14a7fa0358f37eacc3b')
- depends_on('ocaml') # Not a strict dependency, but recommended
+ # OCaml 4.10.0 has removed the -safe-string flag, which is necessary
+ # for OPAM 1i (see docstring of setup_build_environment).
+ depends_on('ocaml@:4.09.0', type='build', when='@:1.2.2')
+ depends_on('ocaml', type='build', when='@2.0.0:')
parallel = False
+ sanity_check_is_file = ['bin/opam']
+
+ @when('@:1.2.2')
def setup_build_environment(self, env):
+ ''' In OCaml <4.06.1, the default was -safe-string=0, and this has
+ changed in OCaml >=4.06.1. OPAM version 1 was written before 4.06.1
+ was released, so OPAM <2.0 assumes mutable strings and requires the
+ safe-string=0 flag. This is not true with OPAM >=2.0, so the flag
+ should not be set.'''
+
# Environment variable setting taken from
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/opam.rb
env.set('OCAMLPARAM', 'safe-string=0,_') # OCaml 4.06.0 compat
@@ -31,4 +52,5 @@ class Opam(AutotoolsPackage):
def build(self, spec, prefix):
make('lib-ext')
make()
- make('man')
+ if spec.satisfies('@:1.2.2'):
+ make('man')
diff --git a/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch b/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch
new file mode 100644
index 0000000000..a61f3b3c00
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch
@@ -0,0 +1,14 @@
+diff --git a/lapack-netlib/SRC/sorhr_col.f b/lapack-netlib/SRC/sorhr_col.f
+index 38976245..600c19fb 100644
+--- a/lapack-netlib/SRC/sorhr_col.f
++++ b/lapack-netlib/SRC/sorhr_col.f
+@@ -282,7 +282,8 @@
+ $ NPLUSONE
+ * ..
+ * .. External Subroutines ..
+- EXTERNAL SCOPY, SLAORHR_COL_GETRFNP, SSCAL, STRSM, XERBLA
++ EXTERNAL SCOPY, SLAORHR_COL_GETRFNP, SSCAL, STRSM,
++ $ XERBLA
+ * ..
+ * .. Intrinsic Functions ..
+ INTRINSIC MAX, MIN
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index 0ad58605c4..71d2ec4a6b 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -18,6 +18,7 @@ class Openblas(MakefilePackage):
git = 'https://github.com/xianyi/OpenBLAS.git'
version('develop', branch='develop')
+ version('0.3.9', sha256='17d4677264dfbc4433e97076220adc79b050e4f8a083ea3f853a53af253bc380')
version('0.3.8', sha256='8f86ade36f0dbed9ac90eb62575137388359d97d8f93093b38abe166ad7ef3a8')
version('0.3.7', sha256='bde136122cef3dd6efe2de1c6f65c10955bbb0cc01a520c2342f5287c28f9379')
version('0.3.6', sha256='e64c8fe083832ffbc1459ab6c72f71d53afd3b36e8497c922a15a06b72e9002f')
@@ -37,7 +38,7 @@ class Openblas(MakefilePackage):
variant('ilp64', default=False, description='Force 64-bit Fortran native integers')
variant('pic', default=True, description='Build position independent code')
variant('shared', default=True, description='Build shared libraries')
- variant('consistentFPCSR', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)')
+ variant('consistent_fpcsr', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)')
variant(
'threads', default='none',
@@ -59,6 +60,8 @@ class Openblas(MakefilePackage):
patch('openblas_icc_openmp.patch', when='@:0.2.20%intel@16.0:')
patch('openblas_icc_fortran.patch', when='%intel@16.0:')
patch('openblas_icc_fortran2.patch', when='%intel@18.0:')
+ # See https://github.com/spack/spack/issues/15385
+ patch('lapack-0.3.9-xerbl.patch', when='@0.3.8: %intel')
# Fixes compilation error on POWER8 with GCC 7
# https://github.com/xianyi/OpenBLAS/pull/1098
@@ -93,7 +96,10 @@ class Openblas(MakefilePackage):
# Add conditions to f_check to determine the Fujitsu compiler
patch('openblas_fujitsu.patch', when='%fj')
+ # See https://github.com/spack/spack/issues/3036
conflicts('%intel@16', when='@0.2.15:0.2.19')
+ conflicts('+consistent_fpcsr', when='threads=none',
+ msg='FPCSR consistency only applies to multithreading')
@property
def parallel(self):
@@ -136,12 +142,23 @@ class Openblas(MakefilePackage):
return micros
- @staticmethod
- def _microarch_target_args(microarch, available_targets):
+ def _microarch_target_args(self):
"""Given a spack microarchitecture and a list of targets found in
OpenBLAS' TargetList.txt, determine the best command-line arguments.
"""
- args = [] # Return value
+ # Read available openblas targets
+ targetlist_name = join_path(self.stage.source_path, "TargetList.txt")
+ if os.path.exists(targetlist_name):
+ with open(targetlist_name) as f:
+ available_targets = self._read_targets(f)
+ else:
+ available_targets = []
+
+ # Get our build microarchitecture
+ microarch = self.spec.target
+
+ # List of arguments returned by this function
+ args = []
# List of available architectures, and possible aliases
openblas_arch = set(['alpha', 'arm', 'ia64', 'mips', 'mips64',
@@ -165,11 +182,14 @@ class Openblas(MakefilePackage):
if microarch.name in available_targets:
break
- arch_name = microarch.family.name
- if arch_name in openblas_arch:
- # Apply possible spack->openblas arch name mapping
- arch_name = openblas_arch_map.get(arch_name, arch_name)
- args.append('ARCH=' + arch_name)
+ if self.version >= Version("0.3"):
+ # 'ARCH' argument causes build errors in older OpenBLAS
+ # see https://github.com/spack/spack/issues/15385
+ arch_name = microarch.family.name
+ if arch_name in openblas_arch:
+ # Apply possible spack->openblas arch name mapping
+ arch_name = openblas_arch_map.get(arch_name, arch_name)
+ args.append('ARCH=' + arch_name)
if microarch.vendor == 'generic':
# User requested a generic platform, or we couldn't find a good
@@ -189,8 +209,6 @@ class Openblas(MakefilePackage):
@property
def make_defs(self):
- spec = self.spec
-
# Configure fails to pick up fortran from FC=/abs/path/to/fc, but
# works fine with FC=/abs/path/to/gfortran.
# When mixing compilers make sure that
@@ -208,13 +226,7 @@ class Openblas(MakefilePackage):
make_defs.append('MAKE_NB_JOBS=0') # flag provided by OpenBLAS
# Add target and architecture flags
- targetlist_name = join_path(self.stage.source_path, "TargetList.txt")
- if os.path.exists(targetlist_name):
- with open(targetlist_name) as f:
- avail_targets = self._read_targets(f)
- else:
- avail_targets = []
- make_defs += self._microarch_target_args(spec.target, avail_targets)
+ make_defs += self._microarch_target_args()
if '~shared' in self.spec:
if '+pic' in self.spec:
@@ -241,7 +253,7 @@ class Openblas(MakefilePackage):
# Synchronize floating-point control and status register (FPCSR)
# between threads (x86/x86_64 only).
- if '+consistentFPCSR' in self.spec:
+ if '+consistent_fpcsr' in self.spec:
make_defs += ['CONSISTENT_FPCSR=1']
# Prevent errors in `as` assembler from newer instructions
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 95abf6368a..7adacd1eef 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -105,8 +105,7 @@ class Opencv(CMakePackage, CudaPackage):
# the current development branch of OpenCV. See #8461 for more information.
patch('dnn_cuda.patch', when='@3.3.0:3.4.1+cuda+dnn')
- depends_on('eigen~mpfr', when='+eigen', type='build')
-
+ depends_on('eigen', when='+eigen')
depends_on('zlib', when='+zlib')
depends_on('libpng', when='+png')
depends_on('jpeg', when='+jpeg')
diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py
index f741db61d9..72fd615805 100644
--- a/var/spack/repos/builtin/packages/openfoam/package.py
+++ b/var/spack/repos/builtin/packages/openfoam/package.py
@@ -825,10 +825,12 @@ class OpenfoamArch(object):
self.arch_option = '-march=knl'
# spec.architecture.platform is like `uname -s`, but lower-case
- platform = spec.architecture.platform
+ platform = str(spec.architecture.platform)
# spec.target.family is like `uname -m`
- target = spec.target.family
+ target = str(spec.target.family)
+
+ # No spack platform family for ia64 or armv7l
if platform == 'linux':
if target == 'x86_64':
diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch
new file mode 100644
index 0000000000..3d20169718
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch
@@ -0,0 +1,49 @@
+--- a/config/ltmain.sh
++++ b/config/ltmain.sh
+@@ -7860,14 +7860,15 @@ func_mode_link ()
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+- # and "-pthread" to "-Wl,-pthread" if NAG compiler
+ if test -n "$inherited_linker_flags"; then
+- case "$CC" in
+- *nagfor*)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;;
+- *)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
+- esac
++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8887,7 +8888,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9499,6 +9501,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch
new file mode 100644
index 0000000000..af1b600039
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch
@@ -0,0 +1,49 @@
+--- a/config/ltmain.sh
++++ b/config/ltmain.sh
+@@ -7860,14 +7860,15 @@ func_mode_link ()
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+- # and "-pthread" to "-Wl,-pthread" if NAG compiler
+ if test -n "$inherited_linker_flags"; then
+- case "$CC" in
+- nagfor*)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;;
+- *)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
+- esac
++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8887,7 +8888,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9499,6 +9501,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch
new file mode 100644
index 0000000000..0d4250001a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch
@@ -0,0 +1,40 @@
+--- a/config/ltmain.sh
++++ b/config/ltmain.sh
+@@ -7862,6 +7862,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8881,7 +8888,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9493,6 +9501,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch
new file mode 100644
index 0000000000..82bdb9f752
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch
@@ -0,0 +1,49 @@
+--- a/config/ltmain.sh
++++ b/config/ltmain.sh
+@@ -7860,14 +7860,15 @@ func_mode_link ()
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+- # and "-pthread" to "-Wl,-pthread" if NAG compiler
+ if test -n "$inherited_linker_flags"; then
+- case "$CC" in
+- nagfor*)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread'`;;
+- *)
+- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
+- esac
++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8887,7 +8888,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9499,6 +9501,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh b/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh
index b6defd69f0..61ee50c53d 100755
--- a/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh
+++ b/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh
@@ -3,7 +3,7 @@ echo "This version of Spack (openmpi ~legacylaunchers schedulers=slurm) "
echo "is installed without the mpiexec/mpirun commands to prevent "
echo "unintended performance issues. See https://github.com/spack/spack/pull/10340 "
echo "for more details."
-echo "If you understand the potential consequences of a misconfigured `mpirun`, you can"
-echo "use spack to install `openmpi+legacylaunchers` to restore the executables."
-echo "Otherwise, use `srun` to launch your MPI executables."
+echo "If you understand the potential consequences of a misconfigured mpirun, you can"
+echo "use spack to install 'openmpi+legacylaunchers' to restore the executables."
+echo "Otherwise, use srun to launch your MPI executables."
exit 2
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index aac0c4c60b..a2b75bd67e 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -80,9 +80,10 @@ class Openmpi(AutotoolsPackage):
version('develop', branch='master')
# Current
- version('4.0.2', sha256='900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057') # libmpi.so.40.20.2
+ version('4.0.3', sha256='1402feced8c3847b3ab8252165b90f7d1fa28c23b6b2ca4632b6e4971267fd03') # libmpi.so.40.20.3
# Still supported
+ version('4.0.2', sha256='900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057') # libmpi.so.40.20.2
version('4.0.1', sha256='cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709') # libmpi.so.40.20.1
version('4.0.0', sha256='2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b') # libmpi.so.40.20.0
version('3.1.5', preferred=True, sha256='fbf0075b4579685eec8d56d34d4d9c963e6667825548554f5bf308610af72133') # libmpi.so.40.10.4
@@ -193,7 +194,7 @@ class Openmpi(AutotoolsPackage):
patch('llnl-platforms.patch', when="@1.6.5")
patch('configure.patch', when="@1.10.1")
patch('fix_multidef_pmi_class.patch', when="@2.0.0:2.0.1")
- patch('fix-ucx-1.7.0-api-instability.patch', when='@4.0.0:4.0.3')
+ patch('fix-ucx-1.7.0-api-instability.patch', when='@4.0.0:4.0.2')
# Vader Bug: https://github.com/open-mpi/ompi/issues/5375
# Haven't release fix for 2.1.x
@@ -203,6 +204,13 @@ class Openmpi(AutotoolsPackage):
patch('btl_vader.patch', when='@3.0.1:3.0.2')
patch('btl_vader.patch', when='@3.1.0:3.1.2')
+ # Reported upstream: https://github.com/open-mpi/ompi/pull/6378
+ # We support only versions based on Libtool 2.4.6.
+ patch('nag_ltmain_1.patch', when='@2.1.4:2.1.999,3.0.1:4%nag')
+ patch('nag_ltmain_2.patch', when='@2.1.2:2.1.3,3.0.0%nag')
+ patch('nag_ltmain_3.patch', when='@2.0.0:2.1.1%nag')
+ patch('nag_ltmain_4.patch', when='@1.10.4:1.10.999%nag')
+
variant(
'fabrics',
values=disjoint_sets(
@@ -398,6 +406,7 @@ class Openmpi(AutotoolsPackage):
spec = self.spec
config_args = [
'--enable-shared',
+ '--disable-silent-rules'
]
# Add extra_rpaths dirs from compilers.yaml into link wrapper
diff --git a/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch
new file mode 100644
index 0000000000..f190f12ff1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch
@@ -0,0 +1,23 @@
+From 61ccc18cdd478c6281466f1f77de416559234dd8 Mon Sep 17 00:00:00 2001
+From: Axel Huebl <axel.huebl@plasma.ninja>
+Date: Tue, 17 Mar 2020 10:51:20 -0700
+Subject: [PATCH] HDF5: H5Oget_info Compatibility
+
+Update to work with HDF5 1.12.0 signature.
+Macro for older releases.
+---
+ src/IO/HDF5/HDF5IOHandler.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/IO/HDF5/HDF5IOHandler.cpp b/src/IO/HDF5/HDF5IOHandler.cpp
+index 7043861b..c125e1f4 100644
+--- a/src/IO/HDF5/HDF5IOHandler.cpp
++++ b/src/IO/HDF5/HDF5IOHandler.cpp
+@@ -1535,3 +1535,7 @@ void HDF5IOHandlerImpl::listAttributes(Writable* writable,
+ H5O_info_t object_info;
+ herr_t status;
++#if H5_VERSION_GE(1,12,0)
++ status = H5Oget_info(node_id, &object_info, H5O_INFO_NUM_ATTRS);
++#else
+ status = H5Oget_info(node_id, &object_info);
++#endif
diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py
index 46ac2eaecb..1459a11271 100644
--- a/var/spack/repos/builtin/packages/openpmd-api/package.py
+++ b/var/spack/repos/builtin/packages/openpmd-api/package.py
@@ -15,6 +15,7 @@ class OpenpmdApi(CMakePackage):
maintainers = ['ax3l']
version('dev', branch='dev')
+ version('0.11.0', tag='0.11.0-alpha')
version('0.10.3', tag='0.10.3-alpha')
version('0.10.2', tag='0.10.2-alpha')
version('0.10.1', tag='0.10.1-alpha')
@@ -54,6 +55,10 @@ class OpenpmdApi(CMakePackage):
extends('python', when='+python')
+ # Fix breaking HDF5 1.12.0 API
+ # https://github.com/openPMD/openPMD-api/pull/696
+ patch('hdf5-1.12.0.patch', when='@:0.11.0 +hdf5')
+
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index 56f9b0c689..a0cf6e46cd 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -96,7 +96,7 @@ class Openspeedshop(CMakePackage):
depends_on("libxml2")
- depends_on("qt@3", when='gui=qt3')
+ depends_on("qt@3:3.9", when='gui=qt3')
# Dependencies for the openspeedshop cbtf packages.
depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py
index 450990c179..3f8e4647c4 100644
--- a/var/spack/repos/builtin/packages/openssl/package.py
+++ b/var/spack/repos/builtin/packages/openssl/package.py
@@ -25,6 +25,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
# The latest stable version is the 1.1.1 series. This is also our Long Term
# Support (LTS) version, supported until 11th September 2023.
+ version('1.1.1e', sha256='694f61ac11cb51c9bf73f54e771ff6022b0327a43bbdfa1b2f19de1662a6dcbe')
version('1.1.1d', sha256='1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2')
version('1.1.1c', sha256='f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90')
version('1.1.1b', sha256='5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b')
@@ -45,6 +46,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
# Our previous LTS version (1.0.2 series) will continue to be supported
# until 31st December 2019 (security fixes only during the last year of
# support).
+ version('1.0.2u', sha256='ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16')
version('1.0.2t', sha256='14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc')
version('1.0.2s', sha256='cabd5c9492825ce5bd23f3c3aeed6a97f8142f606d893df216411f07d1abab96')
version('1.0.2r', sha256='ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6')
diff --git a/var/spack/repos/builtin/packages/opensubdiv/package.py b/var/spack/repos/builtin/packages/opensubdiv/package.py
new file mode 100644
index 0000000000..69f9aeba4c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/opensubdiv/package.py
@@ -0,0 +1,85 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+
+
+class Opensubdiv(CMakePackage, CudaPackage):
+ """OpenSubdiv is a set of open source libraries that
+ implement high performance subdivision surface (subdiv)
+ evaluation on massively parallel CPU and GPU architectures.
+ This code path is optimized for drawing deforming surfaces
+ with static topology at interactive framerates."""
+
+ homepage = "http://graphics.pixar.com/opensubdiv/docs/intro.html"
+ url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_4_0.tar.gz"
+ git = "https://github.com/PixarAnimationStudios/OpenSubdiv"
+
+ version('develop', branch='dev')
+ version('3_4_0', sha256='d932b292f83371c7518960b2135c7a5b931efb43cdd8720e0b27268a698973e4')
+
+ variant('tbb', default=False, description='Builds with Intel TBB support')
+ variant('openmp', default=False, description='Builds with OpenMP support')
+ variant('doc', default=False, description='Builds documentation. Requires Python 2')
+
+ depends_on('cmake@2.8.6:', type='build')
+ depends_on('graphviz', type='build', when='+doc')
+ depends_on('doxygen', type='build', when='+doc')
+ depends_on('py-docutils', type='build', when='+doc')
+ depends_on('python@2.6:2.999', type='build', when='+doc')
+ depends_on('gl')
+ depends_on('glew@1.9.0:')
+ depends_on('glfw@3.0.0:')
+ depends_on('intel-tbb@4.0:', when='+tbb')
+ depends_on('libxrandr')
+ depends_on('libxcursor')
+ depends_on('libxinerama')
+ depends_on('llvm-openmp', when='+openmp')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+
+ args.append('-DNO_EXAMPLES=1') # disable examples build
+ args.append('-DNO_TUTORIALS=1') # disable tutorials build
+ args.append('-DNO_REGRESSION=1') # disable regression tests build
+ args.append('-DNO_PTEX=1') # disable PTex support
+ args.append('-DNO_OPENCL=1') # disable OpenCL
+ args.append('-DNO_CLEW=1') # disable CLEW wrapper library
+ args.append('-DNO_METAL=1') # disable Metal
+
+ args.append('-DNO_OPENGL=0') # OpenGL always on
+ args.append('-DGLEW_LOCATION={0}'.format(spec['glew'].prefix))
+
+ if '+cuda' in spec:
+ args.append('-DNO_CUDA=0')
+
+ cuda_arch = [x for x in spec.variants['cuda_arch'].value if x]
+ if cuda_arch:
+ args.append('-DOSD_CUDA_NVCC_FLAGS={0}'.format(
+ ' '.join(self.cuda_flags(cuda_arch))))
+ else:
+ args.append('-DOSD_CUDA_NVCC_FLAGS=')
+
+ else:
+ args.append('-DNO_CUDA=1')
+
+ if '+tbb' in spec:
+ args.append('-DNO_TBB=0')
+ else:
+ args.append('-DNO_TBB=1')
+
+ if '+doc' in spec:
+ args.append('-DNO_DOC=0')
+ else:
+ args.append('-DNO_DOC=1')
+
+ if '+openmp' in spec:
+ args.append('-DNO_OMP=0')
+ else:
+ args.append('-DNO_OMP=1')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py
index c6dc408eb6..6e0b6cb817 100644
--- a/var/spack/repos/builtin/packages/papi/package.py
+++ b/var/spack/repos/builtin/packages/papi/package.py
@@ -23,6 +23,7 @@ class Papi(Package):
maintainers = ['G-Ragghianti']
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
+ version('6.0.0', sha256='3442709dae3405c2845b304c06a8b15395ecf4f3899a89ceb4d715103cb4055f')
version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589')
version('5.6.0', sha256='49b7293f9ca2d74d6d80bd06b5c4be303663123267b4ac0884cbcae4c914dc47')
version('5.5.1', sha256='49dc2c2323f6164c4a7e81b799ed690ee73158671205e71501f849391dd2c2d4')
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch b/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch
new file mode 100644
index 0000000000..f391c1dc5e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch
@@ -0,0 +1,69 @@
+--- a/configure
++++ b/configure
+@@ -11745,6 +11745,8 @@ _LT_EOF
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -21030,6 +21032,8 @@ _LT_EOF
+ whole_archive_flag_spec_F77=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_F77=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+@@ -24765,6 +24769,8 @@ _LT_EOF
+ whole_archive_flag_spec_FC=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
++ compiler_needs_object_FC=yes
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+--- a/scripts/ltmain.sh
++++ b/scripts/ltmain.sh
+@@ -7862,6 +7862,13 @@ func_mode_link ()
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
++
++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;;
++ esac
++
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+@@ -8881,7 +8888,8 @@ func_mode_link ()
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+- case $CC in
++ func_cc_basename $CC
++ case $func_cc_basename_result in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+@@ -9493,6 +9501,13 @@ EOF
+ ;;
+ esac
+
++ # Time to revert the changes made for nagfor.
++ func_cc_basename $CC
++ case $func_cc_basename_result in
++ nagfor*)
++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;;
++ esac
++
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
index 34a1af5984..384717d05e 100644
--- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
@@ -25,7 +25,6 @@ class ParallelNetcdf(AutotoolsPackage):
return url.format(version.dotted)
- version('develop', branch='develop')
version('master', branch='master')
version('1.12.1', sha256='56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2')
version('1.11.2', sha256='d2c18601b364c35b5acb0a0b46cd6e14cae456e0eb854e5c789cf65f3cd6a2a7')
@@ -42,41 +41,74 @@ class ParallelNetcdf(AutotoolsPackage):
variant('fortran', default=True, description='Build the Fortran Interface')
variant('pic', default=True,
description='Produce position-independent code (for shared libs)')
+ variant('shared', default=True, description='Enable shared library')
depends_on('mpi')
depends_on('m4', type='build')
+ depends_on('autoconf', when='@master', type='build')
+ depends_on('automake', when='@master', type='build')
+ depends_on('libtool', when='@master', type='build')
- # See:
- # https://trac.mcs.anl.gov/projects/parallel-netcdf/browser/trunk/INSTALL
- def configure_args(self):
- spec = self.spec
+ conflicts('+shared', when='@:1.9%nag+fortran')
+ conflicts('+shared', when='@:1.8')
+
+ patch('nag_libtool.patch', when='@1.9:1.12.1%nag')
- args = ['--with-mpi={0}'.format(spec['mpi'].prefix)]
- args.append('MPICC={0}'.format(spec['mpi'].mpicc))
- args.append('MPICXX={0}'.format(spec['mpi'].mpicxx))
- args.append('MPIF77={0}'.format(spec['mpi'].mpifc))
- args.append('MPIF90={0}'.format(spec['mpi'].mpifc))
- args.append('SEQ_CC={0}'.format(spack_cc))
+ @property
+ def libs(self):
+ libraries = ['libpnetcdf']
- if '+pic' in spec:
- args.extend([
- 'CFLAGS={0}'.format(self.compiler.pic_flag),
- 'CXXFLAGS={0}'.format(self.compiler.pic_flag),
- 'FFLAGS={0}'.format(self.compiler.pic_flag)
- ])
+ query_parameters = self.spec.last_query.extra_parameters
+
+ if 'shared' in query_parameters:
+ shared = True
+ elif 'static' in query_parameters:
+ shared = False
+ else:
+ shared = '+shared' in self.spec
- if '~cxx' in spec:
- args.append('--disable-cxx')
+ libs = find_libraries(
+ libraries, root=self.prefix, shared=shared, recursive=True
+ )
- if '~fortran' in spec:
- args.append('--disable-fortran')
+ if libs:
+ return libs
- if spec.satisfies('@1.8.0:'):
+ msg = 'Unable to recursively locate {0} {1} libraries in {2}'
+ raise spack.error.NoLibrariesError(
+ msg.format('shared' if shared else 'static',
+ self.spec.name,
+ self.spec.prefix))
+
+ @when('@master')
+ def autoreconf(self, spec, prefix):
+ with working_dir(self.configure_directory):
+ # We do not specify '-f' because we need to use libtool files from
+ # the repository.
+ autoreconf('-iv')
+
+ def configure_args(self):
+ args = ['--with-mpi=%s' % self.spec['mpi'].prefix,
+ 'SEQ_CC=%s' % spack_cc]
+
+ args += self.enable_or_disable('cxx')
+ args += self.enable_or_disable('fortran')
+
+ if '+pic' in self.spec:
+ args.extend(['{0}FLAGS={1}'.format(lang, self.compiler.pic_flag)
+ for lang in ['C', 'CXX', 'F', 'FC']])
+
+ if self.version >= Version('1.8'):
args.append('--enable-relax-coord-bound')
- return args
+ if self.version >= Version('1.9'):
+ args += self.enable_or_disable('shared')
+ args.extend(['--enable-static',
+ '--disable-silent-rules'])
+
+ if self.spec.satisfies('%nag+fortran+shared'):
+ args.extend(['ac_cv_prog_fc_v=-Wl,-v',
+ 'ac_cv_prog_f77_v=-Wl,-v'])
- def install(self, spec, prefix):
- # Installation fails in parallel
- make('install', parallel=False)
+ return args
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 111c8df7a4..48dff877e0 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -20,6 +20,7 @@ class Paraview(CMakePackage, CudaPackage):
maintainers = ['chuckatkins', 'danlipsa']
version('develop', branch='master', submodules=True)
+ version('5.8.0', sha256='219e4107abf40317ce054408e9c3b22fb935d464238c1c00c0161f1c8697a3f9')
version('5.7.0', sha256='e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874')
version('5.6.2', sha256='1f3710b77c58a46891808dbe23dc59a1259d9c6b7bb123aaaeaa6ddf2be882ea')
version('5.6.0', sha256='cb8c4d752ad9805c74b4a08f8ae6e83402c3f11e38b274dba171b99bb6ac2460')
diff --git a/var/spack/repos/builtin/packages/perfstubs/package.py b/var/spack/repos/builtin/packages/perfstubs/package.py
new file mode 100644
index 0000000000..9162e749fc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perfstubs/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Perfstubs(CMakePackage):
+ """Profiling API for adding tool instrumentation support to any project.
+
+ This was motivated by the need to quickly add instrumentation to the
+ [ADIOS2](https://github.com/ornladios/ADIOS2) library without adding a build
+ dependency, or tying to a specific measurement tool.
+
+ The initial prototype implementation was tied to TAU, but evolved to this more
+ generic version, which was extracted as a separate repository for testing and
+ demonstration purposes.
+ """
+
+ homepage = "https://github.com/khuck/perfstubs"
+ git = "https://github.com/khuck/perfstubs.git"
+
+ version('master', branch='master')
+ variant('static', default=False, description='Build static executable support')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DPERFSTUBS_USE_STATIC:BOOL={0}'.format(
+ 'ON' if '+static' in spec else 'OFF')
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/perl-want/package.py b/var/spack/repos/builtin/packages/perl-want/package.py
index 8cf43446ba..82b926234a 100644
--- a/var/spack/repos/builtin/packages/perl-want/package.py
+++ b/var/spack/repos/builtin/packages/perl-want/package.py
@@ -9,7 +9,7 @@ from spack import *
class PerlWant(PerlPackage):
"""A generalisation of wantarray."""
- homepage = "search.cpan.org/~robin/Want/Want.pm"
+ homepage = "http://search.cpan.org/~robin/Want/Want.pm"
url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/Want-0.29.tar.gz"
version('0.29', sha256='b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7')
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 88332caec9..577f53a163 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -24,6 +24,7 @@ class Petsc(Package):
version('develop', branch='master')
version('xsdk-0.2.0', tag='xsdk-0.2.0')
+ version('3.12.4', sha256='56a941130da93bbacb3cfa74dcacea1e3cd8e36a0341f9ced09977b1457084c3')
version('3.12.3', sha256='91f77d7b0f54056f085b9e27938922db3d9bb1734a2e2a6d26f43d3e6c0cf631')
version('3.12.2', sha256='d874b2e198c4cb73551c2eca1d2c5d27da710be4d00517adb8f9eb3d6d0375e8')
version('3.12.1', sha256='b72d895d0f4a79acb13ebc782b47b26d10d4e5706d399f533afcd5b3dba13737')
@@ -99,6 +100,8 @@ class Petsc(Package):
description='Activate X support')
variant('batch', default=False,
description='Enable when mpiexec is not available to run binaries')
+ variant('valgrind', default=False,
+ description='Enable Valgrind Client Request mechanism')
# 3.8.0 has a build issue with MKL - so list this conflict explicitly
conflicts('^intel-mkl', when='@3.8.0')
@@ -143,9 +146,10 @@ class Petsc(Package):
depends_on('metis@5:~int64', when='@3.8:+metis~int64')
depends_on('metis@5:+int64', when='@3.8:+metis+int64')
- depends_on('hdf5+mpi+hl+fortran', when='+hdf5+mpi')
+ depends_on('hdf5@:1.10.99+mpi+hl+fortran', when='+hdf5+mpi')
depends_on('zlib', when='+hdf5')
depends_on('parmetis', when='+metis+mpi')
+ depends_on('valgrind', when='+valgrind')
# Hypre does not support complex numbers.
# Also PETSc prefer to build it without internal superlu, likely due to
# conflict in headers see
@@ -160,8 +164,8 @@ class Petsc(Package):
depends_on('hypre@develop~internal-superlu~int64', when='@develop+hypre+mpi~complex~int64')
depends_on('superlu-dist@:4.3~int64', when='@3.4.4:3.6.4+superlu-dist+mpi~int64')
depends_on('superlu-dist@:4.3+int64', when='@3.4.4:3.6.4+superlu-dist+mpi+int64')
- depends_on('superlu-dist@5.0.0:~int64', when='@3.7:3.7.99+superlu-dist+mpi~int64')
- depends_on('superlu-dist@5.0.0:+int64', when='@3.7:3.7.99+superlu-dist+mpi+int64')
+ depends_on('superlu-dist@5.0.0:5.1.3~int64', when='@3.7:3.7.99+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@5.0.0:5.1.3+int64', when='@3.7:3.7.99+superlu-dist+mpi+int64')
depends_on('superlu-dist@5.2:5.2.99~int64', when='@3.8:3.9.99+superlu-dist+mpi~int64')
depends_on('superlu-dist@5.2:5.2.99+int64', when='@3.8:3.9.99+superlu-dist+mpi+int64')
depends_on('superlu-dist@5.4:5.4.99~int64', when='@3.10:3.10.2+superlu-dist+mpi~int64')
@@ -280,7 +284,7 @@ class Petsc(Package):
# Activates library support if needed
for library in ('metis', 'hdf5', 'hypre', 'parmetis',
- 'mumps', 'trilinos', 'fftw'):
+ 'mumps', 'trilinos', 'fftw', 'valgrind'):
options.append(
'--with-{library}={value}'.format(
library=library, value=('1' if library in spec else '0'))
diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py
index 30704ac62e..ab6bc53d2c 100644
--- a/var/spack/repos/builtin/packages/pfunit/package.py
+++ b/var/spack/repos/builtin/packages/pfunit/package.py
@@ -30,10 +30,14 @@ class Pfunit(CMakePackage):
variant('shared', default=True,
description='Build shared library in addition to static')
variant('mpi', default=False, description='Enable MPI')
- variant('use_comm_world', default=False, description='Enable MPI_COMM_WORLD for testing')
+ variant('use_comm_world', default=False,
+ description='Enable MPI_COMM_WORLD for testing')
variant('openmp', default=False, description='Enable OpenMP')
variant('docs', default=False, description='Build docs')
+ variant('max_array_rank', values=int, default=5,
+ description='Max number of Fortran dimensions of array asserts')
+
depends_on('python@2.7:', type=('build', 'run')) # python3 too!
depends_on('mpi', when='+mpi')
@@ -53,7 +57,8 @@ class Pfunit(CMakePackage):
'-DBUILD_SHARED=%s' % ('YES' if '+shared' in spec else 'NO'),
'-DCMAKE_Fortran_MODULE_DIRECTORY=%s' % spec.prefix.include,
'-DBUILD_DOCS=%s' % ('YES' if '+docs' in spec else 'NO'),
- '-DOPENMP=%s' % ('YES' if '+openmp' in spec else 'NO')]
+ '-DOPENMP=%s' % ('YES' if '+openmp' in spec else 'NO'),
+ '-DMAX_RANK=%s' % spec.variants['max_array_rank'].value]
if spec.satisfies('+mpi'):
args.extend(['-DMPI=YES', '-DMPI_USE_MPIEXEC=YES',
diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py
index 783bf75faa..aa6e60ddcc 100644
--- a/var/spack/repos/builtin/packages/pgi/package.py
+++ b/var/spack/repos/builtin/packages/pgi/package.py
@@ -20,6 +20,7 @@ class Pgi(Package):
homepage = "http://www.pgroup.com/"
+ version('19.10', sha256='ac9db73ba80a66fe3bc875f63aaa9e16f54674a4e88b25416432430ba8cf203d')
version('19.4', sha256='23eee0d4da751dd6f247d624b68b03538ebd172e63a053c41bb67013f07cf68e')
version('19.1', sha256='3e05a6db2bf80b5d15f6ff83188f20cb89dc23e233417921e5c0822e7e57d34f')
version('18.10', sha256='4b3ff83d2a13de6001bed599246eff8e63ef711b8952d4a9ee12efd666b3e326')
@@ -90,6 +91,9 @@ class Pgi(Package):
def setup_run_environment(self, env):
prefix = Prefix(join_path(self.prefix, 'linux86-64', self.version))
+ env.prepend_path('PATH', prefix.bin)
+ env.prepend_path('MANPATH', prefix.man)
+ env.prepend_path('LD_LIBRARY_PATH', prefix.lib)
env.set('CC', join_path(prefix.bin, 'pgcc'))
env.set('CXX', join_path(prefix.bin, 'pgc++'))
env.set('F77', join_path(prefix.bin, 'pgfortran'))
diff --git a/var/spack/repos/builtin/packages/php/package.py b/var/spack/repos/builtin/packages/php/package.py
new file mode 100644
index 0000000000..714bfb0e8f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/php/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Php(AutotoolsPackage):
+ """
+ PHP is a popular general-purpose scripting language that is especially
+ suited to web development. Fast, flexible and pragmatic, PHP powers
+ everything from your blog to the most popular websites in the world.
+ """
+
+ homepage = "https://php.net/"
+ url = "https://github.com/php/php-src/archive/php-7.3.13.tar.gz"
+
+ version('7.4.1', sha256='4d9d7c5681bec3af38a935d033657dce09a9913498f8022d7ca163a7f2f493a7')
+ version('7.4.0', sha256='91d34b48025ab9789216df89e247b6904912eeeaeff38c300ef314bdda8920b0')
+ version('7.3.13', sha256='e68b8d9e659f2993eee912f05860e546fdc18e459f31cd2771f404df21285f0b')
+ version('7.3.12', sha256='d0672ea84c0ab184f636acff3230d376d89a2067d59a87a2f1842361ee1f97d6')
+ version('7.3.11', sha256='4d861b2f3bc640ded8b591ce87250161392a6244a3c84042da0c06fd8c500eb2')
+ version('7.2.26', sha256='da132a836cec8021c00f22952e6044d91628ee3d2ef92a95d65cf91bad810600')
+ version('7.2.25', sha256='049b2d291c45cb889d15fcd2bac6da7d15ca5d535d272d2f8879fb834bbf276e')
+ version('7.2.24', sha256='334c9915733f6a29e1462f64038b1b4b1b21cb18f4f5f980add86792b5550ab3')
+ version('7.1.33', sha256='f80a795a09328a9441bae4a8a60fa0d6d43ec5adc98f5aa5f51d06f4522c07fe')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('bison', type='build')
+ depends_on('re2c', type='build')
+ depends_on('libxml2')
+ depends_on('sqlite')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./buildconf', '--force')
diff --git a/var/spack/repos/builtin/packages/pinentry/package.py b/var/spack/repos/builtin/packages/pinentry/package.py
new file mode 100644
index 0000000000..3a9e6e526c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pinentry/package.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Pinentry(AutotoolsPackage):
+ """pinentry is a small collection of dialog programs that allow GnuPG to
+ read passphrases and PIN numbers in a secure manner. There are versions for
+ the common GTK and Qt toolkits as well as for the text terminal (Curses).
+ """
+
+ homepage = "https://gnupg.org/related_software/pinentry/index.html"
+ url = "https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2"
+
+ version('1.1.0', sha256='68076686fa724a290ea49cdf0d1c0c1500907d1b759a3bcbfbec0293e8f56570')
+
+ depends_on('libgpg-error@1.16:')
+ depends_on('libassuan@2.1.0:')
+
+ def configure_args(self):
+ return [
+ # Autotools automatically enables these if dependencies found
+ # TODO: add variants for these
+ '--disable-pinentry-curses',
+ '--disable-pinentry-emacs',
+ '--disable-pinentry-gtk2',
+ '--disable-pinentry-gnome3',
+ '--disable-pinentry-qt',
+ '--disable-pinentry-qt5',
+ '--disable-pinentry-tqt',
+ '--disable-pinentry-fltk',
+
+ # No dependencies, simplest installation
+ '--enable-pinentry-tty',
+
+ # Disable extra features
+ '--disable-fallback-curses',
+ '--disable-inside-emacs',
+ '--disable-libsecret',
+
+ # Required dependencies
+ '--with-gpg-error-prefix=' + self.spec['libgpg-error'].prefix,
+ '--with-libassuan-prefix=' + self.spec['libassuan'].prefix,
+ ]
diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py
index c8b1f8e9b9..b51d3c12c2 100644
--- a/var/spack/repos/builtin/packages/plumed/package.py
+++ b/var/spack/repos/builtin/packages/plumed/package.py
@@ -25,8 +25,9 @@ class Plumed(AutotoolsPackage):
git = 'https://github.com/plumed/plumed2.git'
version('master', branch='master')
- version('2.6b', sha256='3ecda9d46967c8ddd08e820aed974794d926cffb78b262f9d42cdbece3b15677')
- version('2.5.3', preferred=True, sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc')
+ version('2.6.0', sha256='3d57ae460607a49547ef38a52c4ac93493a3966857c352280a9c05f5dcdb1820')
+ version('2.5.4', preferred=True, sha256='a1647e598191f261e75d06351e607475d395af481315052a4c28563ac9989a7f')
+ version('2.5.3', sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc')
version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4')
version('2.5.1', sha256='de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba')
version('2.5.0', sha256='53e08187ec9f8af2326fa84407e34644a7c51d2af93034309fb70675eee5e4f7')
@@ -68,6 +69,7 @@ class Plumed(AutotoolsPackage):
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
+ depends_on('py-cython', type='build', when='@2.5:')
force_autoreconf = True
diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py
index 097ec9aab1..95c881ae6c 100644
--- a/var/spack/repos/builtin/packages/portage/package.py
+++ b/var/spack/repos/builtin/packages/portage/package.py
@@ -60,6 +60,6 @@ class Portage(CMakePackage):
self.spec['lapack'].libs.joined())
options.append("-DLAPACKE_LIBRARY=" +
- self.spec["lapack"].libs.joined(";"))
+ self.spec["lapack:c"].libs.joined(";"))
return options
diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py
index 22556719e4..40661e4329 100644
--- a/var/spack/repos/builtin/packages/precice/package.py
+++ b/var/spack/repos/builtin/packages/precice/package.py
@@ -19,6 +19,7 @@ class Precice(CMakePackage):
maintainers = ['fsimonis', 'MakisH']
version('develop', branch='develop')
+ version('2.0.1', sha256='e4fe2d2063042761ab325f8c802f88ae088c90862af288ad1a642967d074bd50')
version('2.0.0', sha256='c8979d366f06e35626a8da08a1c589df77ec13972eb524a1ba99a011e245701f')
version('1.6.1', sha256='7d0c54faa2c69e52304f36608d93c408629868f16f3201f663a0f9b2008f0763')
version('1.6.0', sha256='c3b16376fda9eb3449adb6cc3c1e267c3dc792a5d118e37d93a32a59b5a4bc6f')
diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py
index 0923d3a961..05702d9fc9 100644
--- a/var/spack/repos/builtin/packages/protobuf/package.py
+++ b/var/spack/repos/builtin/packages/protobuf/package.py
@@ -39,6 +39,9 @@ class Protobuf(CMakePackage):
variant('shared', default=True,
description='Enables the build of shared libraries')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/py-arviz/package.py b/var/spack/repos/builtin/packages/py-arviz/package.py
new file mode 100644
index 0000000000..20e1be3839
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-arviz/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyArviz(PythonPackage):
+ """ArviZ (pronounced "AR-vees") is a Python package for exploratory
+ analysis of Bayesian models. Includes functions for posterior analysis,
+ model checking, comparison and diagnostics."""
+
+ homepage = "http://github.com/arviz-devs/arviz"
+ url = "https://pypi.io/packages/source/a/arviz/arviz-0.6.1.tar.gz"
+
+ version('0.6.1', sha256='435edf8db49c41a8fa198f959e7581063006c49a4efdef4755bb778db6fd4f72')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-matplotlib@3.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.12:', type=('build', 'run'))
+ depends_on('py-scipy@0.19:', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+ depends_on('py-pandas@0.23:', type=('build', 'run'))
+ depends_on('py-xarray@0.11:', type=('build', 'run'))
+ depends_on('py-netcdf4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-astpretty/package.py b/var/spack/repos/builtin/packages/py-astpretty/package.py
new file mode 100644
index 0000000000..b6b4e9855f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-astpretty/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyAstpretty(PythonPackage):
+ """Pretty print the output of python stdlib `ast.parse`."""
+
+ homepage = "https://github.com/asottile/astpretty"
+ url = "https://pypi.io/packages/source/a/astpretty/astpretty-2.0.0.tar.gz"
+
+ version('2.0.0', sha256='e4724bfd753636ba4a84384702e9796e5356969f40af2596d846ce64addde086')
+
+ variant('typed', default=False, description='Add support for typed comments')
+
+ depends_on('python@3.6.1:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-typed-ast', type=('build', 'run'), when='+typed')
diff --git a/var/spack/repos/builtin/packages/py-audioread/package.py b/var/spack/repos/builtin/packages/py-audioread/package.py
new file mode 100644
index 0000000000..b69f22b720
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-audioread/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyAudioread(PythonPackage):
+ """cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for
+ Python."""
+
+ homepage = "https://github.com/beetbox/audioread"
+ url = "https://pypi.io/packages/source/a/audioread/audioread-2.1.8.tar.gz"
+
+ version('2.1.8', sha256='073904fabc842881e07bd3e4a5776623535562f70b1655b635d22886168dd168')
+
+ depends_on('py-setuptools', type='build')
+ # the following does not seem to be used for building but is listed in
+ # setup.py
+ depends_on('py-pytest-runner', type='build')
diff --git a/var/spack/repos/builtin/packages/py-auxlib/package.py b/var/spack/repos/builtin/packages/py-auxlib/package.py
new file mode 100644
index 0000000000..4d18101e5d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-auxlib/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyAuxlib(PythonPackage):
+ """Auxlib is an auxiliary library to the python standard library."""
+
+ homepage = "https://github.com/kalefranz/auxlib"
+ url = "https://pypi.io/packages/source/a/auxlib/auxlib-0.0.43.tar.gz"
+
+ version('0.0.43', sha256='0f175637e96a090a785767ce28483cf1aeec316a19afce9b2fbd113e1122786a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
+ depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6')
+ depends_on('py-wheel', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py
new file mode 100644
index 0000000000..92cd2b6d72
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyBasisSetExchange(PythonPackage):
+ """Command-line interface for the Basis Set Exchange Website"""
+
+ homepage = "https://www.basissetexchange.org"
+ url = "https://github.com/MolSSI-BSE/basis_set_exchange/archive/v0.8.12.tar.gz"
+
+ maintainers = ['bennybp', 'scemama']
+
+ version('0.8.12', sha256='41f0242e2c11392c511d3308c0345e14b0eb3344686d865bdfcb48257910fc0d')
+ version('0.8.11', sha256='dbd4cf9382d97b79a3143c6b2086d1d24562bd13e0ab0d18fc0423b9ee877b9b')
+ version('0.8.10', sha256='7f974faf513791d59ef47dd4eba9d8386f75bbd85f253ca5c08732ff56004a57')
+ version('0.8.9', sha256='faf01a00c8ef7cf7331562052fbf1ff861e901545a927310ab09ac03604b400b')
+ version('0.8.8', sha256='4770bc901b93bfbf1aa5e1c4b486804753b3ff19c41794d3200ffe990b12dfa1')
+ version('0.8.7', sha256='5e9e18ca84bd378d1e02b6543cee122d8cc4efeaf05b1801061b500dda4cb2fc')
+ version('0.8.6', sha256='96da4ab45adaab11825917dc4cf0e236f5d2f0af0f2e026578262ce389784912')
+ version('0.8.5', sha256='ff8e6e03474319245e641c9da05715a6ea90dccab0e60ad2b0bc8556f85a9bca')
+ version('0.8.4', sha256='005f95794ce55f1b1e8faa0b6910b814819dd4ee9dba367a3ec29dfe53816684')
+ version('0.8.3', sha256='0721f3cf55f588f62d74a408bccdd44046ebeaab8ec802c02fae7983d8f0359f')
+
+ depends_on('py-argcomplete', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-pytest@4.0:', type='test')
+ depends_on('py-pytest-cov', type='test')
diff --git a/var/spack/repos/builtin/packages/py-bx-python/package.py b/var/spack/repos/builtin/packages/py-bx-python/package.py
index ee4dfff7fc..3d73b21d18 100644
--- a/var/spack/repos/builtin/packages/py-bx-python/package.py
+++ b/var/spack/repos/builtin/packages/py-bx-python/package.py
@@ -11,10 +11,17 @@ class PyBxPython(PythonPackage):
to allow for rapid implementation of genome scale analyses."""
homepage = "https://github.com/bxlab/bx-python"
- url = "https://github.com/bxlab/bx-python/archive/v0.7.4.tar.gz"
+ url = "https://pypi.io/packages/source/b/bx-python/bx-python-0.8.8.tar.gz"
- version('0.7.4', sha256='1066d1e56d062d0661f23c19942eb757bd7ab7cb8bc7d89a72fdc3931c995cb4')
+ version('0.8.8', sha256='ad0808ab19c007e8beebadc31827e0d7560ac0e935f1100fb8cc93607400bb47')
+ version('0.7.4',
+ sha256='1066d1e56d062d0661f23c19942eb757bd7ab7cb8bc7d89a72fdc3931c995cb4',
+ url="https://github.com/bxlab/bx-python/archive/v0.7.4.tar.gz")
+ depends_on('python@2.4:2.7', type=('build', 'run'), when='@:0.7')
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@0.8:')
depends_on('py-setuptools', type='build')
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-python-lzo', type=('build', 'run'), when='@:0.7')
+ depends_on('py-cython', type='build', when='@0.8:')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@0.8:')
diff --git a/var/spack/repos/builtin/packages/py-cnvkit/package.py b/var/spack/repos/builtin/packages/py-cnvkit/package.py
new file mode 100644
index 0000000000..17d4508b15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cnvkit/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyCnvkit(PythonPackage):
+ """Copy number variation toolkit for high-throughput sequencing."""
+
+ homepage = "https://github.com/etal/cnvkit"
+ url = "https://pypi.io/packages/source/C/CNVkit/CNVkit-0.9.6.tar.gz"
+
+ version('0.9.6', sha256='be889c98a5cf0a994330b8c31c0a65151fb0095fe4e75a1e04118da2516248c2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-futures@3.0:', type=('build', 'run'), when='^python@:2.7')
+ depends_on('py-biopython@1.62:', type=('build', 'run'))
+ depends_on('py-future@0.15.2:', type=('build', 'run'))
+ depends_on('py-pomegranate@0.9.0:', type=('build', 'run'))
+ depends_on('py-matplotlib@1.3.1:', type=('build', 'run'))
+ depends_on('py-numpy@1.9:', type=('build', 'run'))
+ depends_on('py-pandas@0.20.1:0.24.999', type=('build', 'run'))
+ depends_on('py-pyfaidx@0.4.7:', type=('build', 'run'))
+ depends_on('py-pysam@0.10.0:', type=('build', 'run'))
+ depends_on('py-reportlab@3.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.15.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-contextlib2/package.py b/var/spack/repos/builtin/packages/py-contextlib2/package.py
index c4409c8497..7231512b35 100644
--- a/var/spack/repos/builtin/packages/py-contextlib2/package.py
+++ b/var/spack/repos/builtin/packages/py-contextlib2/package.py
@@ -15,6 +15,7 @@ class PyContextlib2(PythonPackage):
url = "https://github.com/jazzband/contextlib2/archive/v0.6.0.tar.gz"
version('0.6.0', sha256='4f18e2f28bb642aae9447aacec93b1319c8ee838711553c0a2bd906753f2ad33')
+ version('0.5.5', sha256='613569263db0271f34c8484792360272a731f2185567c31c8118e9c994412170')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py
index 80174932ee..d174fc8a1f 100644
--- a/var/spack/repos/builtin/packages/py-decorator/package.py
+++ b/var/spack/repos/builtin/packages/py-decorator/package.py
@@ -12,8 +12,9 @@ class PyDecorator(PythonPackage):
various non-trivial examples."""
homepage = "https://github.com/micheles/decorator"
- url = "https://pypi.io/packages/source/d/decorator/decorator-4.4.0.tar.gz"
+ url = "https://pypi.io/packages/source/d/decorator/decorator-4.4.2.tar.gz"
+ version('4.4.2', sha256='e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7')
version('4.4.0', sha256='86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de')
version('4.3.2', sha256='33cd704aea07b4c28b3eb2c97d288a06918275dac0ecebdaf1bc8a48d98adb9e')
version('4.3.0', sha256='c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c')
diff --git a/var/spack/repos/builtin/packages/py-deprecated/package.py b/var/spack/repos/builtin/packages/py-deprecated/package.py
new file mode 100644
index 0000000000..7d1fe4af93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-deprecated/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyDeprecated(PythonPackage):
+ """Python @deprecated decorator to deprecate old python classes,
+ functions or methods."""
+
+ homepage = "https://github.com/tantale/deprecated"
+ url = "https://github.com/tantale/deprecated/archive/v1.2.7.tar.gz"
+
+ version("1.2.7", sha256="7db3c814ddcac9d79c5bae8a0e82a5bba55cb8e46f3d611d0d8611c34a72a783")
+
+ depends_on("python@2.7:2.8,3.4:", type=("build", "run"))
+ depends_on("py-wrapt@1.10:1.99999", type=("build", "run"))
+ depends_on("py-setuptools", type="build")
diff --git a/var/spack/repos/builtin/packages/py-dgl/package.py b/var/spack/repos/builtin/packages/py-dgl/package.py
new file mode 100644
index 0000000000..336d69edf2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dgl/package.py
@@ -0,0 +1,94 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyDgl(CMakePackage):
+ """Deep Graph Library (DGL).
+
+ DGL is an easy-to-use, high performance and scalable Python package for
+ deep learning on graphs. DGL is framework agnostic, meaning if a deep graph
+ model is a component of an end-to-end application, the rest of the logics
+ can be implemented in any major frameworks, such as PyTorch, Apache MXNet
+ or TensorFlow."""
+
+ homepage = "https://www.dgl.ai/"
+ git = "https://github.com/dmlc/dgl.git"
+
+ maintainers = ['adamjstewart']
+
+ version('master', branch='master', submodules=True)
+ version('0.4.2', tag='0.4.2', submodules=True)
+
+ variant('cuda', default=True, description='Build with CUDA')
+ variant('openmp', default=True, description='Build with OpenMP')
+ variant('backend', default='pytorch', description='Default backend',
+ values=['pytorch', 'mxnet', 'tensorflow'], multi=False)
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('cuda', when='+cuda')
+ depends_on('llvm-openmp', when='%clang platform=darwin +openmp')
+
+ # Python dependencies
+ extends('python')
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy@1.14.0:', type=('build', 'run'))
+ depends_on('py-scipy@1.1.0:', type=('build', 'run'))
+ depends_on('py-networkx@2.1:', type=('build', 'run'))
+
+ # Backends
+ depends_on('py-torch@0.4.1:', when='backend=pytorch', type='run')
+ depends_on('mxnet@1.5:', when='backend=mxnet', type='run')
+ depends_on('py-tensorflow@2.0:', when='backend=tensorflow', type='run')
+ depends_on('py-tfdlpack', when='backend=tensorflow', type='run')
+
+ build_directory = 'build'
+
+ def cmake_args(self):
+ args = []
+
+ if '+cuda' in self.spec:
+ args.append('-DUSE_CUDA=ON')
+ else:
+ args.append('-DUSE_CUDA=OFF')
+
+ if '+openmp' in self.spec:
+ args.append('-DUSE_OPENMP=ON')
+
+ if self.spec.satisfies('%clang platform=darwin'):
+ args.extend([
+ '-DOpenMP_CXX_FLAGS=' +
+ self.spec['llvm-openmp'].headers.include_flags,
+ '-DOpenMP_CXX_LIB_NAMES=' +
+ self.spec['llvm-openmp'].libs.names[0],
+ '-DOpenMP_C_FLAGS=' +
+ self.spec['llvm-openmp'].headers.include_flags,
+ '-DOpenMP_C_LIB_NAMES=' +
+ self.spec['llvm-openmp'].libs.names[0],
+ '-DOpenMP_omp_LIBRARY=' +
+ self.spec['llvm-openmp'].libs[0],
+ ])
+ else:
+ args.append('-DUSE_OPENMP=OFF')
+
+ if self.run_tests:
+ args.append('-DBUILD_CPP_TEST=ON')
+ else:
+ args.append('-DBUILD_CPP_TEST=OFF')
+
+ return args
+
+ def install(self, spec, prefix):
+ with working_dir('python'):
+ import os
+ print('Current dir:', os.getcwd())
+ setup_py('install', '--prefix=' + prefix,
+ '--single-version-externally-managed', '--root=/')
+
+ def setup_run_environment(self, env):
+ # https://docs.dgl.ai/install/backend.html
+ backend = self.spec.variants['backend'].value
+ env.set('DGLBACKEND', backend)
diff --git a/var/spack/repos/builtin/packages/py-git-review/package.py b/var/spack/repos/builtin/packages/py-git-review/package.py
index b68538eaac..5f4caa3b5c 100644
--- a/var/spack/repos/builtin/packages/py-git-review/package.py
+++ b/var/spack/repos/builtin/packages/py-git-review/package.py
@@ -12,6 +12,7 @@ class PyGitReview(PythonPackage):
homepage = "http://docs.openstack.org/infra/git-review"
url = "https://pypi.io/packages/source/g/git-review/git-review-1.25.0.tar.gz"
+ version('1.28.0', sha256='8e3aabb7b9484063e49c2504d137609401e32ad5128ff2a5cf43e98d5d3dc15a')
version('1.26.0', sha256='487c3c1d7cc81d02b303a1245e432579f683695c827ad454685b3953f70f0b94')
version('1.25.0', sha256='087e0a7dc2415796a9f21c484a6f652c5410e6ba4562c36291c5399f9395a11d')
diff --git a/var/spack/repos/builtin/packages/py-h5glance/package.py b/var/spack/repos/builtin/packages/py-h5glance/package.py
index 93a1be4028..9d3c3c9171 100644
--- a/var/spack/repos/builtin/packages/py-h5glance/package.py
+++ b/var/spack/repos/builtin/packages/py-h5glance/package.py
@@ -15,7 +15,9 @@ class PyH5glance(PythonPackage):
homepage = "https://github.com/European-XFEL/h5glance"
url = "https://pypi.io/packages/source/h/h5glance/h5glance-0.4.tar.gz"
- version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32')
+ version('0.6', sha256='203369ab614273aaad3419f151e234609bb8390b201b65f678d7e17c57633e35')
+ version('0.5', sha256='bc34ee42429f0440b329083e3f67fbf3d7016a4aed9e8b30911e5905217bc8d9')
+ version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-h5py', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index d09fc71505..5f05081de1 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -11,10 +11,11 @@ class PyH5py(PythonPackage):
HDF5 library from Python."""
homepage = "http://www.h5py.org/"
- url = "https://pypi.io/packages/source/h/h5py/h5py-2.9.0.tar.gz"
+ url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz"
import_modules = ['h5py', 'h5py._hl']
+ version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d')
version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002')
version('2.8.0', sha256='e626c65a8587921ebc7fb8d31a49addfdd0b9a9aa96315ea484c09803337b955')
version('2.7.1', sha256='180a688311e826ff6ae6d3bda9b5c292b90b28787525ddfcb10a29d5ddcae2cc')
@@ -31,6 +32,7 @@ class PyH5py(PythonPackage):
depends_on('py-setuptools', type='build')
# Build and runtime dependencies
+ depends_on('py-cached-property@1.5:', type=('build', 'run'))
depends_on('py-numpy@1.7:', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hatchet/package.py b/var/spack/repos/builtin/packages/py-hatchet/package.py
new file mode 100644
index 0000000000..91df70b61b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-hatchet/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyHatchet(PythonPackage):
+ """Hatchet is an analysis tool for structured tree or graph performance data
+ using an indexed Pandas dataframe."""
+
+ homepage = "https://github.com/LLNL/hatchet"
+ url = "https://github.com/LLNL/hatchet/archive/v1.0.0.tar.gz"
+
+ maintainers = ["slabasan", "bhatele", "tgamblin"]
+
+ version('1.0.0', sha256='efd218bc9152abde0a8006489a2c432742f00283a114c1eeb6d25abc10f5862d')
+
+ depends_on('python@2.7,3:', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-pydot', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-horovod/package.py b/var/spack/repos/builtin/packages/py-horovod/package.py
new file mode 100644
index 0000000000..598e01c6f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-horovod/package.py
@@ -0,0 +1,120 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyHorovod(PythonPackage):
+ """Horovod is a distributed deep learning training framework for
+ TensorFlow, Keras, PyTorch, and Apache MXNet."""
+
+ homepage = "https://github.com/horovod"
+ git = "https://github.com/horovod/horovod.git"
+
+ maintainers = ['adamjstewart']
+
+ version('master', branch='master', submodules=True)
+ version('0.19.1', tag='v0.19.1', submodules=True)
+ version('0.19.0', tag='v0.19.0', submodules=True)
+ version('0.18.2', tag='v0.18.2', submodules=True)
+ version('0.18.1', tag='v0.18.1', submodules=True)
+ version('0.18.0', tag='v0.18.0', submodules=True)
+ version('0.17.1', tag='v0.17.1', submodules=True)
+ version('0.17.0', tag='v0.17.0', submodules=True)
+ version('0.16.4', tag='v0.16.4', submodules=True)
+ version('0.16.3', tag='v0.16.3', submodules=True)
+ version('0.16.2', tag='v0.16.2', submodules=True)
+
+ # Deep learning frameworks
+ variant('pytorch', default=True, description='Enables PyTorch')
+ variant('tensorflow', default=False, description='Enables TensorFlow')
+ variant('mxnet', default=False, description='Enables Apache MXNet')
+
+ # Distributed support
+ variant('gloo', default=False, description='Enables features related to distributed support')
+ variant('mpi', default=True, description='Enables MPI build')
+
+ # GPU support
+ variant('cuda', default=True, description='Enables CUDA build')
+ variant('gpu_allreduce', default='mpi',
+ description='Backend to use for GPU_ALLREDUCE',
+ values=('mpi', 'nccl'), multi=False) # DDL support is deprecated
+ variant('gpu_allgather', default='mpi',
+ description='Backend to use for GPU_ALLGATHER',
+ values=('mpi',), multi=False)
+ variant('gpu_broadcast', default='mpi',
+ description='Backend to use for GPU_BROADCAST',
+ values=('mpi', 'nccl'), multi=False)
+
+ # Required dependencies
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cloudpickle', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+
+ # Deep learning frameworks
+ depends_on('py-torch@0.4.0:', type=('build', 'run'), when='+pytorch')
+ depends_on('py-torch+cuda', type=('build', 'run'), when='+pytorch+cuda')
+ depends_on('py-cffi@1.4.0:', type=('build', 'run'), when='+pytorch')
+ depends_on('py-tensorflow@1.1.0:', type=('build', 'link', 'run'), when='+tensorflow')
+ depends_on('mxnet@1.4.0:+python', type=('build', 'link', 'run'), when='+mxnet')
+ depends_on('mxnet+cuda', type=('build', 'link', 'run'), when='+mxnet+cuda')
+
+ # Distributed support
+ # There does not appear to be a way to use an external Gloo installation
+ depends_on('cmake', type='build', when='+gloo')
+ depends_on('mpi', when='+mpi')
+ depends_on('mpi', when='gpu_allreduce=mpi')
+ depends_on('mpi', when='gpu_allgather=mpi')
+ depends_on('mpi', when='gpu_broadcast=mpi')
+
+ # GPU support
+ depends_on('cuda', when='+cuda')
+ depends_on('nccl@2.0:', when='gpu_allreduce=nccl')
+ depends_on('nccl@2.0:', when='gpu_broadcast=nccl')
+
+ # Test dependencies
+ depends_on('py-mock', type='test')
+ depends_on('py-pytest', type='test')
+ depends_on('py-pytest-forked', type='test')
+
+ conflicts('+gloo', when='platform=darwin', msg='Gloo cannot be compiled on MacOS')
+ conflicts('~gloo~mpi', msg='One of Gloo or MPI are required for Horovod to run')
+ conflicts('~pytorch~tensorflow~mxnet', msg='At least one deep learning backend is required')
+
+ def setup_build_environment(self, env):
+ # Deep learning frameworks
+ if '~pytorch' in self.spec:
+ env.set('HOROVOD_WITHOUT_PYTORCH', 1)
+ if '~tensorflow' in self.spec:
+ env.set('HOROVOD_WITHOUT_TENSORFLOW', 1)
+ if '~mxnet' in self.spec:
+ env.set('HOROVOD_WITHOUT_MXNET', 1)
+
+ # Distributed support
+ if '~gloo' in self.spec:
+ env.set('HOROVOD_WITHOUT_GLOO', 1)
+ if '+mpi' in self.spec:
+ env.set('HOROVOD_WITH_MPI', 1)
+ else:
+ env.set('HOROVOD_WITHOUT_MPI', 1)
+
+ # GPU support
+ if '+cuda' in self.spec:
+ env.set('HOROVOD_CUDA_HOME', self.spec['cuda'].prefix)
+ env.set('HOROVOD_CUDA_INCLUDE',
+ self.spec['cuda'].headers.directories[0])
+ env.set('HOROVOD_CUDA_LIB', self.spec['cuda'].libs.directories[0])
+ if '^nccl' in self.spec:
+ env.set('HOROVOD_NCCL_HOME', self.spec['nccl'].prefix)
+ env.set('HOROVOD_NCCL_INCLUDE',
+ self.spec['nccl'].headers.directories[0])
+ env.set('HOROVOD_NCCL_LIB', self.spec['nccl'].libs.directories[0])
+ env.set('HOROVOD_GPU_ALLREDUCE',
+ self.spec.variants['gpu_allreduce'].value.upper())
+ env.set('HOROVOD_GPU_ALLGATHER',
+ self.spec.variants['gpu_allgather'].value.upper())
+ env.set('HOROVOD_GPU_BROADCAST',
+ self.spec.variants['gpu_broadcast'].value.upper())
+ env.set('HOROVOD_ALLOW_MIXED_GPU_IMPL', 1)
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index d21d272a4b..5bfad819e7 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -18,7 +18,8 @@ class PyIpython(PythonPackage):
version('3.1.0', sha256='532092d3f06f82b1d8d1e5c37097eae19fcf025f8f6a4b670dd49c3c338d5624')
version('2.3.1', sha256='3e98466aa2fe54540bcba9aa6e01a39f40110d67668c297340c4b9514b7cc49c')
- depends_on('python@2.7:2.8,3.3:')
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@:6')
+ depends_on('python@3.5:', type=('build', 'run'), when='@7:')
depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'), when="^python@:3.2")
depends_on('py-pathlib2', type=('build', 'run'), when="^python@:3.3")
@@ -32,5 +33,3 @@ class PyIpython(PythonPackage):
depends_on('py-pexpect', type=('build', 'run'))
depends_on('py-backcall', type=('build', 'run'), when="^python@3.3:")
depends_on('py-appnope', type=('build', 'run'), when='platform=darwin')
-
- conflicts('^python@2.7:2.8', when='@7.0.0:')
diff --git a/var/spack/repos/builtin/packages/py-ipywidgets/package.py b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
index 5f211e977b..11b0989069 100644
--- a/var/spack/repos/builtin/packages/py-ipywidgets/package.py
+++ b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
@@ -12,6 +12,7 @@ class PyIpywidgets(PythonPackage):
homepage = "https://github.com/ipython/ipywidgets"
url = "https://github.com/ipython/ipywidgets/archive/5.2.2.tar.gz"
+ version('7.5.1', sha256='e4253384886aabbaf10966916a2cf9ffa72551bd045d536fa2a379f14b50cec3')
version('7.4.2', sha256='f156165e8a855ed862fdf48e72700bdcd6956d089a2018c5b36d358255d45b2b')
version('5.2.2', sha256='d61ab8bb12b90981a3a6010429816d70eaa041e622043207bcb74239b664d4f3')
@@ -23,6 +24,11 @@ class PyIpywidgets(PythonPackage):
depends_on('py-traitlets@4.2.1:', type=('build', 'run'))
depends_on('py-traitlets@4.3.1:', type=('build', 'run'), when='@6:')
depends_on('py-nbformat@4.2.0:', type=('build', 'run'), when='@6:')
- depends_on('py-widgetsnbextension@3.4.0:3.4.999', type=('build', 'run'), when='@6:')
+ depends_on('py-widgetsnbextension@1.2.6:1.9', type=('build', 'run'),
+ when='@5.2.2')
+ depends_on('py-widgetsnbextension@3.4.0:3.4.999', type=('build', 'run'),
+ when='@7.4.2')
+ depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'),
+ when='@7.5.1')
depends_on('py-mock', type='test', when='^python@2.7:2.8')
depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-jupyter-console/package.py b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
index 990c8a4f7b..0f06d1422d 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-console/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
@@ -12,6 +12,7 @@ class PyJupyterConsole(PythonPackage):
homepage = "https://github.com/jupyter/jupyter_console"
url = "https://github.com/jupyter/jupyter_console/archive/5.0.0.tar.gz"
+ version('6.1.0', sha256='838c95c99ce52978e1660e7a30dd933dede158e2f4da1bc5fad1a8fad44570b7')
version('5.2.0', sha256='371d03aeefcf48967f2f00af4c1709f52d2a688deee33f395c6330e4e8aa171c')
version('5.0.0', sha256='e966b2b5bf9a1e8c5bd11a6335bb11f68ec585ea39b801721b2ed9dd964468fa')
version('4.1.1', sha256='0bb06a1f878d0c44c2f6f66406a80f949bcd86f3508035500af7dceffb9cc7dc')
@@ -19,8 +20,12 @@ class PyJupyterConsole(PythonPackage):
version('4.0.3', sha256='b1867a89b693f247e9089a8f367fa4f27af6eac27930cad2966054adfa7b9aa1')
version('4.0.2', sha256='116a56763899bbb12c762f865372eb52c08619ef070c237c7f1387e192bfd3df')
- depends_on('python@2.7:2.8,3.3:')
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@3.5:', type=('build', 'run'), when='@6:')
depends_on('py-jupyter-client', type=('build', 'run'))
+ depends_on('py-ipython@:5.8.0', type=('build', 'run'), when='@:5')
depends_on('py-ipython', type=('build', 'run'))
depends_on('py-ipykernel', type=('build', 'run'))
depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-prompt-toolkit@1.0.0:1.999', type=('build', 'run'), when='@:5')
+ depends_on('py-prompt-toolkit@2.0.0:2.999,3.0.2:3.0.999', type=('build', 'run'), when='@6:')
diff --git a/var/spack/repos/builtin/packages/py-librosa/package.py b/var/spack/repos/builtin/packages/py-librosa/package.py
new file mode 100644
index 0000000000..c720c12e63
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-librosa/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyLibrosa(PythonPackage):
+ """A python package for music and audio analysis."""
+
+ homepage = "http://github.com/librosa/librosa"
+ url = "https://pypi.io/packages/source/l/librosa/librosa-0.7.2.tar.gz"
+
+ version('0.7.2', sha256='656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-audioread@2.0.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.15.0:', type=('build', 'run'))
+ depends_on('py-scipy@1.0.0:', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.14.0:0.18.999,0.19.1:', type=('build', 'run'))
+ depends_on('py-joblib@0.12:', type=('build', 'run'))
+ depends_on('py-decorator@3.0.0:', type=('build', 'run'))
+ depends_on('py-six@1.3:', type=('build', 'run'))
+ depends_on('py-resampy@0.2.2:', type=('build', 'run'))
+ depends_on('py-numba@0.43.0:', type=('build', 'run'))
+ depends_on('py-soundfile@0.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-llvmlite/package.py b/var/spack/repos/builtin/packages/py-llvmlite/package.py
index ad5e401963..c225e74354 100644
--- a/var/spack/repos/builtin/packages/py-llvmlite/package.py
+++ b/var/spack/repos/builtin/packages/py-llvmlite/package.py
@@ -12,6 +12,7 @@ class PyLlvmlite(PythonPackage):
homepage = "http://llvmlite.readthedocs.io/en/latest/index.html"
url = "https://pypi.io/packages/source/l/llvmlite/llvmlite-0.23.0.tar.gz"
+ version('0.31.0', sha256='22ab2b9d7ec79fab66ac8b3d2133347de86addc2e2df1b3793e523ac84baa3c8')
version('0.29.0', sha256='3adb0d4c9a17ad3dca82c7e88118babd61eeee0ee985ce31fa43ec27aa98c963')
version('0.27.1', sha256='48a1c3ae69fd8920cba153bfed8a46ac46474bc706a2100226df4abffe0000ab')
version('0.26.0', sha256='13e84fe6ebb0667233074b429fd44955f309dead3161ec89d9169145dbad2ebf')
@@ -25,7 +26,11 @@ class PyLlvmlite(PythonPackage):
# llvmlite compatibility information taken from https://github.com/numba/llvmlite#compatibility
depends_on('llvm@7.0:8.0.99', when='@0.29.0:')
- depends_on('llvm@7.0:7.99', when='@0.27.0:0.28.99')
- depends_on('llvm@6.0:6.99', when='@0.23.0:0.26.99')
- depends_on('llvm@4.0:4.99', when='@0.17.0:0.20.99')
+ depends_on('llvm@7.0:7.0.99', when='@0.27.0:0.28.99')
+ depends_on('llvm@6.0:6.0.99', when='@0.23.0:0.26.99')
+ depends_on('llvm@4.0:4.0.99', when='@0.17.0:0.20.99')
depends_on('binutils', type='build')
+
+ def setup_build_environment(self, env):
+ # Need to set PIC flag since this is linking statically with LLVM
+ env.set('CXX_FLTO_FLAGS', '-flto {0}'.format(self.compiler.pic_flag))
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index eb4f5e3da5..4e5dbf9135 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -9,12 +9,11 @@ from spack import *
class PyMatplotlib(PythonPackage):
- """matplotlib is a python 2D plotting library which produces publication
- quality figures in a variety of hardcopy formats and interactive
- environments across platforms."""
+ """Matplotlib is a comprehensive library for creating static, animated,
+ and interactive visualizations in Python."""
- homepage = "https://pypi.python.org/pypi/matplotlib"
- url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.1.3.tar.gz"
+ homepage = "https://matplotlib.org/"
+ url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.2.1.tar.gz"
maintainers = ['adamjstewart']
@@ -28,6 +27,8 @@ class PyMatplotlib(PythonPackage):
'matplotlib.testing.jpl_units'
]
+ version('3.2.1', sha256='ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee')
+ version('3.2.0', sha256='651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4')
version('3.1.3', sha256='db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6')
version('3.1.2', sha256='8e8e2c2fe3d873108735c6ee9884e6f36f467df4a143136209cff303b183bada')
version('3.1.1', sha256='1febd22afe1489b13c6749ea059d392c03261b2950d1d45c17e3aed812080c93')
@@ -84,7 +85,7 @@ class PyMatplotlib(PythonPackage):
depends_on('py-cycler@0.10:', type=('build', 'run'))
depends_on('py-python-dateutil@2.1:', type=('build', 'run'))
depends_on('py-kiwisolver@1.0.1:', type=('build', 'run'), when='@2.2.0:')
- depends_on('py-pyparsing', type=('build', 'run'))
+ depends_on('py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:', type=('build', 'run'))
depends_on('py-pytz', type=('build', 'run'), when='@:2')
depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7')
depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7')
diff --git a/var/spack/repos/builtin/packages/py-merlin/package.py b/var/spack/repos/builtin/packages/py-merlin/package.py
index 7ae05a8014..c4185e9193 100644
--- a/var/spack/repos/builtin/packages/py-merlin/package.py
+++ b/var/spack/repos/builtin/packages/py-merlin/package.py
@@ -7,15 +7,30 @@ from spack import *
class PyMerlin(PythonPackage):
- """A custom version of Phillip J. Eby's setuptools."""
+ """Merlin Workflow for HPC."""
- homepage = "https://pypi.org/project/merlin/"
- url = "https://pypi.io/packages/source/m/merlin/merlin-1.8.tar.gz"
+ homepage = "https://github.com/LLNL/merlin"
+ url = "https://pypi.io/packages/source/m/merlin/merlin-1.4.1.tar.gz"
+ git = "https://github.com/LLNL/merlin.git"
- version('1.8', sha256='a1ba9c13c74daa1724dd3820f1c241d7594d487b11f35347606986028c1881fd')
+ version('1.4.1', sha256='9d515cfdbcde2443892afd92b78dbc5bf2aed2060ed3a336e683188e015bca7c')
+ version('master', branch='master')
+ version('develop', branch='develop')
- depends_on('python@:2', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
- def test(self):
- # Unit tests are missing from tarball
- pass
+ depends_on('py-pytest', type='test')
+
+ depends_on('py-cached-property', type=('build', 'run'))
+ depends_on('py-celery@4.3.0:+redis', type=('build', 'run'))
+ depends_on('py-coloredlogs@10.0:', type=('build', 'run'))
+ depends_on('py-cryptography', type=('build', 'run'))
+ depends_on('py-importlib-resources', when="^python@3.0:3.6.99", type=('build', 'run'))
+ depends_on('py-maestrowf@1.1.7dev0:', when="@1.2.0:", type=('build', 'run'))
+ depends_on('py-maestrowf@1.1.6:', when="@:1.1.99", type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-parse', type=('build', 'run'))
+ depends_on('py-psutil@5.1.0:', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1.2:', type=('build', 'run'))
+ depends_on('py-tabulate', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-merlinwf/package.py b/var/spack/repos/builtin/packages/py-merlinwf/package.py
deleted file mode 100644
index 2082e77997..0000000000
--- a/var/spack/repos/builtin/packages/py-merlinwf/package.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
-
-
-class PyMerlinwf(PythonPackage):
- """Merlin Workflow for HPC."""
-
- homepage = "https://github.com/LLNL/merlin"
- url = "https://pypi.io/packages/source/m/merlinwf/merlinwf-1.2.3.tar.gz"
- git = "https://github.com/LLNL/merlin.git"
-
- version('1.2.3', sha256='6b13a315f3e8e2894ea05d9cc072639f02eaf71ae0fdbd2bafebd1c20c8470ab')
- version('1.1.1', sha256='306055a987e42a79ce348a3f9d71293ed8a9b7f5909c26b6fd233d6a176fff6d')
- version('1.0.5', sha256='d66f50eac84ff9d7aa484f2d9655dc60f0352196d333284d81b6623a6f0aa180')
- version('master', branch='master')
- version('develop', branch='develop')
-
- depends_on('python@3.6:', type=('build', 'run'))
- depends_on('py-setuptools', type=('build', 'run'))
-
- depends_on('py-pytest', type='test')
-
- depends_on('py-cached-property', type=('build', 'run'))
- depends_on('py-celery@4.3.0:+redis', type=('build', 'run'))
- depends_on('py-coloredlogs@10.0:', type=('build', 'run'))
- depends_on('py-cryptography', type=('build', 'run'))
- depends_on('py-importlib-resources', when="^python@3.0:3.6.99", type=('build', 'run'))
- depends_on('py-maestrowf@1.1.7dev0:', when="@1.2.0:", type=('build', 'run'))
- depends_on('py-maestrowf@1.1.6:', when="@:1.1.99", type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-parse', type=('build', 'run'))
- depends_on('py-psutil@5.1.0:', type=('build', 'run'))
- depends_on('py-pyyaml@5.1.2:', type=('build', 'run'))
- depends_on('py-tabulate', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index da616eefd4..04f82dac03 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -9,16 +9,29 @@ from spack import *
class PyNetworkx(PythonPackage):
"""NetworkX is a Python package for the creation, manipulation, and study
of the structure, dynamics, and functions of complex networks."""
+
homepage = "http://networkx.github.io/"
- url = "https://pypi.io/packages/source/n/networkx/networkx-1.11.tar.gz"
+ url = "https://pypi.io/packages/source/n/networkx/networkx-2.4.tar.gz"
- version('2.2', sha256='45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b',
- url='https://pypi.io/packages/source/n/networkx/networkx-2.2.zip')
- version('2.1', sha256='64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1',
- url='https://pypi.io/packages/source/n/networkx/networkx-2.1.zip')
+ version('2.4', sha256='f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64')
+ version('2.3', sha256='8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d')
+ version('2.2', sha256='45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b')
+ version('2.1', sha256='64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1')
+ version('2.0', sha256='cd5ff8f75d92c79237f067e2f0876824645d37f017cfffa5b7c9678cae1454aa')
version('1.11', sha256='0d0e70e10dfb47601cbb3425a00e03e2a2e97477be6f80638fef91d54dd1e4b8')
version('1.10', sha256='ced4095ab83b7451cec1172183eff419ed32e21397ea4e1971d92a5808ed6fb8')
- depends_on('py-decorator', type=('build', 'run'))
- depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.1:')
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('python@3.5:', type=('build', 'run'), when='@2.3:')
depends_on('py-setuptools', type='build')
+ depends_on('py-decorator@3.4.0:', type=('build', 'run'))
+ depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.0:')
+ depends_on('py-decorator@4.3.0:', type=('build', 'run'), when='@2.2:')
+
+ def url_for_version(self, version):
+ ext = 'tar.gz'
+ if Version('2.0') <= version <= Version('2.3'):
+ ext = 'zip'
+
+ url = 'https://pypi.io/packages/source/n/networkx/networkx-{0}.{1}'
+ return url.format(version, ext)
diff --git a/var/spack/repos/builtin/packages/py-numba/package.py b/var/spack/repos/builtin/packages/py-numba/package.py
index a6f4175e07..c3c288a4ae 100644
--- a/var/spack/repos/builtin/packages/py-numba/package.py
+++ b/var/spack/repos/builtin/packages/py-numba/package.py
@@ -12,18 +12,22 @@ class PyNumba(PythonPackage):
homepage = "https://numba.pydata.org/"
url = "https://pypi.io/packages/source/n/numba/numba-0.35.0.tar.gz"
+ version('0.48.0', sha256='9d21bc77e67006b5723052840c88cc59248e079a907cc68f1a1a264e1eaba017')
version('0.40.1', sha256='52d046c13bcf0de79dbfb936874b7228f141b9b8e3447cc35855e9ad3e12aa33')
version('0.35.0', sha256='11564937757605bee590c5758c73cfe9fd6d569726b56d970316a6228971ecc3')
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.48.0:')
depends_on('python@3.3:3.7.9999', type=('build', 'run'), when='@0.40.1:')
depends_on('python@3.3:3.6.9999', type=('build', 'run'), when='@:0.35.0')
+ depends_on('py-numpy@1.15:', type=('build', 'run'), when='@0.48.0:')
depends_on('py-numpy@1.10:1.99', type=('build', 'run'))
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type=('build', 'run'))
# Note: As of 1 Nov 2018, 0.25 was the latest version of py-llvmlite.
# That's why it was chosen as an upper bound in the following depends_on
# calls. If newer versions maintain backwards compatibility, the calls
# can be updated accordingly.
+ depends_on('py-llvmlite@0.31.0:0.32.0', type=('build', 'run'), when='@0.48.0')
depends_on('py-llvmlite@0.25:', type=('build', 'run'), when='@0.40.1:')
depends_on('py-llvmlite@0.20:0.25', type=('build', 'run'), when='@0.35.1')
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index c685a6fb4c..639ff48d8e 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -16,7 +16,7 @@ class PyNumpy(PythonPackage):
number capabilities"""
homepage = "https://numpy.org/"
- url = "https://pypi.io/packages/source/n/numpy/numpy-1.18.1.zip"
+ url = "https://pypi.io/packages/source/n/numpy/numpy-1.18.2.zip"
git = "https://github.com/numpy/numpy.git"
maintainers = ['adamjstewart']
@@ -30,6 +30,7 @@ class PyNumpy(PythonPackage):
]
version('master', branch='master')
+ version('1.18.2', sha256='e7894793e6e8540dbeac77c87b489e331947813511108ae097f1715c018b8f3d')
version('1.18.1', sha256='b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77')
version('1.18.0', sha256='a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4')
version('1.17.5', sha256='16507ba6617f62ae3c6ab1725ae6f550331025d4d9a369b83f6d5a470446c342')
diff --git a/var/spack/repos/builtin/packages/py-pomegranate/package.py b/var/spack/repos/builtin/packages/py-pomegranate/package.py
new file mode 100644
index 0000000000..91085ba554
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pomegranate/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyPomegranate(PythonPackage):
+ """Fast, flexible and easy to use probabilistic modelling in Python."""
+
+ homepage = "https://github.com/jmschrei/pomegranate"
+ url = "https://pypi.io/packages/source/p/pomegranate/pomegranate-0.12.0.tar.gz"
+
+ version('0.12.0', sha256='8b00c88f7cf9cad8d38ea00ea5274821376fefb217a1128afe6b1fcac54c975a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.22.1:', type='build')
+ depends_on('py-numpy@1.8.0:', type=('build', 'run'))
+ depends_on('py-joblib@0.9.0b4:', type=('build', 'run'))
+ depends_on('py-networkx@2.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.17.0:', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pycairo/package.py b/var/spack/repos/builtin/packages/py-pycairo/package.py
index 7a373609cd..a8838cfa19 100644
--- a/var/spack/repos/builtin/packages/py-pycairo/package.py
+++ b/var/spack/repos/builtin/packages/py-pycairo/package.py
@@ -11,14 +11,16 @@ class PyPycairo(PythonPackage):
"""Pycairo is a set of Python bindings for the cairo graphics library."""
homepage = "https://www.cairographics.org/pycairo/"
- url = "https://github.com/pygobject/pycairo/releases/download/v1.17.1/pycairo-1.17.1.tar.gz"
- url = "https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz"
+ url = "https://pypi.io/packages/source/p/pycairo/pycairo-1.17.1.tar.gz"
+ version('1.18.1', sha256='70172e58b6bad7572a3518c26729b074acdde15e6fee6cbab6d3528ad552b786')
version('1.17.1', sha256='0f0a35ec923d87bc495f6753b1e540fd046d95db56a35250c44089fbce03b698')
- depends_on('cairo@1.2.0:')
+ depends_on('cairo@1.13.1:')
depends_on('pkgconfig', type='build')
depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.8,3.3:', when='@:1.17.1', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@1.18.1:', type=('build', 'run'))
@run_after('install')
def post_install(self):
diff --git a/var/spack/repos/builtin/packages/py-pycifrw/package.py b/var/spack/repos/builtin/packages/py-pycifrw/package.py
new file mode 100644
index 0000000000..c16a3b2894
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycifrw/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyPycifrw(PythonPackage):
+ """Python library for interacting with Crystallographic Information
+ Framework (CIF) files."""
+
+ homepage = "https://bitbucket.org/jamesrhester/pycifrw/src/development/"
+ url = "https://pypi.io/packages/source/P/PyCifRW/PyCifRW-4.4.1.tar.gz"
+
+ version('4.4.1', sha256='cef7662f475e0eb78a55c2d55774d474e888c96b0539e5f08550afa902cdc4e1')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pycosat/package.py b/var/spack/repos/builtin/packages/py-pycosat/package.py
new file mode 100644
index 0000000000..ac10891cef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycosat/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyPycosat(PythonPackage):
+ """PicoSAT is a popular SAT solver written by Armin Biere in pure C. This
+ package provides efficient Python bindings to picosat on the C level, i.e.
+ when importing pycosat, the picosat solver becomes part of the Python
+ process itself. For ease of deployment, the picosat source (namely
+ picosat.c and picosat.h) is included in this project. These files have been
+ extracted from the picosat source (picosat-965.tar.gz)."""
+
+ homepage = "https://github.com/ContinuumIO/pycosat"
+ url = "https://pypi.io/packages/source/p/pycosat/pycosat-0.6.3.zip"
+
+ version('0.6.3', sha256='4c99874946a7e939bb941bbb019dd2c20e6068e3107c91366e7779c69d70e0ed')
diff --git a/var/spack/repos/builtin/packages/py-pyfftw/package.py b/var/spack/repos/builtin/packages/py-pyfftw/package.py
index f021516857..41d9db5b74 100644
--- a/var/spack/repos/builtin/packages/py-pyfftw/package.py
+++ b/var/spack/repos/builtin/packages/py-pyfftw/package.py
@@ -13,11 +13,12 @@ class PyPyfftw(PythonPackage):
homepage = "http://hgomersall.github.com/pyFFTW"
url = "https://pypi.io/packages/source/p/pyFFTW/pyFFTW-0.10.4.tar.gz"
+ version('0.12.0', sha256='60988e823ca75808a26fd79d88dbae1de3699e72a293f812aa4534f8a0a58cb0')
version('0.11.1', sha256='05ea28dede4c3aaaf5c66f56eb0f71849d0d50f5bc0f53ca0ffa69534af14926')
version('0.10.4', sha256='739b436b7c0aeddf99a48749380260364d2dc027cf1d5f63dafb5f50068ede1a')
depends_on('fftw')
- depends_on('py-setuptools', type='build')
- depends_on('py-cython', type='build')
- depends_on('py-numpy@1.6:', type=('build', 'run'))
- depends_on('py-scipy@0.12.0:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.29:0.999', type='build')
+ depends_on('py-numpy@1.6:', type=('build', 'run'), when='@:0.10.4')
+ depends_on('py-numpy@1.10:1.999', type=('build', 'run'), when='@0.11.0:')
diff --git a/var/spack/repos/builtin/packages/py-pymc3/package.py b/var/spack/repos/builtin/packages/py-pymc3/package.py
new file mode 100644
index 0000000000..5f4fbce9a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pymc3/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyPymc3(PythonPackage):
+ """PyMC3 is a Python package for Bayesian statistical modeling and
+ Probabilistic Machine Learning focusing on advanced Markov chain Monte
+ Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and
+ extensibility make it applicable to a large suite of problems."""
+
+ homepage = "http://github.com/pymc-devs/pymc3"
+ url = "https://pypi.io/packages/source/p/pymc3/pymc3-3.8.tar.gz"
+
+ version('3.8', sha256='1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00')
+
+ depends_on('python@3.5.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-arviz@0.4.1:', type=('build', 'run'))
+ depends_on('py-theano@1.0.4:', type=('build', 'run'))
+ depends_on('py-numpy@1.13.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.18.1:', type=('build', 'run'))
+ depends_on('py-pandas@0.18.0:', type=('build', 'run'))
+ depends_on('py-patsy@0.4.0:', type=('build', 'run'))
+ depends_on('py-tqdm@4.8.4:', type=('build', 'run'))
+ depends_on('py-h5py@2.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyqt4/package.py b/var/spack/repos/builtin/packages/py-pyqt4/package.py
index c0e3ae1085..d1a90042d9 100644
--- a/var/spack/repos/builtin/packages/py-pyqt4/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt4/package.py
@@ -34,6 +34,7 @@ class PyPyqt4(SIPPackage):
# Supposedly can also be built with Qt 5 compatibility layer
depends_on('qt@:4')
depends_on('qscintilla', when='+qsci')
+ depends_on('py-sip module=PyQt4.sip')
# For building Qscintilla python bindings
resource(name='qscintilla',
@@ -68,7 +69,7 @@ class PyPyqt4(SIPPackage):
pydir = join_path(site_packages_dir, 'PyQt4')
python = self.spec['python'].command
python('configure.py',
- '--sip=' + self.prefix.bin.sip,
+ '--sip=' + self.spec['py-sip'].prefix.bin.sip,
'--qsci-incdir=' +
self.spec['qscintilla'].prefix.include,
'--qsci-libdir=' + self.spec['qscintilla'].prefix.lib,
@@ -76,7 +77,10 @@ class PyPyqt4(SIPPackage):
'--apidir=' + self.prefix.share.qsci,
'--destdir=' + pydir,
'--pyqt-sipdir=' + self.prefix.share.sip.PyQt4,
- '--sip-incdir=' + python_include_dir,
+ '--sip-incdir=' +
+ join_path(self.spec['py-sip'].prefix.include,
+ 'python' +
+ str(self.spec['python'].version.up_to(2))),
'--stubsdir=' + pydir)
# Fix build errors
diff --git a/var/spack/repos/builtin/packages/py-pyqt5/package.py b/var/spack/repos/builtin/packages/py-pyqt5/package.py
index f70461a1b7..bc37d4dcab 100644
--- a/var/spack/repos/builtin/packages/py-pyqt5/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt5/package.py
@@ -26,6 +26,7 @@ class PyPyqt5(SIPPackage):
'PyQt5.QtXmlPatterns'
]
+ version('5.13.1', sha256='54b7f456341b89eeb3930e786837762ea67f235e886512496c4152ebe106d4af')
version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9')
version('5.12.3', sha256='0db0fa37debab147450f9e052286f7a530404e2aaddc438e97a7dcdf56292110')
@@ -36,7 +37,8 @@ class PyPyqt5(SIPPackage):
depends_on('qt@5:+opengl')
depends_on('python@2.6:', type=('build', 'run'))
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
-
+ depends_on('py-sip module=PyQt5.sip', type=('build', 'run'))
+ depends_on('py-sip@:4.19.18 module=PyQt5.sip', type=('build', 'run'), when='@:5.13.0')
depends_on('qscintilla', when='+qsci')
# For building Qscintilla python bindings
@@ -52,7 +54,10 @@ class PyPyqt5(SIPPackage):
args = [
'--pyuic5-interpreter', self.spec['python'].command.path,
'--sipdir', self.prefix.share.sip.PyQt5,
- '--stubsdir', join_path(site_packages_dir, 'PyQt5'),
+ '--stubsdir', join_path(
+ self.prefix,
+ self.spec['python'].package.site_packages_dir,
+ 'PyQt5'),
]
if '+qsci' in self.spec:
args.extend(['--qsci-api-destdir', self.prefix.share.qsci])
@@ -66,10 +71,13 @@ class PyPyqt5(SIPPackage):
'spack-resource-qscintilla/QScintilla_gpl-' +
str(self.spec['qscintilla'].version), 'Python')
with working_dir(rsrc_py_path):
- pydir = join_path(site_packages_dir, 'PyQt5')
+ pydir = join_path(
+ self.prefix,
+ self.spec['python'].package.site_packages_dir,
+ 'PyQt5')
python = self.spec['python'].command
python('configure.py', '--pyqt=PyQt5',
- '--sip=' + self.prefix.bin.sip,
+ '--sip=' + self.spec['py-sip'].prefix.bin.sip,
'--qsci-incdir=' +
self.spec['qscintilla'].prefix.include,
'--qsci-libdir=' + self.spec['qscintilla'].prefix.lib,
@@ -77,7 +85,10 @@ class PyPyqt5(SIPPackage):
'--apidir=' + self.prefix.share.qsci,
'--destdir=' + pydir,
'--pyqt-sipdir=' + self.prefix.share.sip.PyQt5,
- '--sip-incdir=' + python_include_dir,
+ '--sip-incdir=' +
+ join_path(self.spec['py-sip'].prefix.include,
+ 'python' +
+ str(self.spec['python'].version.up_to(2))),
'--stubsdir=' + pydir)
# Fix build errors
diff --git a/var/spack/repos/builtin/packages/py-pythia/package.py b/var/spack/repos/builtin/packages/py-pythia/package.py
deleted file mode 100644
index 721d7470fa..0000000000
--- a/var/spack/repos/builtin/packages/py-pythia/package.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack import *
-
-
-class PyPythia(PythonPackage):
- """Pythia refers to the Pyre framework and a collection of packages that
- interact with it, such as an interface to the ACIS solid modelling package.
- """
-
- homepage = "https://geodynamics.org/cig/software/pythia/"
- url = "https://geodynamics.org/cig/software/github/pythia/v0.8.1.18/pythia-0.8.1.18.tar.gz"
-
- version('0.8.1.18', sha256='f6025e6d70046dc71e375eded3d731506f8dd79e2e53b7e1436754439dcdef1e')
-
- depends_on('python@:2', type=('build', 'run'))
- depends_on('py-merlin', type='build')
diff --git a/var/spack/repos/builtin/packages/py-python-lzo/package.py b/var/spack/repos/builtin/packages/py-python-lzo/package.py
new file mode 100644
index 0000000000..acf60351b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-lzo/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyPythonLzo(PythonPackage):
+ """This module provides Python bindings for the LZO data compression
+ library."""
+
+ homepage = "https://github.com/jd-boyd/python-lzo"
+ url = "https://pypi.io/packages/source/p/python-lzo/python-lzo-1.12.tar.gz"
+
+ version('1.12', sha256='97a8e46825e8f1abd84c2a3372bc09adae9745a5be5d3af2692cd850dac35345')
+
+ depends_on('lzo')
diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py
index 9fd8475662..046e04c2e5 100644
--- a/var/spack/repos/builtin/packages/py-qtconsole/package.py
+++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py
@@ -17,7 +17,7 @@ class PyQtconsole(PythonPackage):
variant('doc', default=False, description='Build documentation')
- depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('py-ipykernel@4.1:', type=('build', 'run'))
depends_on('py-jupyter-client@4.1:', type=('build', 'run'))
depends_on('py-jupyter-core', type=('build', 'run'))
@@ -25,5 +25,6 @@ class PyQtconsole(PythonPackage):
depends_on('py-traitlets', type=('build', 'run'))
depends_on('py-ipython-genutils', type=('build', 'run'), when='@4.5.1:')
depends_on('py-sphinx@1.3:', type=('build', 'run'), when='+docs')
+ depends_on('py-pyqt5', type='run')
depends_on('py-mock', type='test', when='^python@2.7:2.8')
diff --git a/var/spack/repos/builtin/packages/py-resampy/package.py b/var/spack/repos/builtin/packages/py-resampy/package.py
new file mode 100644
index 0000000000..35249c8acc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-resampy/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyResampy(PythonPackage):
+ """Efficient sample rate conversion in python"""
+
+ homepage = "https://github.com/bmcfee/resampy"
+ url = "https://pypi.io/packages/source/r/resampy/resampy-0.2.2.tar.gz"
+
+ version('0.2.2', sha256='62af020d8a6674d8117f62320ce9470437bb1d738a5d06cd55591b69b463929e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.10:', type=('build', 'run'))
+ depends_on('py-scipy@0.13:', type=('build', 'run'))
+ depends_on('py-numba@0.32:', type=('build', 'run'))
+ depends_on('py-six@1.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-resultsfile/package.py b/var/spack/repos/builtin/packages/py-resultsfile/package.py
new file mode 100644
index 0000000000..6f00a3ab1d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-resultsfile/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyResultsfile(PythonPackage):
+ """Python module to read output files of quantum chemistry programs"""
+
+ homepage = "https://gitlab.com/scemama/resultsFile"
+ url = "https://gitlab.com/scemama/resultsFile/-/archive/v1.0/resultsFile-v1.0.tar.gz"
+ git = "https://gitlab.com/scemama/resultsFile.git"
+
+ maintainers = ['scemama']
+
+ version('2.0', sha256='2a34208254e4bea155695690437f6a59bf5f7b0ddb421d6c1a2d377510f018f7')
+ version('1.0', sha256='e029054b2727131da9684fa2ec9fb8b6a3225dc7f648216a9390267b2d5d60c3')
+
+ depends_on('python@2.7:2.8.999', type=('build', 'run'), when='@1.0:1.999')
+ depends_on('python@3:', type=('build', 'run'), when='@2.0:')
diff --git a/var/spack/repos/builtin/packages/py-rseqc/package.py b/var/spack/repos/builtin/packages/py-rseqc/package.py
index 1b3ac0a88a..fa9fc581b4 100644
--- a/var/spack/repos/builtin/packages/py-rseqc/package.py
+++ b/var/spack/repos/builtin/packages/py-rseqc/package.py
@@ -14,10 +14,16 @@ class PyRseqc(PythonPackage):
homepage = "http://rseqc.sourceforge.net"
url = "https://pypi.io/packages/source/R/RSeQC/RSeQC-2.6.4.tar.gz"
+ version('3.0.1', sha256='d5f4cb2c24a7348929f5c4947d84c5869e8cd2cba5ba5248d991ebb37c4c6b3d')
version('2.6.4', sha256='e11df661bda1c24fc950f0bce06f586a68ab5f4a2c356f43e4a0dfdc1e184315')
+ depends_on('python@2.7:2.8', type=('build', 'run'), when='@:2')
+ depends_on('python@3.5:', type=('build', 'run'), when='@3:')
depends_on('py-setuptools', type='build')
- depends_on('py-bx-python', type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-pysam', type=('build', 'run'))
- depends_on('r', type=('build', 'run'))
+ depends_on('py-nose@0.10.4:', type='build')
+ depends_on('py-cython@0.17:', type=('build', 'run'))
+ depends_on('py-bx-python', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-pysam', type=('build', 'run'))
+ depends_on('py-pybigwig', type=('build', 'run'), when='@3:')
+ depends_on('r', type='run')
diff --git a/var/spack/repos/builtin/packages/py-sentencepiece/package.py b/var/spack/repos/builtin/packages/py-sentencepiece/package.py
new file mode 100644
index 0000000000..9d9552a47b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sentencepiece/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PySentencepiece(PythonPackage):
+ """Unsupervised text tokenizer for Neural Network-based text generation.
+
+ These are the Python bindings."""
+
+ homepage = "https://github.com/google/sentencepiece/blob/master/python/README.md"
+ url = "https://github.com/google/sentencepiece/archive/v0.1.85.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6')
+
+ depends_on('sentencepiece')
+ depends_on('sentencepiece@0.1.85', when='@0.1.85')
+ depends_on('pkgconfig', type='build')
+ depends_on('py-setuptools', type='build')
+
+ build_directory = 'python'
diff --git a/var/spack/repos/builtin/packages/py-setproctitle/package.py b/var/spack/repos/builtin/packages/py-setproctitle/package.py
new file mode 100644
index 0000000000..972e595cad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-setproctitle/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PySetproctitle(PythonPackage):
+ """The setproctitle module allows a process to change its title (as
+ displayed by system tools such as ps and top)."""
+
+ homepage = "https://github.com/dvarrazzo/py-setproctitle"
+ url = "https://pypi.io/packages/source/s/setproctitle/setproctitle-1.1.10.tar.gz"
+
+ version('1.1.10', sha256='6283b7a58477dd8478fbb9e76defb37968ee4ba47b05ec1c053cb39638bd7398')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-simplejson/package.py b/var/spack/repos/builtin/packages/py-simplejson/package.py
index ea8799b75a..7206102d2e 100644
--- a/var/spack/repos/builtin/packages/py-simplejson/package.py
+++ b/var/spack/repos/builtin/packages/py-simplejson/package.py
@@ -13,6 +13,7 @@ class PySimplejson(PythonPackage):
homepage = "https://github.com/simplejson/simplejson"
url = "https://pypi.io/packages/source/s/simplejson/simplejson-3.10.0.tar.gz"
+ version('3.16.0', sha256='b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5')
version('3.10.0', sha256='953be622e88323c6f43fad61ffd05bebe73b9fd9863a46d68b052d2aa7d71ce2')
version('3.9.0', sha256='e9abeee37424f4bfcd27d001d943582fb8c729ffc0b74b72bd0e9b626ed0d1b6')
version('3.8.2', sha256='d58439c548433adcda98e695be53e526ba940a4b9c44fb9a05d92cd495cdd47f')
diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py
index 09c6b743b1..d454f05740 100644
--- a/var/spack/repos/builtin/packages/py-sip/package.py
+++ b/var/spack/repos/builtin/packages/py-sip/package.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
+import os
class PySip(Package):
@@ -16,6 +17,9 @@ class PySip(Package):
hg = "https://www.riverbankcomputing.com/hg/sip"
version('develop', hg=hg) # wasn't actually able to clone this
+ version('4.19.21', sha256='6af9979ab41590e8311b8cc94356718429ef96ba0e3592bdd630da01211200ae')
+ version('4.19.20', sha256='04cc2f87ac97e8718d8e1ef036e3ec26050ab44c21f9277618d5b67432fcbfd6')
+ version('4.19.19', sha256='5436b61a78f48c7e8078e93a6b59453ad33780f80c644e5f3af39f94be1ede44')
version('4.19.18', sha256='c0bd863800ed9b15dcad477c4017cdb73fa805c25908b0240564add74d697e1e')
version('4.19.15', sha256='2b5c0b2c0266b467b365c21376d50dde61a3236722ab87ff1e8dacec283eb610')
version('4.19.13', sha256='e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e')
@@ -53,3 +57,14 @@ class PySip(Package):
def install(self, spec, prefix):
make('install')
+
+ @run_after('install')
+ def extend_path_setup(self):
+ # See github issue #14121 and PR #15297
+ module = self.spec.variants['module'].value
+ if module != 'sip':
+ module = module.split('.')[0]
+ with working_dir(site_packages_dir):
+ with open(os.path.join(module, '__init__.py'), 'w') as f:
+ f.write('from pkgutil import extend_path\n')
+ f.write('__path__ = extend_path(__path__, __name__)\n')
diff --git a/var/spack/repos/builtin/packages/py-soundfile/package.py b/var/spack/repos/builtin/packages/py-soundfile/package.py
new file mode 100644
index 0000000000..aa485deca3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-soundfile/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PySoundfile(PythonPackage):
+ """SoundFile is an audio library based on libsndfile, CFFI and NumPy."""
+
+ homepage = "https://github.com/bastibe/PySoundFile"
+ url = "https://pypi.io/packages/source/S/SoundFile/SoundFile-0.10.3.post1.tar.gz"
+
+ version('0.10.3.post1', sha256='490cff42650733d1832728b937fe99fa1802896f5ef4d61bcf78cf7ebecb107b')
+
+ variant('numpy', default=True,
+ description='Support for processing audio data as numpy arrays')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cffi@1.0:', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'), when='+numpy')
+ depends_on('libsndfile', type='run')
diff --git a/var/spack/repos/builtin/packages/py-tfdlpack/package.py b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
new file mode 100644
index 0000000000..678cc2d6db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyTfdlpack(CMakePackage):
+ """Tensorflow plugin for DLPack."""
+
+ homepage = "https://github.com/VoVAllen/tf-dlpack"
+ git = "https://github.com/VoVAllen/tf-dlpack.git"
+
+ maintainers = ['adamjstewart']
+
+ version('master', branch='master', submodules=True)
+ version('0.1.1', tag='v0.1.1', submodules=True)
+
+ variant('cuda', default=True, description='Build with CUDA support')
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('cuda', when='+cuda')
+
+ # Python dependencies
+ extends('python')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-tensorflow', type=('build', 'run'))
+
+ def cmake_args(self):
+ args = ['-DPYTHON_EXECUTABLE=' + self.spec['python'].command.path]
+
+ if '+cuda' in self.spec:
+ args.append('-DUSE_CUDA=ON')
+ else:
+ args.append('-DUSE_CUDA=OFF')
+
+ return args
+
+ def install(self, spec, prefix):
+ with working_dir('python'):
+ setup_py('install', '--prefix=' + prefix,
+ '--single-version-externally-managed', '--root=/')
+
+ def setup_run_environment(self, env):
+ # Prevent TensorFlow from taking over the whole GPU
+ env.set('TF_FORCE_GPU_ALLOW_GROWTH', 'true')
diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py
index e40bc840fe..c0be1176e4 100644
--- a/var/spack/repos/builtin/packages/py-torch/package.py
+++ b/var/spack/repos/builtin/packages/py-torch/package.py
@@ -105,22 +105,22 @@ class PyTorch(PythonPackage, CudaPackage):
cuda_arch_conflict = ('This version of Torch/Caffe2 only supports compute '
'capabilities ')
- conflicts('cuda_arch=none', when='+cuda+caffe2',
+ conflicts('cuda_arch=none', when='+cuda',
msg='Must specify CUDA compute capabilities of your GPU, see '
'https://developer.nvidia.com/cuda-gpus')
- conflicts('cuda_arch=52', when='@1.3.0:+cuda+caffe2',
+ conflicts('cuda_arch=52', when='@1.3.0:+cuda',
msg=cuda_arch_conflict + '>=5.3')
- conflicts('cuda_arch=50', when='@1.3.0:+cuda+caffe2',
+ conflicts('cuda_arch=50', when='@1.3.0:+cuda',
msg=cuda_arch_conflict + '>=5.3')
- conflicts('cuda_arch=35', when='@1.3.0:+cuda+caffe2',
+ conflicts('cuda_arch=35', when='@1.3.0:+cuda',
msg=cuda_arch_conflict + '>=5.3')
- conflicts('cuda_arch=32', when='@1.3.0:+cuda+caffe2',
+ conflicts('cuda_arch=32', when='@1.3.0:+cuda',
msg=cuda_arch_conflict + '>=5.3')
- conflicts('cuda_arch=30', when='@1.3.0:+cuda+caffe2',
+ conflicts('cuda_arch=30', when='@1.3.0:+cuda',
msg=cuda_arch_conflict + '>=5.3')
- conflicts('cuda_arch=30', when='@1.2.0:+cuda+caffe2',
+ conflicts('cuda_arch=30', when='@1.2.0:+cuda',
msg=cuda_arch_conflict + '>=3.2')
- conflicts('cuda_arch=20', when='@1.0.0:+cuda+caffe2',
+ conflicts('cuda_arch=20', when='@1.0.0:+cuda',
msg=cuda_arch_conflict + '>=3.0')
# Required dependencies
diff --git a/var/spack/repos/builtin/packages/py-torchtext/package.py b/var/spack/repos/builtin/packages/py-torchtext/package.py
new file mode 100644
index 0000000000..6bcae3d1e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torchtext/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyTorchtext(PythonPackage):
+ """Text utilities and datasets for PyTorch."""
+
+ homepage = "https://github.com/pytorch/text"
+ url = "https://pypi.io/packages/source/t/torchtext/torchtext-0.5.0.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.5.0', sha256='7f22e24e9b939fff56b9118c78dc07aafec8dcc67164de15b9b5ed339e4179c6')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-torch@0.4.0:', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-sentencepiece', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py
index 95090a2694..9757dd2343 100644
--- a/var/spack/repos/builtin/packages/py-tuiview/package.py
+++ b/var/spack/repos/builtin/packages/py-tuiview/package.py
@@ -11,11 +11,13 @@ class PyTuiview(PythonPackage):
table manipulation abilities.
"""
- homepage = "https://bitbucket.org/chchrsc/tuiview"
- url = "https://bitbucket.org/chchrsc/tuiview/get/tuiview-1.1.7.tar.gz"
+ homepage = "https://github.com/ubarsc/tuiview"
+ url = "https://github.com/ubarsc/tuiview/releases/download/tuiview-1.2.6/tuiview-1.2.6.tar.gz"
+ version('1.2.6', sha256='61b136fa31c949d7a7a4dbf8562e6fc677d5b1845b152ec39e337f4eb2e91662')
version('1.1.7', sha256='fbf0bf29cc775357dad4f8a2f0c2ffa98bbf69d603a96353e75b321adef67573')
- depends_on("py-pyqt4", type=('build', 'run'))
+ depends_on("py-pyqt4", type=('build', 'run'), when='@:1.1.99')
+ depends_on("py-pyqt5", type=('build', 'run'), when='@1.2.0:')
depends_on("py-numpy", type=('build', 'run'))
- depends_on("gdal")
+ depends_on("gdal@1.11.0:+python")
diff --git a/var/spack/repos/builtin/packages/py-versioneer/package.py b/var/spack/repos/builtin/packages/py-versioneer/package.py
new file mode 100644
index 0000000000..d98ec6524c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-versioneer/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyVersioneer(PythonPackage):
+ """Versioneer is a tool to automatically update version strings by
+ asking your version-control system about the current tree."""
+
+ homepage = "https://github.com/warner/python-versioneer"
+ url = "https://github.com/warner/python-versioneer/archive/0.18.tar.gz"
+ git = "https://github.com/warner/python-versioneer.git"
+
+ maintainers = ['scemama']
+
+ version('0.18', sha256='cf895b67f5bc62d61c4837458069ded8f66b4e5764c19f7253c51ee27e8b3a99')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
index aa6dbb31c2..347641a8da 100644
--- a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
+++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
@@ -14,6 +14,7 @@ class PyWidgetsnbextension(PythonPackage):
version('3.5.1', sha256='079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7')
version('3.4.2', sha256='fa618be8435447a017fd1bf2c7ae922d0428056cfc7449f7a8641edf76b48265')
+ version('3.4.0', sha256='c9d6e426a1d79d132b57b93b368feba2c66eb7b0fd34bdb901716b4b88e94497')
version('3.3.0', sha256='c5280a62d293735cdadc7b8884e2affcfb0488420ee09963577f042359726392')
version('1.2.6', sha256='c618cfb32978c9517caf0b4ef3aec312f8dd138577745e7b0d4abfcc7315ce51')
diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py
index 978548163b..b35584d2c9 100644
--- a/var/spack/repos/builtin/packages/python/package.py
+++ b/var/spack/repos/builtin/packages/python/package.py
@@ -31,6 +31,7 @@ class Python(AutotoolsPackage):
maintainers = ['adamjstewart']
+ version('3.8.2', sha256='e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561')
version('3.8.1', sha256='c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb')
version('3.8.0', sha256='f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df')
version('3.7.6', sha256='aeee681c235ad336af116f08ab6563361a0c81c537072c1b309d6e4050aa2114', preferred=True)
diff --git a/var/spack/repos/builtin/packages/qgis/package.py b/var/spack/repos/builtin/packages/qgis/package.py
new file mode 100644
index 0000000000..4a6d6a3583
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qgis/package.py
@@ -0,0 +1,217 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Qgis(CMakePackage):
+ """QGIS is a free and open-source cross-platform desktop geographic
+ information system application that supports viewing, editing, and
+ analysis of geospatial data.
+ """
+
+ homepage = "https://qgis.org"
+ url = "https://qgis.org/downloads/qgis-3.8.1.tar.bz2"
+
+ maintainers = ['adamjstewart', 'Sinan81']
+
+ version('3.12.0', sha256='19e9c185dfe88cad7ee6e0dcf5ab7b0bbfe1672307868a53bf771e0c8f9d5e9c')
+ # Prefer latest long term release
+ version('3.10.3', sha256='0869704df9120dd642996ff1ed50213ac8247650aa0640b62f8c9c581c05d7a7', preferred=True)
+ version('3.10.2', sha256='381cb01a8ac2f5379a915b124e9c830d727d2c67775ec49609c7153fe765a6f7')
+ version('3.10.1', sha256='466ac9fad91f266cf3b9d148f58e2adebd5b9fcfc03e6730eb72251e6c34c8ab')
+ version('3.10.0', sha256='25eb1c41d9fb922ffa337a720dfdceee43cf2d38409923f087c2010c9742f012')
+ version('3.8.3', sha256='3cca3e8483bc158cb8e972eb819a55a5734ba70f2c7da28ebc485864aafb17bd')
+ version('3.8.2', sha256='4d682f7625465a5b3596b3f7e83eddad86a60384fead9c81a6870704baffaddd')
+ version('3.8.1', sha256='d65c8e1c7471bba46f5017f261ebbef81dffb5843a24f0e7713a00f70785ea99')
+ version('3.4.15', sha256='81c93b72adbea41bd765294c0cdb09476a632d8b3f90101abc409ca9ea7fb04d')
+ version('3.4.14', sha256='e138716c7ea84011d3b28fb9c75e6a79322fb66f532246393571906a595d7261')
+
+ variant('3d', default=False, description='Build QGIS 3D library')
+ variant('analysis', default=True, description='Build QGIS analysis library')
+ variant('apidoc', default=False, description='Build QGIS API doxygen documentation')
+ variant('astyle', default=False, description='Contribute QGIS with astyle')
+ variant('bindings', default=True, description='Build Python bindings')
+ variant('clang_tidy', default=False, description='Use Clang tidy')
+ variant('core', default=True, description='Build QGIS Core')
+ variant('custom_widgets', default=False, description='Build QGIS custom widgets for Qt Designer')
+ variant('desktop', default=True, description='Build QGIS desktop')
+ variant('georeferencer', default=True, description='Build GeoReferencer plugin')
+ variant('globe', default=False, description='Build Globe plugin')
+ variant('grass7', default=False, description='Build with GRASS providers and plugin')
+ variant('gui', default=True, description='Build QGIS GUI library and everything built on top of it')
+ variant('internal_mdal', default=True, description='Build with MDAl support')
+ variant('internal_o2', default=True, description='Download and locally include source of o2 library')
+ variant('oauth2_plugin', default=True, description='Build OAuth2 authentication method plugin')
+ variant('oracle', default=False, description='Build with Oracle support')
+ variant('postgresql', default=True, description='Build with PostreSQL support')
+ variant('py_compile', default=False, description='Byte compile Python modules in staged or installed locations')
+ variant('qsciapi', default=True, description='Generate PyQGIS QScintilla2 API')
+ variant('qspatialite', default=False, description='Build QSpatialite sql driver')
+ variant('qt5serialport', default=True, description='Try Qt5SerialPort for GPS positioning')
+ variant('qtmobility', default=False, description='Build QtMobility related code')
+ variant('qtwebkit', default=False, description='Enable QtWebkit Support')
+ variant('quick', default=False, description='Build QGIS Quick library')
+ variant('qwtpolar', default=False, description='Build QwtPolar')
+ variant('server', default=False, description='Build QGIS server')
+ variant('staged_plugins', default=True, description='Stage-install core Python plugins to run from build directory')
+ variant('thread_local', default=True, description='Use std::thread_local')
+ variant('txt2tags', default=False, description='Generate PDF for txt2tags documentation')
+
+ # Ref. for dependencies:
+ # http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html
+ # https://github.com/qgis/QGIS/blob/master/INSTALL
+ depends_on('qt+dbus')
+ depends_on('proj@4.4.0:')
+ depends_on('geos@3.4.0:')
+ depends_on('sqlite@3.0.0: +column_metadata')
+ depends_on('libspatialite@4.2.0:')
+ depends_on('libspatialindex')
+ depends_on('gdal@2.1.0: +python', type=('build', 'link', 'run'))
+ depends_on('qwt@5:')
+ depends_on('qwtpolar')
+ depends_on('expat@1.95:')
+ depends_on('qca@2.2.1')
+ depends_on('py-pyqt4 +qsci', when='@2')
+ depends_on('py-pyqt5@5.3: +qsci', when='@3')
+ depends_on('qscintilla')
+ depends_on('qjson')
+ depends_on('py-requests', type=('build', 'run')) # TODO: is build dependency necessary?
+ depends_on('py-psycopg2', type=('build', 'run')) # TODO: is build dependency necessary?
+ depends_on('qtkeychain@0.5:', when='@3:')
+ depends_on('libzip')
+ depends_on('exiv2')
+ depends_on('python@3.0.0:', type=('build', 'run'), when='@3')
+ depends_on('python@2.7:2.8', type=('build', 'run'), when='@2')
+
+ # Runtime python dependencies, not mentioned in install instructions
+ depends_on('py-pyyaml', type='run')
+ depends_on('py-owslib', type='run')
+ depends_on('py-jinja2', type='run')
+ depends_on('py-pygments', type='run')
+
+ # optionals
+ depends_on('postgresql@8:', when='+postgresql') # for PostGIS support
+ depends_on('gsl', when='+georeferencer') # for georeferencer
+ depends_on('grass@7.0.0', type=('build', 'link', 'run'), when='+grass7') # for georeferencer
+
+ # the below dependencies are shown in cmake config
+ depends_on('hdf5')
+ depends_on('netcdf-c')
+
+ # build
+ depends_on('cmake@3.0.0:', type='build')
+ depends_on('flex@2.5.6:', type='build')
+ depends_on('bison@2.4:', type='build')
+ depends_on('pkg-config', type='build')
+
+ # Take care of conflicts using depends_on
+ depends_on('proj@5:', when='@3.8.2:')
+ depends_on('qt@5.9.0:5.12.99', when='@3.8')
+ depends_on('qt@5.9.0:', when='@3.10.0:')
+ depends_on('qtkeychain@:1.5.99', when='^qt@4')
+ depends_on('qt@:4', when='@2')
+
+ patch('pyqt5.patch', when='^qt@5')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+ # qtwebkit module was removed from qt as of version 5.6
+ # needs to be compiled as a separate package
+ args.extend([
+ '-DUSE_OPENCL=OFF',
+ # cmake couldn't determine the following paths
+ '-DEXPAT_LIBRARY={0}'.format(self.spec['expat'].libs),
+ '-DPOSTGRESQL_PREFIX={0}'.format(
+ self.spec['postgresql'].prefix),
+ '-DQSCINTILLA_INCLUDE_DIR=' +
+ self.spec['qscintilla'].prefix.include,
+ '-DQSCINTILLA_LIBRARY=' + self.spec['qscintilla'].prefix +
+ '/lib/libqscintilla2_qt5.so',
+ '-DLIBZIP_INCLUDE_DIR=' +
+ self.spec['libzip'].prefix.include,
+ '-DLIBZIP_CONF_INCLUDE_DIR=' +
+ self.spec['libzip'].prefix.lib.libzip.include,
+ '-DGDAL_CONFIG_PREFER_PATH=' +
+ self.spec['gdal'].prefix.bin,
+ '-DGEOS_CONFIG_PREFER_PATH=' +
+ self.spec['geos'].prefix.bin,
+ '-DGSL_CONFIG_PREFER_PATH=' + self.spec['gsl'].prefix.bin,
+ '-DPOSTGRES_CONFIG_PREFER_PATH=' +
+ self.spec['postgresql'].prefix.bin
+ ])
+
+ args.extend([
+ '-DWITH_3D={0}'.format(
+ 'TRUE' if '+3d' in spec else 'FALSE'),
+ '-DWITH_ANALYSIS={0}'.format(
+ 'TRUE' if '+analysis' in spec else 'FALSE'),
+ '-DWITH_APIDOC={0}'.format(
+ 'TRUE' if '+apidoc' in spec else 'FALSE'),
+ '-DWITH_ASTYLE={0}'.format(
+ 'TRUE' if '+astyle' in spec else 'FALSE'),
+ '-DWITH_BINDINGS={0}'.format(
+ 'TRUE' if '+bindings' in spec else 'FALSE'),
+ '-DWITH_CLANG_TIDY={0}'.format(
+ 'TRUE' if '+clang_tidy' in spec else 'FALSE'),
+ '-DWITH_CORE={0}'.format(
+ 'TRUE' if '+core' in spec else 'FALSE'),
+ '-DWITH_CUSTOM_WIDGETS={0}'.format(
+ 'TRUE' if '+custom_widgets' in spec else 'FALSE'),
+ '-DWITH_DESKTOP={0}'.format(
+ 'TRUE' if '+desktop' in spec else 'FALSE'),
+ '-DWITH_GEOREFERENCER={0}'.format(
+ 'TRUE' if '+georeferencer' in spec else 'FALSE'),
+ '-DWITH_GLOBE={0}'.format(
+ 'TRUE' if '+globe' in spec else 'FALSE'),
+ '-DWITH_GUI={0}'.format(
+ 'TRUE' if '+gui' in spec else 'FALSE'),
+ '-DWITH_INTERNAL_MDAL={0}'.format(
+ 'TRUE' if '+internal_mdal' in spec else 'FALSE'),
+ '-DWITH_INTERNAL_O2={0}'.format(
+ 'ON' if '+internal_o2' in spec else 'OFF'),
+ '-DWITH_OAUTH2_PLUGIN={0}'.format(
+ 'TRUE' if '+oauth2_plugin' in spec else 'FALSE'),
+ '-DWITH_ORACLE={0}'.format(
+ 'TRUE' if '+oracle' in spec else 'FALSE'),
+ '-DWITH_POSTGRESQL={0}'.format(
+ 'TRUE' if '+postgresql' in spec else 'FALSE'),
+ '-DWITH_PY_COMPILE={0}'.format(
+ 'TRUE' if '+py_compile' in spec else 'FALSE'),
+ '-DWITH_QSCIAPI={0}'.format(
+ 'TRUE' if '+qsciapi' in spec else 'FALSE'),
+ '-DWITH_QSPATIALITE={0}'.format(
+ 'ON' if '+qspatialite' in spec else 'OFF'),
+ '-DWITH_QT5SERIALPORT={0}'.format(
+ 'TRUE' if '+qt5serialport' in spec else 'FALSE'),
+ '-DWITH_QTMOBILITY={0}'.format(
+ 'TRUE' if '+qtmobility' in spec else 'FALSE'),
+ '-DWITH_QTWEBKIT={0}'.format(
+ 'ON' if '+qtwebkit' in spec else 'OFF'),
+ '-DWITH_QUICK={0}'.format(
+ 'TRUE' if '+quick' in spec else 'FALSE'),
+ '-DWITH_QWTPOLAR={0}'.format(
+ 'TRUE' if '+qwtpolar' in spec else 'FALSE'),
+ '-DWITH_SERVER={0}'.format(
+ 'TRUE' if '+server' in spec else 'FALSE'),
+ '-DWITH_STAGED_PLUGINS={0}'.format(
+ 'TRUE' if '+staged_plugins' in spec else 'FALSE'),
+ '-DWITH_THREAD_LOCAL={0}'.format(
+ 'TRUE' if '+thread_local' in spec else 'FALSE'),
+ '-DWITH_TXT2TAGS_PDF={0}'.format(
+ 'TRUE' if '+txt2tags_pdf' in spec else 'FALSE'),
+ ])
+
+ if '+grass7' in self.spec:
+ args.extend([
+ '-DWITH_GRASS7=ON',
+ '-DGRASS_PREFIX7={0}'.format(self.spec['grass'].prefix),
+ '-DGRASS_INCLUDE_DIR7={0}'.format(
+ self.spec['grass'].prefix.include)
+ ])
+ else:
+ args.append('-DWITH_GRASS7=OFF')
+ return args
diff --git a/var/spack/repos/builtin/packages/qgis/pyqt5.patch b/var/spack/repos/builtin/packages/qgis/pyqt5.patch
new file mode 100644
index 0000000000..1e6b7e6149
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qgis/pyqt5.patch
@@ -0,0 +1,25 @@
+diff --git a/cmake/FindPyQt5.py b/cmake/FindPyQt5.py
+index 6a55a0f801..d6eda1fa1e 100644
+--- a/cmake/FindPyQt5.py
++++ b/cmake/FindPyQt5.py
+@@ -40,6 +40,7 @@ except ImportError:
+ import sys
+ cfg = sipconfig.Configuration()
+ sip_dir = cfg.default_sip_dir
++ pyqt_prefix = os.sep.join(PyQt5.QtCore.__file__.split(os.sep)[0:-5])
+ if sys.platform.startswith('freebsd'):
+ py_version = str(sys.version_info.major) + str(sys.version_info.minor)
+ sip_dir = sip_dir.replace(py_version, '')
+@@ -53,9 +54,9 @@ except ImportError:
+ 'pyqt_version': PyQt5.QtCore.PYQT_VERSION,
+ 'pyqt_version_str': PyQt5.QtCore.PYQT_VERSION_STR,
+ 'pyqt_sip_flags': PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'],
+- 'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"),
+- 'pyqt_sip_dir': sip_dir,
+- 'pyqt_bin_dir': cfg.default_bin_dir,
++ 'pyqt_mod_dir': os.path.dirname(PyQt5.QtCore.__file__),
++ 'pyqt_sip_dir': os.path.join(pyqt_prefix,'share','sip','PyQt5'),
++ 'pyqt_bin_dir': os.path.join(pyqt_prefix,'bin'),
+ }
+ pyqtcfg = sipconfig.Configuration([cfg])
+
diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py
index 0ad9ac2418..ba67282c0c 100644
--- a/var/spack/repos/builtin/packages/qmcpack/package.py
+++ b/var/spack/repos/builtin/packages/qmcpack/package.py
@@ -44,11 +44,10 @@ class Qmcpack(CMakePackage, CudaPackage):
description='Build the complex (general twist/k-point) version')
variant('mixed', default=False,
description='Build the mixed precision (mixture of single and '
- 'double precision) version for gpu and cpu')
+ 'double precision) version')
variant('soa', default=True,
description='Build with Structure-of-Array instead of '
- 'Array-of-Structure code. Only for CPU code'
- 'and only in mixed precision')
+ 'Array-of-Structure code. Only for CPU code')
variant('timers', default=False,
description='Build with support for timers')
variant('da', default=False,
@@ -57,10 +56,20 @@ class Qmcpack(CMakePackage, CudaPackage):
description='Install with Matplotlib (long installation time)')
variant('qe', default=False,
description='Install with patched Quantum Espresso 6.4.1')
+ variant('afqmc', default=False,
+ description='Install with AFQMC support. NOTE that if used in '
+ 'combination with CUDA, only AFQMC will have CUDA.')
+ # Notes about CUDA-centric peculiarities:
+ #
# cuda variant implies mixed precision variant by default, but there is
# no way to express this in variant syntax, need something like
# variant('+mixed', default=True, when='+cuda', description="...")
+ #
+ # cuda+afqmc variant will not build the legacy CUDA code in real-space
+ # QMCPACK. This is due to a conflict in the build system. This is not
+ # worth fixing since the legacy CUDA code, will be superseded
+ # by the OpenMP 4.5 code.
# high-level variant conflicts
conflicts(
@@ -94,6 +103,12 @@ class Qmcpack(CMakePackage, CudaPackage):
conflicts('%pgi@:17', when='@3.6.0:', msg=compiler_warning)
conflicts('%llvm@:3.4', when='@3.6.0:', msg=compiler_warning)
+ conflicts('+afqmc', when='@:3.6.0', msg='AFQMC not recommended before v3.7')
+ conflicts('+afqmc', when='~mpi', msg='AFQMC requires building with +mpi')
+ conflicts('+afqmc', when='%gcc@:6.0', msg='AFQMC code requires gcc@6.1 or greater')
+ conflicts('+afqmc', when='%clang@:4.0', msg='AFQMC code requires clang 4.1 or greater')
+ conflicts('+afqmc', when='%intel@:18', msg='AFQMC code requires intel19 or greater')
+
# Prior to QMCPACK 3.5.0 Intel MKL was not properly detected with
# non-Intel compilers without a Spack-based hack. This hack
# had the potential for negative side effects and led to more
@@ -231,6 +246,11 @@ class Qmcpack(CMakePackage, CudaPackage):
else:
args.append('-DQMC_COMPLEX=0')
+ if '+afqmc' in spec:
+ args.append('-DBUILD_AFQMC=1')
+ else:
+ args.append('-DBUILD_AFQMC=0')
+
# When '-DQMC_CUDA=1', CMake automatically sets:
# '-DQMC_MIXED_PRECISION=1'
#
@@ -238,7 +258,12 @@ class Qmcpack(CMakePackage, CudaPackage):
# tested.
if '+cuda' in spec:
- args.append('-DQMC_CUDA=1')
+ # Cannot support both CUDA builds at the same time, see
+ # earlier notes in this package.
+ if '+afqmc' in spec:
+ args.append('-DENABLE_CUDA=1')
+ else:
+ args.append('-DQMC_CUDA=1')
cuda_arch_list = spec.variants['cuda_arch'].value
cuda_arch = cuda_arch_list[0]
if len(cuda_arch_list) > 1:
diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py
index 185bd1f421..3f21501711 100644
--- a/var/spack/repos/builtin/packages/qrupdate/package.py
+++ b/var/spack/repos/builtin/packages/qrupdate/package.py
@@ -29,17 +29,31 @@ class Qrupdate(MakefilePackage):
return
def install(self, spec, prefix):
+
lapack_blas = spec['lapack'].libs + spec['blas'].libs
- # Build static and dynamic libraries
- make('lib', 'solib',
- 'BLAS={0}'.format(lapack_blas.ld_flags),
- 'LAPACK={0}'.format(lapack_blas.ld_flags))
- # "INSTALL" confuses "make install" on case-insensitive filesystems
+
+ make_args = [
+ 'BLAS={0}'.format(lapack_blas.ld_flags),
+ 'LAPACK={0}'.format(lapack_blas.ld_flags)
+ ]
+
+ # If 64-bit BLAS is used:
+ if (spec.satisfies('^openblas+ilp64') or
+ spec.satisfies('^intel-mkl+ilp64') or
+ spec.satisfies('^intel-parallel-studio+mkl+ilp64')):
+ make_args.append('FFLAGS=-fdefault-integer-8')
+
+ # Build static and dynamic libraries:
+ make('lib', 'solib', *make_args)
+
+ # "INSTALL" confuses "make install" on case-insensitive filesystems:
if os.path.isfile("INSTALL"):
os.remove("INSTALL")
- # create lib folder:
+
+ # Create lib folder:
if (sys.platform == 'darwin'):
mkdirp(prefix.lib)
+
make("install", "PREFIX=%s" % prefix)
@run_after('install')
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index c07aa5c86e..3f4c767a69 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -128,13 +128,13 @@ class Qt(Package):
depends_on("gperf", when='+webkit')
depends_on("gtkplus", when='+gtk')
depends_on("openssl", when='+ssl')
- depends_on("sqlite", when='+sql', type=('build', 'run'))
- depends_on("sqlite+column_metadata", when='+sql%intel', type=('build', 'run'))
+ depends_on("sqlite+column_metadata", when='+sql', type=('build', 'run'))
depends_on("libpng@1.2.57", when='@3')
+ depends_on("libsm", when='@3')
depends_on("pcre+multibyte", when='@5.0:5.8')
depends_on("inputproto", when='@:5.8')
- depends_on("openssl@:1.0.999", when='@:5.9+ssl')
+ depends_on("openssl@:1.0.999", when='@4:5.9+ssl')
depends_on("glib", when='@4:')
depends_on("libpng", when='@4:')
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py
index 49352192f7..403a8a3082 100644
--- a/var/spack/repos/builtin/packages/quantum-espresso/package.py
+++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py
@@ -78,7 +78,7 @@ class QuantumEspresso(Package):
# Conflicts
# MKL with 64-bit integers not supported.
conflicts(
- '^intel-mkl+ilp64',
+ '^mkl+ilp64',
msg='Quantum ESPRESSO does not support MKL 64-bit integer variant'
)
@@ -211,7 +211,7 @@ class QuantumEspresso(Package):
# you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory.
# QE supports an internal FFTW2, but only an external FFTW3 interface.
- if '^intel-mkl' in spec:
+ if '^mkl' in spec:
# A seperate FFT library is not needed when linking against MKL
options.append(
'FFTW_INCLUDE={0}'.format(join_path(env['MKLROOT'],
@@ -230,10 +230,21 @@ class QuantumEspresso(Package):
# appear twice in in link line but this is harmless
lapack_blas = spec['lapack'].libs + spec['blas'].libs
- options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags))
+ # qe-6.5 fails to detect MKL for FFT if BLAS_LIBS is set due to
+ # an unfortunate upsteam change in their autoconf/configure:
+ # - qe-6.5/install/m4/x_ac_qe_blas.m4 only sets 'have_blas'
+ # but no 'have_mkl' if BLAS_LIBS is set (which seems to be o.k.)
+ # - however, qe-6.5/install/m4/x_ac_qe_fft.m4 in 6.5 unfortunately
+ # relies on x_ac_qe_blas.m4 to detect MKL and set 'have_mkl'
+ # - qe-5.4 up to 6.4.1 had a different logic and worked fine with
+ # BLAS_LIBS being set
+ # However, MKL is correctly picked up by qe-6.5 for BLAS and FFT if
+ # MKLROOT is set (which SPACK does automatically for ^mkl)
+ if not ('quantum-espresso@6.5' in spec and '^mkl' in spec):
+ options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags))
if '+scalapack' in spec:
- scalapack_option = 'intel' if '^intel-mkl' in spec else 'yes'
+ scalapack_option = 'intel' if '^mkl' in spec else 'yes'
options.append('--with-scalapack={0}'.format(scalapack_option))
if '+elpa' in spec:
diff --git a/var/spack/repos/builtin/packages/r-openssl/package.py b/var/spack/repos/builtin/packages/r-openssl/package.py
index 36ddd5ed7d..71f648b480 100644
--- a/var/spack/repos/builtin/packages/r-openssl/package.py
+++ b/var/spack/repos/builtin/packages/r-openssl/package.py
@@ -30,3 +30,8 @@ class ROpenssl(RPackage):
depends_on('r-askpass', when='@1.2:', type=('build', 'run'))
depends_on('openssl@1.0.1:')
+
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ flags.append(self.compiler.c99_flag)
+ return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/r-sys/package.py b/var/spack/repos/builtin/packages/r-sys/package.py
index bd9aff9519..1901e54354 100644
--- a/var/spack/repos/builtin/packages/r-sys/package.py
+++ b/var/spack/repos/builtin/packages/r-sys/package.py
@@ -18,3 +18,8 @@ class RSys(RPackage):
list_url = "https://cloud.r-project.org/src/contrib/Archive/sys"
version('3.2', sha256='2819498461fe2ce83d319d1a47844e86bcea6d01d10861818dba289e7099bbcc')
+
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ flags.append(self.compiler.c99_flag)
+ return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch b/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch
new file mode 100644
index 0000000000..4e39b02be7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch
@@ -0,0 +1,67 @@
+diff -ur R-3.6.3.org/configure R-3.6.3/configure
+--- R-3.6.3.org/configure 2020-03-09 11:09:16.060825352 +0900
++++ R-3.6.3/configure 2020-03-09 11:10:47.011280195 +0900
+@@ -6470,13 +6470,13 @@
+ CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+- CFLAGS="-g -O2"
++ CFLAGS="-g -O1"
+ else
+ CFLAGS="-g"
+ fi
+ else
+ if test "$GCC" = yes; then
+- CFLAGS="-O2"
++ CFLAGS="-O1"
+ else
+ CFLAGS=
+ fi
+@@ -7445,13 +7445,13 @@
+ FCFLAGS=$ac_save_FCFLAGS
+ elif test $ac_cv_prog_fc_g = yes; then
+ if test "x$ac_cv_fc_compiler_gnu" = xyes; then
+- FCFLAGS="-g -O2"
++ FCFLAGS="-g -O1"
+ else
+ FCFLAGS="-g"
+ fi
+ else
+ if test "x$ac_cv_fc_compiler_gnu" = xyes; then
+- FCFLAGS="-O2"
++ FCFLAGS="-O1"
+ else
+ FCFLAGS=
+ fi
+@@ -7717,13 +7717,13 @@
+ CXXFLAGS=$ac_save_CXXFLAGS
+ elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+- CXXFLAGS="-g -O2"
++ CXXFLAGS="-g -O1"
+ else
+ CXXFLAGS="-g"
+ fi
+ else
+ if test "$GXX" = yes; then
+- CXXFLAGS="-O2"
++ CXXFLAGS="-O1"
+ else
+ CXXFLAGS=
+ fi
+@@ -8336,13 +8336,13 @@
+ OBJCFLAGS=$ac_save_OBJCFLAGS
+ elif test $ac_cv_prog_objc_g = yes; then
+ if test "$GOBJC" = yes; then
+- OBJCFLAGS="-g -O2"
++ OBJCFLAGS="-g -O1"
+ else
+ OBJCFLAGS="-g"
+ fi
+ else
+ if test "$GOBJC" = yes; then
+- OBJCFLAGS="-O2"
++ OBJCFLAGS="-O1"
+ else
+ OBJCFLAGS=
+ fi
diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py
index 6489a8585c..1893aca9ac 100644
--- a/var/spack/repos/builtin/packages/r/package.py
+++ b/var/spack/repos/builtin/packages/r/package.py
@@ -21,6 +21,7 @@ class R(AutotoolsPackage):
extendable = True
+ version('3.6.3', sha256='89302990d8e8add536e12125ec591d6951022cf8475861b3690bc8bf1cefaa8f')
version('3.6.2', sha256='bd65a45cddfb88f37370fbcee4ac8dd3f1aebeebe47c2f968fd9770ba2bbc954')
version('3.6.1', sha256='5baa9ebd3e71acecdcc3da31d9042fb174d55a42829f8315f2457080978b1389')
version('3.6.0', sha256='36fcac3e452666158e62459c6fc810adc247c7109ed71c5b6c3ad5fc2bf57509')
@@ -85,6 +86,12 @@ class R(AutotoolsPackage):
patch('zlib.patch', when='@:3.3.2')
+ # R cannot be built with '-O2' optimization
+ # with Fujitsu Compiler @4.1.0 now.
+ # Until the Fujitsu compiler resolves this problem,
+ # temporary fix to lower the optimization level.
+ patch('change_optflags_tmp.patch', when='%fj@4.1.0')
+
filter_compiler_wrappers(
'Makeconf', relative_root=os.path.join('rlib', 'R', 'etc')
)
diff --git a/var/spack/repos/builtin/packages/rankstr/package.py b/var/spack/repos/builtin/packages/rankstr/package.py
index 6cf2dc42f9..98d7aea87f 100644
--- a/var/spack/repos/builtin/packages/rankstr/package.py
+++ b/var/spack/repos/builtin/packages/rankstr/package.py
@@ -9,8 +9,8 @@ from spack import *
class Rankstr(CMakePackage):
"""Assign one-to-one mapping of MPI ranks to strings"""
- homepage = "https://github.com/ECP-VeloC/rankstr"
- url = "https://github.com/ECP-VeloC/rankstr/archive/v0.0.2.zip"
+ homepage = "https://github.com/ecp-veloc/rankstr"
+ url = "https://github.com/ecp-veloc/rankstr/archive/v0.0.2.zip"
git = "https://github.com/ecp-veloc/rankstr.git"
tags = ['ecp']
diff --git a/var/spack/repos/builtin/packages/redset/package.py b/var/spack/repos/builtin/packages/redset/package.py
index d06eaca108..88ea8b92d4 100644
--- a/var/spack/repos/builtin/packages/redset/package.py
+++ b/var/spack/repos/builtin/packages/redset/package.py
@@ -9,8 +9,8 @@ from spack import *
class Redset(CMakePackage):
"""Create MPI communicators for disparate redundancy sets"""
- homepage = "https://github.com/ECP-VeloC/redset"
- url = "https://github.com/ECP-VeloC/redset/archive/v0.0.3.zip"
+ homepage = "https://github.com/ecp-veloc/redset"
+ url = "https://github.com/ecp-veloc/redset/archive/v0.0.3.zip"
git = "https://github.com/ecp-veloc/redset.git"
tags = ['ecp']
diff --git a/var/spack/repos/builtin/packages/revbayes/package.py b/var/spack/repos/builtin/packages/revbayes/package.py
index 7cf707a72e..5e02dc974d 100644
--- a/var/spack/repos/builtin/packages/revbayes/package.py
+++ b/var/spack/repos/builtin/packages/revbayes/package.py
@@ -15,10 +15,10 @@ class Revbayes(CMakePackage):
git = "https://github.com/revbayes/revbayes.git"
version('develop', branch='development')
- version('1.0.13', sha256='472b4ccc44d813c1ff1b8d27e8ccf3d96388de79aa1688b3714f683ba65038fa')
- version('1.0.12', sha256='d79f3a9bc72305cab35009d11e1f027fcaacde7329a4c49b5b8285588a8d3588')
- version('1.0.11', sha256='7e81b1952e3a63cb84617fa632f4ccdf246b4d79e7d537a423540de047dadf50')
- version('1.0.10', sha256='95e9affe8ca8d62880cf46778b6ec9dd8726e62a185670ebcbadf2eb2bb79f93')
+ version('1.0.13', sha256='e85e2e1fe182fe9f504900150d936a06d252a362c591b9d3d8272dd085aa85d9')
+ version('1.0.12', sha256='80c926bb6b37288d02e36e07b44e4663841cd1fe541e2cc0b0e44c89ca929759')
+ version('1.0.11', sha256='03052194baa220dde7e622a739f09f34393f67ea00a0b163b409d313d7fc7c02')
+ version('1.0.10', sha256='6a3cf303e7224b0b32637bd8e2c3c2cf2621f5dbe599cd74ce4b0c215d0fcd2d')
variant('mpi', default=True, description='Enable MPI parallel support')
@@ -27,6 +27,12 @@ class Revbayes(CMakePackage):
conflicts('%gcc@7.1.0:', when='@:1.0.12')
+ def url_for_version(self, version):
+ if version > Version('1.0.13'):
+ return 'https://github.com/revbayes/revbayes/archive/v{0}.tar.gz'.format(version)
+ else:
+ return 'https://github.com/revbayes/revbayes.archive/archive/v{0}.tar.gz'.format(version)
+
@property
def root_cmakelists_dir(self):
if self.spec.version > Version('1.0.13') and '+mpi' in self.spec:
@@ -38,6 +44,11 @@ class Revbayes(CMakePackage):
def regenerate(self):
with working_dir(join_path('projects', 'cmake')):
mkdirp('build')
+ if self.spec.version > Version('1.0.13'):
+ generate_version = Executable('./generate_version_number.sh')
+ generate_version()
+ dest = join_path('..', '..', 'src', 'revlanguage', 'utils')
+ install('GitVersion.cpp', dest)
edit = FileFilter('regenerate.sh')
edit.filter('boost="true"', 'boost="false"')
if '+mpi' in self.spec:
diff --git a/var/spack/repos/builtin/packages/ripgrep/package.py b/var/spack/repos/builtin/packages/ripgrep/package.py
new file mode 100644
index 0000000000..eadaa6df79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ripgrep/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Ripgrep(Package):
+ """ripgrep is a line-oriented search tool that recursively searches
+ your current directory for a regex pattern. ripgrep is similar to
+ other popular search tools like The Silver Searcher, ack and grep.
+ """
+
+ homepage = "https://github.com/BurntSushi/ripgrep"
+ url = "https://github.com/BurntSushi/ripgrep/archive/11.0.2.tar.gz"
+
+ version('11.0.2', sha256='0983861279936ada8bc7a6d5d663d590ad34eb44a44c75c2d6ccd0ab33490055')
+
+ depends_on('rust')
+
+ def install(self, spec, prefix):
+ cargo = which('cargo')
+ cargo('install', '--root', prefix, '--path', '.')
+
+ # needed for onig_sys
+ def setup_build_environment(self, env):
+ env.append_flags('LLVM_CONFIG_PATH',
+ join_path(self.spec['llvm'].prefix.libexec.llvm,
+ 'llvm-config'))
+ env.append_flags('LIBCLANG_PATH', self.spec['llvm'].prefix.lib)
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
index 4def4129da..9db1a70254 100644
--- a/var/spack/repos/builtin/packages/root/package.py
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -15,7 +15,7 @@ class Root(CMakePackage):
homepage = "https://root.cern.ch"
url = "https://root.cern/download/root_v6.16.00.source.tar.gz"
- maintainers = ['chissg', 'HadrienG2']
+ maintainers = ['chissg', 'HadrienG2', 'drbenmorgan']
# ###################### Versions ##########################
@@ -26,6 +26,8 @@ class Root(CMakePackage):
# Development version (when more recent than production).
# Production version
+ version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6')
+ version('6.20.00', sha256='68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0')
version('6.18.04', sha256='315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4',
preferred=True)
@@ -110,6 +112,9 @@ class Root(CMakePackage):
# otherwise it crashes with the internal minuit library
variant('minuit', default=True,
description='Automatically search for support libraries')
+ variant('mlp', default=False,
+ description="Enable support for TMultilayerPerceptron "
+ "classes' federation")
variant('mysql', default=False)
variant('opengl', default=True,
description='Enable OpenGL support')
@@ -143,7 +148,7 @@ class Root(CMakePackage):
description='TBB multi-threading support')
variant('threads', default=True,
description='Enable using thread library')
- variant('tmva', default=True,
+ variant('tmva', default=False,
description='Build TMVA multi variate analysis library')
variant('unuran', default=True,
description='Use UNURAN for random number generation')
@@ -185,6 +190,7 @@ class Root(CMakePackage):
depends_on('xxhash', when='@6.13.02:') # See cmake_args, below.
depends_on('xz')
depends_on('zlib')
+ depends_on('zstd', when='@6.20:')
# X-Graphics
depends_on('libx11', when="+x")
@@ -203,8 +209,14 @@ class Root(CMakePackage):
# Qt4
depends_on('qt@:4.999', when='+qt4')
- # TMVA
- depends_on('py-numpy', when='+tmva')
+ # Python
+ depends_on('python@2.7:', when='+python', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'), when='+tmva')
+ # This numpy dependency was not intended and will hopefully
+ # be fixed in 6.20.04.
+ # See: https://sft.its.cern.ch/jira/browse/ROOT-10626
+ depends_on('py-numpy', type=('build', 'run'),
+ when='@6.20.00:6.20.03 +python')
# Optional dependencies
depends_on('davix @0.7.1:', when='+davix')
@@ -219,7 +231,6 @@ class Root(CMakePackage):
depends_on('postgresql', when='+postgres')
depends_on('pythia6+root', when='+pythia6')
depends_on('pythia8', when='+pythia8')
- depends_on('python@2.7:', when='+python', type=('build', 'run'))
depends_on('r', when='+r', type=('build', 'run'))
depends_on('r-rcpp', when='+r', type=('build', 'run'))
depends_on('r-rinside', when='+r', type=('build', 'run'))
@@ -255,6 +266,7 @@ class Root(CMakePackage):
# Incompatible variants
conflicts('+opengl', when='~x', msg='OpenGL requires X')
conflicts('+tmva', when='~gsl', msg='TVMA requires GSL')
+ conflicts('+tmva', when='~mlp', msg='TVMA requires MLP')
conflicts('cxxstd=11', when='+root7', msg='root7 requires at least C++14')
# Feature removed in 6.18:
@@ -357,6 +369,7 @@ class Root(CMakePackage):
['minimal'],
['minuit'],
['minuit2', 'minuit'],
+ ['mlp'],
['monalisa', False],
['mysql'],
['odbc'],
diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py
index 2ae30b5c03..59e827f67d 100644
--- a/var/spack/repos/builtin/packages/rust/package.py
+++ b/var/spack/repos/builtin/packages/rust/package.py
@@ -4,59 +4,455 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
+from six import iteritems
class Rust(Package):
- """The rust programming language toolchain"""
+ """The Rust programming language toolchain
- homepage = "http://www.rust-lang.org"
- git = "https://github.com/rust-lang/rust.git"
+ This package can bootstrap any version of the Rust compiler since Rust
+ 1.23. It does this by downloading the platform-appropriate binary
+ distribution of the desired version of the rust compiler, and then building
+ that compiler from source.
+ """
- version('develop', branch='master')
- version('1.41.0', tag='1.41.0')
- version('1.34.0', tag='1.34.0')
- version('1.32.0', tag='1.32.0')
- version('1.31.1', tag='1.31.1')
- version('1.31.0', tag='1.31.0') # "Rust 2018" edition
- version('1.30.1', tag='1.30.1')
+ homepage = "https://www.rust-lang.org"
+ url = "https://static.rust-lang.org/dist/rustc-1.42.0-src.tar.gz"
+
+ maintainers = ["AndrewGaspar"]
+
+ phases = ['configure', 'build', 'install']
extendable = True
- # Rust
- depends_on("llvm")
- depends_on("curl")
- depends_on("git")
- depends_on("cmake")
- depends_on("binutils")
- depends_on("python@:2.8")
+ variant(
+ 'rustfmt',
+ default=True,
+ description='Formatting tool for Rust code'
+ )
+
+ variant(
+ 'analysis',
+ default=True,
+ description='Outputs code analysis that can be consumed by other tools'
+ )
+
+ variant(
+ 'clippy',
+ default=True,
+ description='Linting tool for Rust'
+ )
+
+ variant(
+ 'rls',
+ default=False,
+ description='The Rust Language Server can be used for IDE integration'
+ )
+
+ variant(
+ 'src',
+ default=True,
+ description='Install Rust source files'
+ )
+
+ depends_on('cmake', type='build')
+ depends_on('python@:2.8', type='build')
+ depends_on('openssl')
+ depends_on('libssh2')
+ depends_on('libgit2')
+
+ # Version Notes:
+ # Here's some information on why your favorite Rust version may be missing.
+ #
+ # < 1.23:
+ # Rust seems to eagerly search for ar next to cc. Spack makes wrappers for
+ # cc and c++, but not for ar, so no ar is found. In future versions, ar
+ # can be specified in the config.
+ #
+ # < 1.17:
+ # The `x.py` bootstrapping script did not exist prior to Rust 1.17. It
+ # would be possible to support both, but for simplicitly, we only support
+ # Rust 1.17 and newer
+ version('1.42.0', sha256='d2e8f931d16a0539faaaacd801e0d92c58df190269014b2360c6ab2a90ee3475')
+ version('1.41.1', sha256='38c93d016e6d3e083aa15e8f65511d3b4983072c0218a529f5ee94dd1de84573')
+ version('1.41.0', sha256='5546822c09944c4d847968e9b7b3d0e299f143f307c00fa40e84a99fabf8d74b')
+ version('1.40.0', sha256='dd97005578defc10a482bff3e4e728350d2099c60ffcf1f5e189540c39a549ad')
+ version('1.39.0', sha256='b4a1f6b6a93931f270691aba4fc85eee032fecda973e6b9c774cd06857609357')
+ version('1.38.0', sha256='644263ca7c7106f8ee8fcde6bb16910d246b30668a74be20b8c7e0e9f4a52d80')
+ version('1.37.0', sha256='120e7020d065499cc6b28759ff04153bfdc2ac9b5adeb252331a4eb87cbe38c3')
+ version('1.36.0', sha256='04c4e4d7213d036d6aaed392841496d272146312c0290f728b7400fccd15bb1b')
+ version('1.35.0', sha256='5a4d637a716bac18d085f44dd87ef48b32195f71b967d872d80280b38cff712d')
+ version('1.34.2', sha256='c69a4a85a1c464368597df8878cb9e1121aae93e215616d45ad7d23af3052f56')
+ version('1.34.1', sha256='b0c785264d17e1dac4598627c248a2d5e07dd39b6666d1881fcfc8e2cf4c40a7')
+ version('1.34.0', sha256='7ac85acffd79dd3a7c44305d9eaabd1f1e7116e2e6e11e770e4bf5f92c0f1f59')
+ version('1.33.0', sha256='5a01a8d7e65126f6079042831385e77485fa5c014bf217e9f3e4aff36a485d94')
+ version('1.32.0', sha256='4c594c7712a0e7e8eae6526c464bf6ea1d82f77b4f61717c3fc28fb27ba2224a')
+ version('1.31.1', sha256='91d2fc22f08d986adab7a54eb3a6a9b99e490f677d2d092e5b9e4e069c23686a')
+ version('1.30.1', sha256='36a38902dbd9a3e1240d46ab0f2ca40d2fd07c2ab6508ed7970c6c4c036b5b29')
+ version('1.30.0', sha256='cd0ba83fcca55b64c0c9f23130fe731dfc1882b73ae21bef96be8f2362c108ee')
+ version('1.29.2', sha256='5088e796aa2e47478cdf41e7243fc5443fafab0a7c70a11423e57c80c04167c9')
+ version('1.29.1', sha256='f1b0728b66ce6bce6d72bbe5ea9e3a24ea22a045665da2ed8fcdfad14f61a349')
+ version('1.29.0', sha256='a4eb34ffd47f76afe2abd813f398512d5a19ef00989d37306217c9c9ec2f61e9')
+ version('1.28.0', sha256='1d5a81729c6f23a0a23b584dd249e35abe9c6f7569cee967cc42b1758ecd6486')
+ version('1.27.2', sha256='9a818c50cdb7880abeaa68b3d97792711e6c64c1cdfb6efdc23f75b8ced0e15d')
+ version('1.27.1', sha256='2133beb01ddc3aa09eebc769dd884533c6cfb08ce684f042497e097068d733d1')
+ version('1.27.0', sha256='2cb9803f690349c9fd429564d909ddd4676c68dc48b670b8ddf797c2613e2d21')
+ version('1.26.2', sha256='fb9ecf304488c9b56600ab20cfd1937482057f7e5db7899fddb86e0774548700')
+ version('1.26.1', sha256='70a7961bd8ec43b2c01e9896e90b0a06804a7fbe0a5c05acc7fd6fed19500df0')
+ version('1.26.0', sha256='4fb09bc4e233b71dcbe08a37a3f38cabc32219745ec6a628b18a55a1232281dd')
+ version('1.25.0', sha256='eef63a0aeea5147930a366aee78cbde248bb6e5c6868801bdf34849152965d2d')
+ version('1.24.1', sha256='3ea53d45e8d2e9a41afb3340cf54b9745f845b552d802d607707cf04450761ef')
+ version('1.24.0', sha256='bb8276f6044e877e447f29f566e4bbf820fa51fea2f912d59b73233ffd95639f')
+ version('1.23.0', sha256='7464953871dcfdfa8afcc536916a686dd156a83339d8ec4d5cb4eb2fe146cb91')
+
+ # The Rust bootstrapping process requires a bootstrapping compiler. The
+ # easiest way to do this is to download the binary distribution of the
+ # same version of the compiler and build with that.
+ #
+ # This dictionary contains a version: hash dictionary for each supported
+ # Rust target.
+ rust_releases = {
+ '1.42.0': {
+ 'x86_64-unknown-linux-gnu': '7d1e07ad9c8a33d8d039def7c0a131c5917aa3ea0af3d0cc399c6faf7b789052',
+ 'powerpc64le-unknown-linux-gnu': '805b08fa1e0aad4d706301ca1f13e2d80810d385cece2c15070360b3c4bd6e4a',
+ 'aarch64-unknown-linux-gnu': 'fdd39f856a062af265012861949ff6654e2b7103be034d046bec84ebe46e8d2d',
+ 'x86_64-apple-darwin': 'db1055c46e0d54b99da05e88c71fea21b3897e74a4f5ff9390e934f3f050c0a8'
+ },
+ '1.41.1': {
+ 'x86_64-unknown-linux-gnu': 'a6d5a3b3f574aafc8f787fea37aad9fb8a7946b383ae5348146927192ff0bef0',
+ 'powerpc64le-unknown-linux-gnu': 'f9b53ca636625b3a2dd87600b6274223c11f866c9b5a34b638ea0013186659d3',
+ 'aarch64-unknown-linux-gnu': 'd54c0f9165b86216b6f1b499f451141407939c5dc6b36c89a3772895a1370242',
+ 'x86_64-apple-darwin': '16615288cf74239783de1b435d329f3d56ed13803c7c10cd4b207d7c8ffa8f67'
+ },
+ '1.41.0': {
+ 'x86_64-unknown-linux-gnu': '343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b',
+ 'powerpc64le-unknown-linux-gnu': 'ba231b0d8273d6928f61e2be3456e816a1de8050135e20c0623dc7a6ea03ba68',
+ 'aarch64-unknown-linux-gnu': '79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27',
+ 'x86_64-apple-darwin': 'b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a'
+ },
+ '1.40.0': {
+ 'x86_64-unknown-linux-gnu': 'fc91f8b4bd18314e83a617f2389189fc7959146b7177b773370d62592d4b07d0',
+ 'powerpc64le-unknown-linux-gnu': 'b1a23e35c383f99e647df6a9239b1dc9313e293deb70a76ba58e8ebe55ef623b',
+ 'aarch64-unknown-linux-gnu': '639271f59766d291ebdade6050e7d05d61cb5c822a3ef9a1e2ab185fed68d729',
+ 'x86_64-apple-darwin': '749ca5e0b94550369cc998416b8854c13157f5d11d35e9b3276064b6766bcb83'
+ },
+ '1.39.0': {
+ 'x86_64-unknown-linux-gnu': 'b10a73e5ba90034fe51f0f02cb78f297ed3880deb7d3738aa09dc5a4d9704a25',
+ 'powerpc64le-unknown-linux-gnu': '53b3fd942c52709f7e6fe11ea572d086e315a57a40b84b9b3290ac0ec8c7c84a',
+ 'aarch64-unknown-linux-gnu': 'e27dc8112fe577012bd88f30e7c92dffd8c796478ce386c49465c03b6db8209f',
+ 'x86_64-apple-darwin': '3736d49c5e9592844e1a5d5452883aeaf8f1e25d671c1bc8f01e81c1766603b5'
+ },
+ '1.38.0': {
+ 'x86_64-unknown-linux-gnu': 'adda26b3f0609dbfbdc2019da4a20101879b9db2134fae322a4e863a069ec221',
+ 'powerpc64le-unknown-linux-gnu': 'f9ed1bb6525abdd4dd6ef10782ad45d2f71496e0c3c88e806b510c81a91c4ff7',
+ 'aarch64-unknown-linux-gnu': '06afd6d525326cea95c3aa658aaa8542eab26f44235565bb16913ac9d12b7bda',
+ 'x86_64-apple-darwin': 'bd301b78ddcd5d4553962b115e1dca5436dd3755ed323f86f4485769286a8a5a'
+ },
+ '1.37.0': {
+ 'x86_64-unknown-linux-gnu': 'cb573229bfd32928177c3835fdeb62d52da64806b844bc1095c6225b0665a1cb',
+ 'powerpc64le-unknown-linux-gnu': '27c59ec40e9e9f71490dc00bf165156ae3ea77c20ffa4b5e5fd712e67527b477',
+ 'aarch64-unknown-linux-gnu': '263ef98fa3a6b2911b56f89c06615cdebf6ef676eb9b2493ad1539602f79b6ba',
+ 'x86_64-apple-darwin': 'b2310c97ffb964f253c4088c8d29865f876a49da2a45305493af5b5c7a3ca73d'
+ },
+ '1.36.0': {
+ 'x86_64-unknown-linux-gnu': '15e592ec52f14a0586dcebc87a957e472c4544e07359314f6354e2b8bd284c55',
+ 'powerpc64le-unknown-linux-gnu': '654a7a18d881811c09f630b0c917825b586e94a6142eceaede6b8046718e4054',
+ 'aarch64-unknown-linux-gnu': 'db78c24d93756f9fe232f081dbc4a46d38f8eec98353a9e78b9b164f9628042d',
+ 'x86_64-apple-darwin': '91f151ec7e24f5b0645948d439fc25172ec4012f0584dd16c3fb1acb709aa325'
+ },
+ '1.35.0': {
+ 'x86_64-unknown-linux-gnu': 'cf600e2273644d8629ed57559c70ca8db4023fd0156346facca9ab3ad3e8f86c',
+ 'powerpc64le-unknown-linux-gnu': 'a933955adec386d75d126e78df5b9941936e156acb3353fc44b85995a81c7bb2',
+ 'aarch64-unknown-linux-gnu': '31e6da56e67838fd2874211ae896a433badf67c13a7b68481f1d5f7dedcc5952',
+ 'x86_64-apple-darwin': 'ac14b1c7dc330dcb53d8641d74ebf9b32aa8b03b9d650bcb9258030d8b10dbd6'
+ },
+ '1.34.2': {
+ 'x86_64-unknown-linux-gnu': '2bf6622d980a52832bae141304e96f317c8a1ccd2dfd69a134a14033e6e43c0f',
+ 'powerpc64le-unknown-linux-gnu': '4ddd55014bbd954b3499859bfa3146bff471de21c1d73fc6e7cccde290fc1918',
+ 'aarch64-unknown-linux-gnu': '15fc6b7ec121df9d4e42483dd12c677203680bec8c69b6f4f62e5a35a07341a8',
+ 'x86_64-apple-darwin': '6fdd4bf7fe26dded0cd57b41ab5f0500a5a99b7bc770523a425e9e34f63d0fd8'
+ },
+ '1.34.1': {
+ 'x86_64-unknown-linux-gnu': '8e2eead11bd5bf61409e29018d007c6fc874bcda2ff54db3d04d1691e779c14e',
+ 'powerpc64le-unknown-linux-gnu': '94ac92d08afcfa2d77ae207e91b57c00cb48ff7ba08a27ed3deb2493f33e8fb1',
+ 'aarch64-unknown-linux-gnu': '0565e50dae58759a3a5287abd61b1a49dfc086c4d6acf2ce604fe1053f704e53',
+ 'x86_64-apple-darwin': 'f4e46b9994ccfab4a84059298d1dc8fd446b1bbb7449462e0459948f7debea0e'
+ },
+ '1.34.0': {
+ 'x86_64-unknown-linux-gnu': '170647ed41b497dc937a6b2556700210bc4be187b1735029ef9ccf52e2cb5ab8',
+ 'powerpc64le-unknown-linux-gnu': '3027e87802e161cce6f3a23d961f6d73b9ed6e829b2cd7af5dfccf6e1207e552',
+ 'aarch64-unknown-linux-gnu': '370c3a8fb9a69df36d645a95e622fb59ac5b513baecddde706cedaf20defa269',
+ 'x86_64-apple-darwin': 'e6bea8d865cc7341c17fa3b8f25f7989e6b04f53e9da24878addc524f3a32664'
+ },
+ '1.33.0': {
+ 'x86_64-unknown-linux-gnu': '6623168b9ee9de79deb0d9274c577d741ea92003768660aca184e04fe774393f',
+ 'powerpc64le-unknown-linux-gnu': 'db885aa4c2c6896c85257be2ade5c9edea660ca6878970683e8d5796618329b5',
+ 'aarch64-unknown-linux-gnu': 'a308044e4076b62f637313ea803fa0a8f340b0f1b53136856f2c43afcabe5387',
+ 'x86_64-apple-darwin': '864e7c074a0b88e38883c87c169513d072300bb52e1d320a067bd34cf14f66bd'
+ },
+ '1.32.0': {
+ 'x86_64-unknown-linux-gnu': 'e024698320d76b74daf0e6e71be3681a1e7923122e3ebd03673fcac3ecc23810',
+ 'powerpc64le-unknown-linux-gnu': 'd6d5c9154f4459465d68ebd4fa1e17bad4b6cfe219667dddd9123c3bfb5dd839',
+ 'aarch64-unknown-linux-gnu': '60def40961728212da4b3a9767d5a2ddb748400e150a5f8a6d5aa0e1b8ba1cee',
+ 'x86_64-apple-darwin': 'f0dfba507192f9b5c330b5984ba71d57d434475f3d62bd44a39201e36fa76304'
+ },
+ '1.31.1': {
+ 'x86_64-unknown-linux-gnu': 'a64685535d0c457f49a8712a096a5c21564cd66fd2f7da739487f028192ebe3c',
+ 'powerpc64le-unknown-linux-gnu': 'a6f61b7a8a06a2b0a785391cc3e6bb8004aa72095eea80db1561039f5bb3e975',
+ 'aarch64-unknown-linux-gnu': '29a7c6eb536fefd0ca459e48dfaea006aa8bff8a87aa82a9b7d483487033632a',
+ 'x86_64-apple-darwin': '8398b1b303bdf0e7605d08b87070a514a4f588797c6fb3593718cb9cec233ad6'
+ },
+ '1.30.1': {
+ 'x86_64-unknown-linux-gnu': 'a01a493ed8946fc1c15f63e74fc53299b26ebf705938b4d04a388a746dfdbf9e',
+ 'powerpc64le-unknown-linux-gnu': 'a7d4806e6702bdbad5017eeddc62f7ff7eb2438b1b9c39cbc90c2b1207f8e65f',
+ 'aarch64-unknown-linux-gnu': '6d87d81561285abd6c1987e07b60b2d723936f037c4b46eedcc12e8566fd3874',
+ 'x86_64-apple-darwin': '3ba1704a7defe3d9a6f0c1f68792c084da83bcba85e936d597bac0c019914b94'
+ },
+ '1.30.0': {
+ 'x86_64-unknown-linux-gnu': 'f620e3125cc505c842150bd873c0603432b6cee984cdae8b226cf92c8aa1a80f',
+ 'powerpc64le-unknown-linux-gnu': '0b53e257dc3d9f3d75cd97be569d3bf456d2c0af57ed0bd5e7a437227d8f465a',
+ 'aarch64-unknown-linux-gnu': '9690c7c50eba5a8461184ee4138b4c284bad31ccc4aa1f2ddeec58b253e6363e',
+ 'x86_64-apple-darwin': '07008d90932712282bc599f1e9a226e97879c758dc1f935e6e2675e45694cc1b'
+ },
+ '1.29.2': {
+ 'x86_64-unknown-linux-gnu': 'e9809825c546969a9609ff94b2793c9107d7d9bed67d557ed9969e673137e8d8',
+ 'powerpc64le-unknown-linux-gnu': '344003b808c20424c4699c9452bd37cdee23857dd4aa125e67d1d6e4bc992091',
+ 'aarch64-unknown-linux-gnu': 'e11461015ca7106ef8ebf00859842bf4be518ee170226cb8eedaaa666946509f',
+ 'x86_64-apple-darwin': '63f54e3013406b39fcb5b84bcf5e8ce85860d0b97a1e156700e467bf5fb5d5f2'
+ },
+ '1.29.1': {
+ 'x86_64-unknown-linux-gnu': 'b36998aea6d58525f25d89f1813b6bfd4cad6ff467e27bd11e761a20dde43745',
+ 'powerpc64le-unknown-linux-gnu': '26a6d652ade6b6a96e6af18e846701ee28f912233372dfe15432139252f88958',
+ 'aarch64-unknown-linux-gnu': '2685224f67b2ef951e0e8b48829f786cbfed95e19448ba292ac33af719843dbe',
+ 'x86_64-apple-darwin': '07b07fbd6fab2390e19550beb8008745a8626cc5e97b72dc659061c1c3b3d008'
+ },
+ '1.29.0': {
+ 'x86_64-unknown-linux-gnu': '09f99986c17b1b6b1bfbc9dd8785e0e4693007c5feb67915395d115c1a3aea9d',
+ 'powerpc64le-unknown-linux-gnu': 'd6954f1da53f7b3618fba3284330d99b6142bb25d9febba6dbfedad59ca53329',
+ 'aarch64-unknown-linux-gnu': '0ed3be0fd9f847afeb4e587fff61f6769ea61b53719d3ea999326284e8975b36',
+ 'x86_64-apple-darwin': '28a0473637585742f6d80ccd8afd88b6b400e65d623c33cb892412759444da93'
+ },
+ '1.28.0': {
+ 'x86_64-unknown-linux-gnu': '2a1390340db1d24a9498036884e6b2748e9b4b057fc5219694e298bdaa37b810',
+ 'powerpc64le-unknown-linux-gnu': '255818156ec1f795ed808a44b4fdb8019187d5ebb7f837ae8f55a1ca40862bb6',
+ 'aarch64-unknown-linux-gnu': '9b6fbcee73070332c811c0ddff399fa31965bec62ef258656c0c90354f6231c1',
+ 'x86_64-apple-darwin': '5d7a70ed4701fe9410041c1eea025c95cad97e5b3d8acc46426f9ac4f9f02393'
+ },
+ '1.27.2': {
+ 'x86_64-unknown-linux-gnu': '5028a18e913ef3eb53e8d8119d2cc0594442725e055a9361012f8e26f754f2bf',
+ 'powerpc64le-unknown-linux-gnu': '11034d150e811d4903b09fd42f0cb76d467a6365a158101493405fff1054572f',
+ 'aarch64-unknown-linux-gnu': 'cf84da70269c0e50bb3cc3d248bae1ffcd70ee69dc5a4e3513b54fefc6685fb4',
+ 'x86_64-apple-darwin': '30c5cc58759caa4efdf2ea7d8438633139c98bee3408beb29ceb26985f3f5f70'
+ },
+ '1.27.1': {
+ 'x86_64-unknown-linux-gnu': '435778a837af764da2a7a7fb4d386b7b78516c7dfc732d892858e9a8a539989b',
+ 'powerpc64le-unknown-linux-gnu': 'a08e6b6fed3329fcd1220b2ee4cd7a311d99121cf780fb6e1c6353bfeddfb176',
+ 'aarch64-unknown-linux-gnu': 'd1146b240e6f628224c3a67e3aae2a57e6c25d544115e5ece9ce91861ec92b3a',
+ 'x86_64-apple-darwin': '475be237962d6aef1038a2faada26fda1e0eaea5d71d6950229a027a9c2bfe08'
+ },
+ '1.27.0': {
+ 'x86_64-unknown-linux-gnu': '235ad78e220b10a2d0267aea1e2c0f19ef5eaaff53ad6ff8b12c1d4370dec9a3',
+ 'powerpc64le-unknown-linux-gnu': '847774a751e848568215739d384e3baf4d6ec37d27fb3add7a8789208c213aff',
+ 'aarch64-unknown-linux-gnu': 'e74ebc33dc3fc19e501a677a87b619746efdba2901949a0319176352f556673a',
+ 'x86_64-apple-darwin': 'a1d48190992e01aac1a181bce490c80cb2c1421724b4ff0e2fb7e224a958ce0f'
+ },
+ '1.26.2': {
+ 'x86_64-unknown-linux-gnu': 'd2b4fb0c544874a73c463993bde122f031c34897bb1eeb653d2ba2b336db83e6',
+ 'powerpc64le-unknown-linux-gnu': 'ea045869074ae3617eeb51207ce183e6915784b9ed615ecb92ce082ddb86ec1f',
+ 'aarch64-unknown-linux-gnu': '3dfad0dc9c795f7ee54c2099c9b7edf06b942adbbf02e9ed9e5d4b5e3f1f3759',
+ 'x86_64-apple-darwin': 'f193705d4c0572a358670dbacbf0ffadcd04b3989728b442f4680fa1e065fa72'
+ },
+ '1.26.1': {
+ 'x86_64-unknown-linux-gnu': 'b7e964bace1286696d511c287b945f3ece476ba77a231f0c31f1867dfa5080e0',
+ 'powerpc64le-unknown-linux-gnu': 'ad8b2f6dd8c5cca1251d65b75ed2120aae3c5375d2c8ed690259cf4a652d7d3c',
+ 'aarch64-unknown-linux-gnu': 'd4a369053c2dfd5f457de6853557dab563944579fa4bb55bc919bacf259bff6d',
+ 'x86_64-apple-darwin': 'ebf898b9fa7e2aafc53682a41f18af5ca6660ebe82dd78f28cd9799fe4dc189a'
+ },
+ '1.26.0': {
+ 'x86_64-unknown-linux-gnu': '13691d7782577fc9f110924b26603ade1990de0b691a3ce2dc324b4a72a64a68',
+ 'powerpc64le-unknown-linux-gnu': '3ba3a4905730ec01007ca1096d9fc3780f4e81f71139a619e1f526244301b7f4',
+ 'aarch64-unknown-linux-gnu': 'e12dc84bdb569cdb382268a5fe6ae6a8e2e53810cb890ec3a7133c20ba8451ac',
+ 'x86_64-apple-darwin': '38708803c3096b8f101d1919ee2d7e723b0adf1bc1bb986b060973b57d8c7c28'
+ },
+ '1.25.0': {
+ 'x86_64-unknown-linux-gnu': '06fb45fb871330a2d1b32a27badfe9085847fe824c189ddc5204acbe27664f5e',
+ 'powerpc64le-unknown-linux-gnu': '79eeb2a7fafa2e0f65f29a1dc360df69daa725347e4b6a533684f1c07308cc6e',
+ 'aarch64-unknown-linux-gnu': '19a43451439e515a216d0a885d14203f9a92502ee958abf86bf7000a7d73d73d',
+ 'x86_64-apple-darwin': 'fcd0302b15e857ba4a80873360cf5453275973c64fa82e33bfbed02d88d0ad17'
+ },
+ '1.24.1': {
+ 'x86_64-unknown-linux-gnu': '4567e7f6e5e0be96e9a5a7f5149b5452828ab6a386099caca7931544f45d5327',
+ 'powerpc64le-unknown-linux-gnu': '6f6c4bebbd7d6dc9989bf372c512dea55af8f56a1a0cfe97784667f0ac5430ee',
+ 'aarch64-unknown-linux-gnu': '64bb25a9689b18ddadf025b90d9bdb150b809ebfb74432dc69cc2e46120adbb2',
+ 'x86_64-apple-darwin': '9d4aacdb5849977ea619d399903c9378163bd9c76ea11dac5ef6eca27849f501'
+ },
+ '1.24.0': {
+ 'x86_64-unknown-linux-gnu': '336cf7af6c857cdaa110e1425719fa3a1652351098dc73f156e5bf02ed86443c',
+ 'powerpc64le-unknown-linux-gnu': '25d9b965a63ad2f345897028094d4c7eafa432237b478754ccbcc299f80629c8',
+ 'aarch64-unknown-linux-gnu': 'a981de306164b47f3d433c1d53936185260642849c79963af7e07d36b063a557',
+ 'x86_64-apple-darwin': '1aecba7cab4bc1a9e0e931c04aa00849e930b567d243da7b676ede8f527a2992'
+ },
+ '1.23.0': {
+ 'x86_64-unknown-linux-gnu': '9a34b23a82d7f3c91637e10ceefb424539dcfa327c2dcd292ff10c047b1fdc7e',
+ 'powerpc64le-unknown-linux-gnu': '60f1a1cc182c516de08c1f42ada01604a3d94383e9dded6b237ae2233999437b',
+ 'aarch64-unknown-linux-gnu': '38379fbd976d2286cb73f21466db40a636a583b9f8a80af5eea73617c7912bc7',
+ 'x86_64-apple-darwin': '9274e977322bb4b153f092255ac9bd85041142c73eaabf900cb2ef3d3abb2eba'
+ }
+ }
+
+ # This dictionary maps Rust target architectures to Spack constraints that
+ # match that target.
+ rust_archs = {
+ 'x86_64-unknown-linux-gnu': [
+ {'platform': 'linux', 'target': 'x86_64:'},
+ {'platform': 'cray', 'target': 'x86_64:'}
+ ],
+ 'powerpc64le-unknown-linux-gnu': [
+ {'platform': 'linux', 'target': 'ppc64le:'},
+ {'platform': 'cray', 'target': 'ppc64le:'}
+ ],
+ 'aarch64-unknown-linux-gnu': [
+ {'platform': 'linux', 'target': 'aarch64:'},
+ {'platform': 'cray', 'target': 'aarch64:'}
+ ],
+ 'x86_64-apple-darwin': [
+ {'platform': 'darwin', 'target': 'x86_64:'}
+ ]
+ }
- # Cargo
- depends_on("openssl")
+ # This loop generates resources for each binary distribution, and maps
+ # them to the version of the compiler they bootstrap. This is in place
+ # of listing each resource explicitly, which would be potentially even
+ # more verbose.
+ #
+ # NOTE: This loop should technically specify the architecture to be the
+ # _host_ architecture, not the target architecture, in order to support
+ # cross compiling. I'm not sure Spack provides a way to specify a
+ # distinction in the when clause, though.
+ for rust_version, rust_targets in iteritems(rust_releases):
+ for rust_target, rust_sha256 in iteritems(rust_targets):
+ for rust_arch in rust_archs[rust_target]:
+ resource(
+ name='rust-{version}-{target}'.format(
+ version=rust_version,
+ target=rust_target
+ ),
+ url='https://static.rust-lang.org/dist/rust-{version}-{target}.tar.gz'.format(
+ version=rust_version,
+ target=rust_target
+ ),
+ sha256=rust_sha256,
+ destination='spack_bootstrap_stage',
+ when='@{version} platform={platform} target={target}'\
+ .format(
+ version=rust_version,
+ platform=rust_arch['platform'],
+ target=rust_arch['target']
+ )
+ )
- phases = ['configure', 'install']
+ # This routine returns the target architecture we intend to build for.
+ def get_rust_target(self):
+ if 'platform=linux' in self.spec or 'platform=cray' in self.spec:
+ if 'target=x86_64:' in self.spec:
+ return 'x86_64-unknown-linux-gnu'
+ elif 'target=ppc64le:' in self.spec:
+ return 'powerpc64le-unknown-linux-gnu'
+ elif 'target=aarch64:' in self.spec:
+ return 'aarch64-unknown-linux-gnu'
+ elif 'platform=darwin target=x86_64:' in self.spec:
+ return 'x86_64-apple-darwin'
+
+ raise InstallError(
+ "rust is not supported for '{0}'".format(
+ self.spec.architecture
+ ))
def configure(self, spec, prefix):
- configure_args = [
- '--prefix=%s' % prefix,
- '--llvm-root=' + spec['llvm'].prefix,
- # Workaround for "FileCheck does not exist" error
- '--disable-codegen-tests',
- # Includes Cargo in the build
- # https://github.com/rust-lang/cargo/issues/3772#issuecomment-283109482
- '--enable-extended',
- # Prevent build from writing bash completion into system path
- '--sysconfdir=%s' % join_path(prefix, 'etc/')
- ]
-
- configure(*configure_args)
-
- # Build system defaults to searching in the same path as Spack's
- # compiler wrappers which causes the build to fail
- filter_file(
- '#ar = "ar"',
- 'ar = "%s"' % join_path(spec['binutils'].prefix.bin, 'ar'),
- 'config.toml')
+ target = self.get_rust_target()
+ # See the NOTE above the resource loop - should be host architecture,
+ # not target aarchitecture if we're to support cross-compiling.
+ bootstrapping_install = Executable(
+ './spack_bootstrap_stage/rust-{version}-{target}/install.sh'
+ .format(
+ version=spec.version,
+ target=target
+ )
+ )
+ # install into the staging area
+ bootstrapping_install('--prefix={0}'.format(
+ join_path(self.stage.source_path, 'spack_bootstrap')
+ ))
+
+ boot_bin = join_path(self.stage.source_path, 'spack_bootstrap/bin')
+
+ # Always build rustc and cargo
+ tools = ['rustc', 'cargo']
+ # Only make additional components available in 'rust-bootstrap'
+ if '+rustfmt' in self.spec:
+ tools.append('rustfmt')
+ if '+analysis' in self.spec:
+ tools.append('analysis')
+ if '@1.33: +clippy' in self.spec:
+ tools.append('clippy')
+ if '+rls' in self.spec:
+ tools.append('rls')
+ if '+src' in self.spec:
+ tools.append('src')
+
+ ar = which('ar', required=True)
+
+ # build.tools was introduced in Rust 1.25
+ tools_spec = 'tools={0}'.format(tools) if '@1.25:' in self.spec else ''
+ # This is a temporary fix due to rust 1.42 breaking self bootstrapping
+ # See: https://github.com/rust-lang/rust/issues/69953
+ #
+ # In general, this should be safe because bootstrapping typically
+ # ensures everything but the bootstrapping script is warning free for
+ # the latest set of warning.
+ deny_warnings_spec = \
+ 'deny-warnings = false' if '@1.42.0' in self.spec else ''
+
+ with open('config.toml', 'w') as out_file:
+ out_file.write("""\
+[build]
+cargo = "{cargo}"
+rustc = "{rustc}"
+docs = false
+vendor = true
+extended = true
+verbose = 2
+{tools_spec}
+
+[rust]
+channel = "stable"
+rpath = true
+{deny_warnings_spec}
+
+[target.{target}]
+ar = "{ar}"
+
+[install]
+prefix = "{prefix}"
+sysconfdir = "etc"
+""".format(
+ cargo=join_path(boot_bin, 'cargo'),
+ rustc=join_path(boot_bin, 'rustc'),
+ prefix=prefix,
+ target=target,
+ deny_warnings_spec=deny_warnings_spec,
+ ar=ar.path,
+ tools_spec=tools_spec
+ )
+ )
+
+ def build(self, spec, prefix):
+ python('./x.py', 'build', extra_env={
+ # vendored libgit2 wasn't correctly building (couldn't find the
+ # vendored libssh2), so let's just have spack build it
+ 'LIBSSH2_SYS_USE_PKG_CONFIG': '1',
+ 'LIBGIT2_SYS_USE_PKG_CONFIG': '1'
+ })
def install(self, spec, prefix):
- make()
- make("install")
+ python('./x.py', 'install')
diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py
index ad1eb5e38d..bce5fe7b52 100644
--- a/var/spack/repos/builtin/packages/samtools/package.py
+++ b/var/spack/repos/builtin/packages/samtools/package.py
@@ -11,8 +11,8 @@ class Samtools(Package):
the SAM format, including sorting, merging, indexing and generating
alignments in a per-position format"""
- homepage = "www.htslib.org"
- url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2"
+ homepage = "http://www.htslib.org"
+ url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2"
version('1.10', sha256='7b9ec5f05d61ec17bd9a82927e45d8ef37f813f79eb03fe06c88377f1bd03585')
version('1.9', sha256='083f688d7070082411c72c27372104ed472ed7a620591d06f928e653ebc23482')
diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py
index 63d0af34eb..3e0e1456cd 100644
--- a/var/spack/repos/builtin/packages/scr/package.py
+++ b/var/spack/repos/builtin/packages/scr/package.py
@@ -17,7 +17,10 @@ class Scr(CMakePackage):
url = "https://github.com/LLNL/scr/archive/v1.2.0.tar.gz"
git = "https://github.com/llnl/scr.git"
- version('master', branch='master')
+ version('develop', branch='develop')
+ version('legacy', branch='legacy')
+
+ version('2.0.0', sha256='471978ae0afb56a20847d3989b994fbd680d1dea21e77a5a46a964b6e3deed6b')
version('1.2.2', sha256='764a85638a9e8762667ec1f39fa5f7da7496fca78de379a22198607b3e027847')
version('1.2.1', sha256='23acab2dc7203e9514455a5168f2fd57bc590affb7a1876912b58201513628fe')
version('1.2.0', sha256='e3338ab2fa6e9332d2326c59092b584949a083a876adf5a19d4d5c7a1bbae047')
@@ -26,6 +29,14 @@ class Scr(CMakePackage):
depends_on('zlib')
depends_on('mpi')
+ # SCR legacy is anything 2.x.x or earlier
+ # SCR components is anything 3.x.x or later
+ depends_on('er', when="@3:")
+ depends_on('kvtree', when="@3:")
+ depends_on('rankstr', when="@3:")
+ depends_on('filo', when="@3:")
+ depends_on('spath', when="@3:")
+
variant('dtcmp', default=True,
description="Build with DTCMP. "
"Necessary to enable user directory naming at runtime")
diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py
index 0e5ac9b72a..f9790370a0 100644
--- a/var/spack/repos/builtin/packages/seacas/package.py
+++ b/var/spack/repos/builtin/packages/seacas/package.py
@@ -26,6 +26,8 @@ class Seacas(CMakePackage):
# ###################### Versions ##########################
version('master', branch='master')
+ version('2020-03-16', sha256='2eb404f3dcb17c3e7eacf66978372830d40ef3722788207741fcd48417807af6')
+ version('2020-01-16', sha256='5ae84f61e410a4f3f19153737e0ac0493b144f20feb1bbfe2024f76613d8bff5')
version('2019-12-18', sha256='f82cfa276ebc5fe6054852383da16eba7a51c81e6640c73b5f01fc3109487c6f')
version('2019-10-14', sha256='ca4cf585cdbc15c25f302140fe1f61ee1a30d72921e032b9a854492b6c61fb91')
version('2019-08-20', sha256='a82c1910c2b37427616dc3716ca0b3c1c77410db6723aefb5bea9f47429666e5')
diff --git a/var/spack/repos/builtin/packages/sentencepiece/package.py b/var/spack/repos/builtin/packages/sentencepiece/package.py
new file mode 100644
index 0000000000..f3b168db66
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sentencepiece/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Sentencepiece(CMakePackage):
+ """Unsupervised text tokenizer for Neural Network-based text generation.
+
+ This is the C++ package."""
+
+ homepage = "https://github.com/google/sentencepiece"
+ url = "https://github.com/google/sentencepiece/archive/v0.1.85.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6')
+
+ depends_on('cmake@3.1:', type='build')
+ depends_on('gperftools') # optional, 10-40% performance improvement
diff --git a/var/spack/repos/builtin/packages/shuffile/package.py b/var/spack/repos/builtin/packages/shuffile/package.py
index 1dc23f1a2c..e7a8da2c0e 100644
--- a/var/spack/repos/builtin/packages/shuffile/package.py
+++ b/var/spack/repos/builtin/packages/shuffile/package.py
@@ -9,8 +9,8 @@ from spack import *
class Shuffile(CMakePackage):
"""Shuffle files between MPI ranks"""
- homepage = "https://github.com/ECP-VeloC/shuffile"
- url = "https://github.com/ECP-VeloC/shuffile/archive/v0.0.3.zip"
+ homepage = "https://github.com/ecp-veloc/shuffile"
+ url = "https://github.com/ecp-veloc/shuffile/archive/v0.0.3.zip"
git = "https://github.com/ecp-veloc/shuffile.git"
tags = ['ecp']
diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py
index ef39dfdaaf..98e8b4be15 100644
--- a/var/spack/repos/builtin/packages/silo/package.py
+++ b/var/spack/repos/builtin/packages/silo/package.py
@@ -28,17 +28,26 @@ class Silo(AutotoolsPackage):
variant('mpi', default=True,
description='Compile with MPI Compatibility')
+ depends_on('hdf5@:1.10.999', when='@:4.10.2')
depends_on('hdf5~mpi', when='~mpi')
depends_on('mpi', when='+mpi')
depends_on('hdf5+mpi', when='+mpi')
- depends_on('qt', when='+silex')
+ depends_on('qt~framework@4.8:4.9', when='+silex')
+ depends_on('libx11', when='+silex')
+ depends_on('readline')
depends_on('zlib')
patch('remove-mpiposix.patch', when='@4.8:4.10.2')
def flag_handler(self, name, flags):
- if name == 'ldflags' and self.spec['hdf5'].satisfies('~shared'):
- flags.append('-ldl')
+ spec = self.spec
+ if name == 'ldflags':
+ if spec['hdf5'].satisfies('~shared'):
+ flags.append('-ldl')
+ flags.append(spec['readline'].libs.search_flags)
+ elif name in ('cflags', 'cxxflags', 'fcflags'):
+ if '+pic' in spec:
+ flags.append(self.compiler.pic_flag)
return (flags, None, None)
@when('%clang@9:')
@@ -81,13 +90,13 @@ class Silo(AutotoolsPackage):
]
if '+silex' in spec:
- config_args.append('--with-Qt-dir=%s' % spec['qt'].prefix)
-
- if '+pic' in spec:
- config_args += [
- 'CFLAGS={0}'.format(self.compiler.pic_flag),
- 'CXXFLAGS={0}'.format(self.compiler.pic_flag),
- 'FCFLAGS={0}'.format(self.compiler.pic_flag)]
+ x = spec['libx11']
+ config_args.extend([
+ '--with-Qt-dir=' + spec['qt'].prefix,
+ '--with-Qt-lib=QtGui -lQtCore',
+ '--x-includes=' + x.prefix.include,
+ '--x-libraries=' + x.prefix.lib,
+ ])
if '+mpi' in spec:
config_args.append('CC=%s' % spec['mpi'].mpicc)
diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py
index 5ac903e263..f45aa07781 100644
--- a/var/spack/repos/builtin/packages/sirius/package.py
+++ b/var/spack/repos/builtin/packages/sirius/package.py
@@ -19,6 +19,8 @@ class Sirius(CMakePackage, CudaPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('6.5.0', sha256='5544f3abbb71dcd6aa08d18aceaf53c38373de4cbd0c3af44fbb39c20cfeb7cc')
+ version('6.4.4', sha256='1c5de9565781847658c3cc11edcb404e6e6d1c5a9dfc81e977de7a9a7a162c8a')
version('6.4.3', sha256='4d1effeadb84b3e1efd7d9ac88018ef567aa2e0aa72e1112f0abf2e493e2a189')
version('6.4.2', sha256='40b9b66deebb6538fc0f4cd802554d0d763ea6426b9b2f0e8db8dc617e494479')
version('6.4.1', sha256='86f25c71517952a63e92e0a9bcf66d27e4afb2b0d67cf84af480f116b8e7f53c')
@@ -59,7 +61,7 @@ class Sirius(CMakePackage, CudaPackage):
depends_on('py-pybind11', when='+python', type=('build', 'run'))
depends_on('magma', when='+magma')
- depends_on('spfft', when='@6.4.0:~cuda')
+ depends_on('spfft', when='@6.4.0:')
depends_on('spfft+cuda', when='@6.4.0:+cuda')
depends_on('elpa+openmp', when='+elpa+openmp')
depends_on('elpa~openmp', when='+elpa~openmp')
diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py
index 2c72af0342..6d3bb5dba2 100644
--- a/var/spack/repos/builtin/packages/slepc/package.py
+++ b/var/spack/repos/builtin/packages/slepc/package.py
@@ -11,8 +11,8 @@ from spack import *
class Slepc(Package):
"""Scalable Library for Eigenvalue Problem Computations."""
- homepage = "http://slepc.upv.es"
- url = "http://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz"
+ homepage = "https://slepc.upv.es"
+ url = "https://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz"
git = "https://gitlab.com/slepc/slepc.git"
maintainers = ['joseeroman', 'balay']
diff --git a/var/spack/repos/builtin/packages/source-highlight/package.py b/var/spack/repos/builtin/packages/source-highlight/package.py
new file mode 100644
index 0000000000..eee706518a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/source-highlight/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+
+
+class SourceHighlight(AutotoolsPackage, GNUMirrorPackage):
+ """This program, given a source file, produces a document with syntax
+ highlighting. It also provides a C++ highlight library
+ (since version 3.0). """
+
+ homepage = "https://www.gnu.org/software/src-highlite/"
+ gnu_mirror_path = "src-highlite/source-highlight-3.1.8.tar.gz"
+
+ version('3.1.9', sha256='3a7fd28378cb5416f8de2c9e77196ec915145d44e30ff4e0ee8beb3fe6211c91')
+ version('3.1.8', sha256='01336a7ea1d1ccc374201f7b81ffa94d0aecb33afc7d6903ebf9fbf33a55ada3')
+
+ depends_on('boost')
diff --git a/var/spack/repos/builtin/packages/spath/package.py b/var/spack/repos/builtin/packages/spath/package.py
new file mode 100644
index 0000000000..5ccd259f48
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spath/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Spath(CMakePackage):
+ """Represent and manipulate file system paths"""
+
+ homepage = "https://github.com/ecp-veloc/spath"
+ git = "https://github.com/ecp-veloc/spath.git"
+
+ tags = ['ecp']
+
+ version('master', branch='master')
+
+ variant('mpi', default=True, description="Build with MPI support.")
+ depends_on('mpi', when='+mpi')
+
+ def cmake_args(self):
+ args = []
+
+ if self.spec.satisfies('platform=cray'):
+ args.append("-DSPATH_LINK_STATIC=ON")
+
+ if "+mpi" in self.spec:
+ args.append('-DMPI=ON')
+ args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
+ else:
+ args.append('-DMPI=OFF')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/spdlog/package.py b/var/spack/repos/builtin/packages/spdlog/package.py
index e4aad3bf42..15a0cc1d9d 100644
--- a/var/spack/repos/builtin/packages/spdlog/package.py
+++ b/var/spack/repos/builtin/packages/spdlog/package.py
@@ -12,6 +12,8 @@ class Spdlog(CMakePackage):
homepage = "https://github.com/gabime/spdlog"
url = "https://github.com/gabime/spdlog/archive/v0.9.0.tar.gz"
+ version('1.5.0', sha256='b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a')
+ version('1.4.2', sha256='821c85b120ad15d87ca2bc44185fa9091409777c756029125a02f81354072157')
version('1.4.1', sha256='3291958eb54ed942d1bd3aef1b4f8ccf70566cbc04d34296ec61eb96ceb73cff')
version('1.2.1', sha256='867a4b7cedf9805e6f76d3ca41889679054f7e5a3b67722fe6d0eae41852a767')
version('1.2.0', sha256='0ba31b9e7f8e43a7be328ab0236d57810e5d4fc8a1a7842df665ae22d5cbd128')
diff --git a/var/spack/repos/builtin/packages/spiral/package.py b/var/spack/repos/builtin/packages/spiral/package.py
new file mode 100644
index 0000000000..5011875e13
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spiral/package.py
@@ -0,0 +1,65 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Spiral(CMakePackage):
+ """SPIRAL is a program generation system for linear transforms and other
+ mathematical functions that produces very high performance code for a wide
+ spectrum of hardware platforms."""
+
+ homepage = "https://spiral.net"
+ url = "https://github.com/spiral-software/spiral-software/archive/8.1.2.tar.gz"
+
+ maintainers = ['spiralgen']
+
+ version('8.1.2', sha256='506f1dbf923aa1c9f19f05444fa947085715eef37c9d2494d133fcaaa1dd50bc')
+
+ extendable = True
+
+ # No dependencies.
+
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('all')
+ make('install/local')
+
+ # For some reason the make install/local doesn't seem to install
+ # the gap exe...though it does work if run manually
+ gapfil = join_path(self.build_directory, 'gap/src/gap')
+ dest = join_path(self.stage.source_path, 'gap/bin')
+ install(gapfil, dest)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.gap.bin)
+ gapfil = join_path(self.build_directory, 'gap/src/gap')
+ install(gapfil, prefix.gap.bin)
+ with working_dir(join_path(self.build_directory, 'gap')):
+ files = ('spiral', 'spirald', '_spiral.g')
+ for fil in files:
+ install(fil, prefix)
+ set_executable(join_path(prefix, fil))
+
+ with working_dir(self.stage.source_path):
+ files = ('LICENSE', 'README.md', 'ReleaseNotes.md')
+ for fil in files:
+ install(fil, prefix)
+
+ mkdirp(prefix.gap.lib)
+ mkdirp(prefix.gap.grp)
+ mkdirp(prefix.namespaces)
+ mkdirp(prefix.profiler)
+ mkdirp(prefix.tests)
+
+ print("self.stage.source_path = " + self.stage.source_path)
+ with working_dir(self.stage.source_path):
+ install_tree('namespaces', prefix.namespaces)
+ install_tree('profiler', prefix.profiler)
+ install_tree('tests', prefix.tests)
+
+ with working_dir(join_path(self.stage.source_path, 'gap')):
+ install_tree('lib', prefix.gap.lib)
+ install_tree('grp', prefix.gap.grp)
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index f8dd0e4948..4e79463f36 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -38,7 +38,7 @@ class Sqlite(AutotoolsPackage):
'(unsafe for <3.26.0.0 due to Magellan).')
variant('rtree', default=False, description='Build with Rtree module')
- variant('column_metadata', default=False, description="Build with COLUMN_METADATA")
+ variant('column_metadata', default=True, description="Build with COLUMN_METADATA")
# See https://blade.tencent.com/magellan/index_en.html
conflicts('+fts', when='@:3.25.99.99')
diff --git a/var/spack/repos/builtin/packages/ssht/float_conversion.patch b/var/spack/repos/builtin/packages/ssht/float_conversion.patch
new file mode 100644
index 0000000000..af81bcafd8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ssht/float_conversion.patch
@@ -0,0 +1,11 @@
+--- spack-src/src/c/ssht_sampling.h
++++ spack-src/src/c/ssht_sampling.h
+@@ -89,7 +89,7 @@
+ */
+ static inline void ssht_sampling_ind2elm(int *el, int *m, int ind) {
+
+- *el = sqrt(ind);
++ *el = lrint(floor(sqrt(ind)));
+ *m = ind - (*el)*(*el) - (*el);
+
+ }
diff --git a/var/spack/repos/builtin/packages/ssht/package.py b/var/spack/repos/builtin/packages/ssht/package.py
index 293ab0eedd..7a4cd4857b 100644
--- a/var/spack/repos/builtin/packages/ssht/package.py
+++ b/var/spack/repos/builtin/packages/ssht/package.py
@@ -7,18 +7,41 @@ from spack import *
class Ssht(Package):
- """The SSHT code provides functionality to perform fast and exact
- spin spherical harmonic transforms."""
+ """ssht: Spin spherical harmonic transforms
+
+ The SSHT code provides functionality to perform fast and exact
+ spin spherical harmonic transforms based on the sampling theorem
+ on the sphere derived in our paper: A novel sampling theorem on
+ the sphere <http://dx.doi.org/10.1109/TSP.2011.2166394>.
+ """
homepage = "https://astro-informatics.github.io/ssht/"
git = "https://github.com/astro-informatics/ssht.git"
+ maintainers = ['eschnett']
+
version('1.2b1', commit='7378ce8853897cbd1b08adebf7ec088c1e40f860')
depends_on('fftw')
+ patch('float_conversion.patch')
+
def install(self, spec, prefix):
- make('default')
- install_tree('include/c', join_path(prefix, 'include'))
+ make('default', 'SSHTDIR=.')
+ mkdirp(join_path(prefix, 'include'))
+ install('src/c/ssht.h',
+ join_path(prefix, 'include', 'ssht.h'))
+ install('src/c/ssht_adjoint.h',
+ join_path(prefix, 'include', 'ssht_adjoint.h'))
+ install('src/c/ssht_core.h',
+ join_path(prefix, 'include', 'ssht_core.h'))
+ install('src/c/ssht_dl.h',
+ join_path(prefix, 'include', 'ssht_dl.h'))
+ install('src/c/ssht_error.h',
+ join_path(prefix, 'include', 'ssht_error.h'))
+ install('src/c/ssht_sampling.h',
+ join_path(prefix, 'include', 'ssht_sampling.h'))
+ install('src/c/ssht_types.h',
+ join_path(prefix, 'include', 'ssht_types.h'))
install_tree('doc/c', join_path(prefix, 'doc'))
install_tree('lib/c', join_path(prefix, 'lib'))
diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py
index 86338a2b9d..2db8a33ab8 100644
--- a/var/spack/repos/builtin/packages/stat/package.py
+++ b/var/spack/repos/builtin/packages/stat/package.py
@@ -14,6 +14,8 @@ class Stat(AutotoolsPackage):
git = "https://github.com/llnl/stat.git"
version('develop', branch='develop')
+ version('4.0.2', sha256='9ece10dde8e1579c9db469ac8d2391b26e59498c0947dbb271c2d01d7ef0a65d',
+ url='https://github.com/LLNL/STAT/releases/download/v4.0.2/stat-4.0.2.tar.gz')
version('4.0.1', sha256='ae3fbd6946003fb16233d82d40285780a9a802da5fe30d09adb8a8b2a2cc4ad6',
url='https://github.com/LLNL/STAT/files/2489327/stat-4.0.1.tar.gz')
version('4.0.0', sha256='1c4f62686645f6dc1d9ef890acc9c2839c150789dc220718775878feb41bdabf',
diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py
index 0e6a27f1dd..20c1dbd88e 100644
--- a/var/spack/repos/builtin/packages/suite-sparse/package.py
+++ b/var/spack/repos/builtin/packages/suite-sparse/package.py
@@ -14,6 +14,7 @@ class SuiteSparse(Package):
url = 'https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v4.5.3.tar.gz'
git = 'https://github.com/DrTimothyAldenDavis/SuiteSparse.git'
+ version('5.7.1', sha256='5ba5add1663d51a1b6fb128b50fe869b497f3096765ff7f8212f0ede044b9557')
version('5.6.0', sha256='76d34d9f6dafc592b69af14f58c1dc59e24853dcd7c2e8f4c98ffa223f6a1adb')
version('5.5.0', sha256='63c73451734e2bab19d1915796c6776565ea6aea5da4063a9797ecec60da2e3d')
version('5.4.0', sha256='d9d62d539410d66550d0b795503a556830831f50087723cb191a030525eda770')
@@ -130,8 +131,7 @@ class SuiteSparse(Package):
# In those SuiteSparse versions calling "make install" in one go is
# not possible, mainly because of GraphBLAS. Thus compile first and
# install in a second run.
- if (self.spec.version >= Version('5.4.0') and
- self.spec.version <= Version('5.6.0')):
+ if '@5.4.0:' in self.spec:
make('default', *make_args)
make_args.append('INSTALL=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/swig/package.py b/var/spack/repos/builtin/packages/swig/package.py
index ac48fb1246..ebc04dd077 100644
--- a/var/spack/repos/builtin/packages/swig/package.py
+++ b/var/spack/repos/builtin/packages/swig/package.py
@@ -23,6 +23,7 @@ class Swig(AutotoolsPackage):
url = "http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz"
version('master', git='https://github.com/swig/swig.git')
+ version('4.0.1', sha256='7a00b4d0d53ad97a14316135e2d702091cd5f193bb58bcfcd8bc59d41e7887a9')
version('4.0.0', sha256='e8a39cd6437e342cdcbd5af27a9bf11b62dc9efec9248065debcb8276fcbb925')
version('3.0.12', sha256='7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d')
version('3.0.11', sha256='d9031d531d7418829a54d0d51c4ed9007016b213657ec70be44031951810566e')
diff --git a/var/spack/repos/builtin/packages/sz/package.py b/var/spack/repos/builtin/packages/sz/package.py
index 3453a5675e..0982883e29 100644
--- a/var/spack/repos/builtin/packages/sz/package.py
+++ b/var/spack/repos/builtin/packages/sz/package.py
@@ -3,21 +3,20 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
from spack import *
-class Sz(AutotoolsPackage):
- """Error-bounded Lossy Compressor for HPC Data."""
+class Sz(CMakePackage):
+ """Error-bounded Lossy Compressor for HPC Data"""
homepage = "https://collab.cels.anl.gov/display/ESR/SZ"
url = "https://github.com/disheng222/SZ/archive/v2.1.8.0.tar.gz"
+ git = "https://github.com/disheng222/sz"
maintainers = ['disheng222']
- parallel = False
-
- git = "https://github.com/disheng222/SZ.git"
version('develop', branch='master')
+ version('2.1.8.3', sha256='be94f3c8ab03d6849c59a98e0ebf80816a6b8d07a1d762a4b285498acb2f3871')
+ version('2.1.8.1', sha256='a27c9c9da16c9c4232c54813ba79178945f47609043f11501d49a171e47d3f46')
version('2.1.8.0', sha256='8d6bceb59a03d52e601e29d9b35c21b146c248abae352f9a4828e91d8d26aa24')
version('2.0.2.0', sha256='176c65b421bdec8e91010ffbc9c7bf7852c799972101d6b66d2a30d9702e59b0')
version('1.4.13.5', sha256='b5e37bf3c377833eed0a7ca0471333c96cd2a82863abfc73893561aaba5f18b9')
@@ -32,17 +31,88 @@ class Sz(AutotoolsPackage):
version('1.4.10.0', sha256='cf23cf1ffd7c69c3d3128ae9c356b6acdc03a38f92c02db5d9bfc04f3fabc506')
version('1.4.9.2', sha256='9dc785274d068d04c2836955fc93518a9797bfd409b46fea5733294b7c7c18f8')
- variant('fortran', default=False,
- description='Enable fortran compilation')
+ variant('python', default=False, description="builds the python wrapper")
+ variant('netcdf', default=False, description="build the netcdf reader")
+ variant('hdf5', default=False, description="build the hdf5 filter")
+ variant('pastri', default=False, description="build the pastri mode")
+ variant('time_compression', default=False, description="build the time based compression mode")
+ variant('random_access', default=False, description="build the random access compression mode")
+ variant('fortran', default=False, description='Enable fortran compilation')
+ variant('shared', default=True, description="build shared versions of the libraries")
# Part of latest sources don't support -O3 optimization
# with Fujitsu compiler.
patch('fix_optimization.patch', when='@2.0.2.0:%fj')
- def configure_args(self):
+ depends_on('zlib')
+ depends_on('zstd')
+
+ extends('python', when="+python")
+ depends_on('python@3:', when="+python", type=('build', 'link', 'run'))
+ depends_on('swig@3.12:', when="+python", type='build')
+ depends_on('py-numpy', when="+python", type=('build', 'link', 'run'))
+ depends_on('hdf5', when="+hdf5")
+ depends_on('netcdf-c', when="+netcdf")
+
+ @property
+ def build_directory(self):
+ """autotools needs a different build directory to work"""
+ if self.version >= Version("2.1.8.1"):
+ return "spack-build"
+ else:
+ return "."
+
+ @when("@:2.1.8.0")
+ def cmake(self, spec, prefix):
+ """use autotools before 2.1.8.1"""
+ configure_args = ["--prefix=" + prefix]
+ if "+fortran" in spec:
+ configure_args.append("--enable-fortran")
+ else:
+ configure_args.append("--disable-fortran")
+ configure(*configure_args)
+
+ def cmake_args(self):
+ """configure the package with CMake for version 2.1.8.1 and later"""
args = []
- if '+fortran' in self.spec:
- args += ['--enable-fortran']
+
+ if "+python" in self.spec:
+ args.append("-DBUILD_PYTHON_WRAPPER=ON")
+ else:
+ args.append("-DBUILD_PYTHON_WRAPPER=OFF")
+
+ if "+netcdf" in self.spec:
+ args.append("-DBUILD_NETCDF_READER=ON")
+ else:
+ args.append("-DBUILD_NETCDF_READER=OFF")
+
+ if "+hdf5" in self.spec:
+ args.append("-DBUILD_HDF5_FILTER=ON")
+ else:
+ args.append("-DBUILD_HDF5_FILTER=OFF")
+
+ if "+pastri" in self.spec:
+ args.append("-DBUILD_PASTRI=ON")
+ else:
+ args.append("-DBUILD_PASTRI=OFF")
+
+ if "+time_compression" in self.spec:
+ args.append("-DBUILD_TIMECMPR=ON")
+ else:
+ args.append("-DBUILD_TIMECMPR=OFF")
+
+ if "+random_access" in self.spec:
+ args.append("-DBUILD_RANDOMACCESS=ON")
+ else:
+ args.append("-DBUILD_RANDOMACCESS=OFF")
+
+ if "+fortran" in self.spec:
+ args.append("-DBUILD_FORTRAN=ON")
+ else:
+ args.append("-DBUILD_FORTRAN=OFF")
+
+ if "+shared" in self.spec:
+ args.append("-DBUILD_SHARED_LIBS=ON")
else:
- args += ['--disable-fortran']
+ args.append("-DBUILD_SHARED_LIBS=OFF")
return args
diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py
index c5ac0a43e8..0329841029 100644
--- a/var/spack/repos/builtin/packages/tau/package.py
+++ b/var/spack/repos/builtin/packages/tau/package.py
@@ -67,6 +67,8 @@ class Tau(Package):
variant('cuda', default=False, description='Activates CUDA support')
variant('fortran', default=darwin_default, description='Activates Fortran support')
variant('io', default=True, description='Activates POSIX I/O support')
+ variant('adios2', default=False, description='Activates ADIOS2 output support')
+ variant('sqlite', default=False, description='Activates SQLite3 output support')
# Support cross compiling.
# This is a _reasonable_ subset of the full set of TAU
@@ -85,18 +87,23 @@ class Tau(Package):
depends_on('libdwarf', when='+libdwarf')
depends_on('libelf', when='+libdwarf')
# TAU requires the ELF header support, libiberty and demangle.
- depends_on('binutils+libiberty+headers~nls', when='+binutils')
+ depends_on('binutils@:2.33.1+libiberty+headers~nls', when='+binutils')
depends_on('python@2.7:', when='+python')
depends_on('libunwind', when='+libunwind')
- depends_on('mpi', when='+mpi')
+ depends_on('mpi', when='+mpi', type=('build', 'run', 'link'))
depends_on('cuda', when='+cuda')
depends_on('gasnet', when='+gasnet')
+ depends_on('adios2', when='+adios2')
+ depends_on('sqlite', when='+sqlite')
+ depends_on('hwloc')
# Elf only required from 2.28.1 on
conflicts('+libelf', when='@:2.28.0')
conflicts('+libdwarf', when='@:2.28.0')
- filter_compiler_wrappers('tau_cc.sh', 'Makefile.tau', relative_root='bin')
+ # ADIOS2, SQLite only available from 2.29.1 on
+ conflicts('+adios2', when='@:2.29.1')
+ conflicts('+sqlite', when='@:2.29.1')
def set_compiler_options(self, spec):
@@ -145,8 +152,7 @@ class Tau(Package):
# TAU configure, despite the name , seems to be a manually
# written script (nothing related to autotools). As such it has
# a few #peculiarities# that make this build quite hackish.
- options = ["-prefix=%s" % prefix,
- "-iowrapper"]
+ options = ["-prefix=%s" % prefix]
if '+craycnl' in spec:
options.append('-arch=craycnl')
@@ -206,6 +212,11 @@ class Tau(Package):
options.append("-otf=%s" % spec['otf2'].prefix)
if '+mpi' in spec:
+ env['CC'] = spec['mpi'].mpicc
+ env['CXX'] = spec['mpi'].mpicxx
+ env['F77'] = spec['mpi'].mpif77
+ env['FC'] = spec['mpi'].mpifc
+
options.append('-mpi')
if '+comm' in spec:
options.append('-PROFILECOMMUNICATORS')
@@ -219,6 +230,12 @@ class Tau(Package):
if '+cuda' in spec:
options.append("-cuda=%s" % spec['cuda'].prefix)
+ if '+adios2' in spec:
+ options.append("-adios=%s" % spec['adios2'].prefix)
+
+ if '+sqlite' in spec:
+ options.append("-sqlite3=%s" % spec['sqlite'].prefix)
+
if '+phase' in spec:
options.append('-PROFILEPHASE')
@@ -253,11 +270,15 @@ class Tau(Package):
compiler_specific_options = self.set_compiler_options(spec)
options.extend(compiler_specific_options)
configure(*options)
+
make("install")
# Link arch-specific directories into prefix since there is
# only one arch per prefix the way spack installs.
self.link_tau_arch_dirs()
+ # TAU may capture Spack's internal compiler wrapper. Replace
+ # it with the correct compiler.
+ self.fix_tau_compilers()
def link_tau_arch_dirs(self):
for subdir in os.listdir(self.prefix):
@@ -267,6 +288,22 @@ class Tau(Package):
if os.path.isdir(src) and not os.path.exists(dest):
os.symlink(join_path(subdir, d), dest)
+ def fix_tau_compilers(self):
+ filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' + self.compiler.cc,
+ self.prefix + '/include/Makefile', backup=False,
+ string=True)
+ filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' +
+ self.compiler.cxx, self.prefix + '/include/Makefile',
+ backup=False, string=True)
+ for makefile in os.listdir(self.prefix.lib):
+ if makefile.startswith('Makefile.tau'):
+ filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' +
+ self.compiler.cc, self.prefix.lib + "/" +
+ makefile, backup=False, string=True)
+ filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' +
+ self.compiler.cxx, self.prefix.lib +
+ "/" + makefile, backup=False, string=True)
+
def setup_run_environment(self, env):
pattern = join_path(self.prefix.lib, 'Makefile.*')
files = glob.glob(pattern)
diff --git a/var/spack/repos/builtin/packages/tcsh/package.py b/var/spack/repos/builtin/packages/tcsh/package.py
index 19bdde1503..90625e352d 100644
--- a/var/spack/repos/builtin/packages/tcsh/package.py
+++ b/var/spack/repos/builtin/packages/tcsh/package.py
@@ -15,10 +15,11 @@ class Tcsh(AutotoolsPackage):
syntax."""
homepage = "http://www.tcsh.org/"
- url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/tcsh-6.20.00.tar.gz"
+ url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.20.00.tar.gz"
+ list_url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/"
- version('6.21.00', sha256='c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972',
- url='http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.21.00.tar.gz')
+ version('6.22.02', sha256='ed287158ca1b00ba477e8ea57bac53609838ebcfd05fcb05ca95021b7ebe885b')
+ version('6.21.00', sha256='c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972')
version('6.20.00', sha256='b89de7064ab54dac454a266cfe5d8bf66940cb5ed048d0c30674ea62e7ecef9d')
def fedora_patch(commit, file, **kwargs): # noqa
@@ -40,7 +41,7 @@ class Tcsh(AutotoolsPackage):
# Downstream patches
fedora_patch('8a6066c901fb4fc75013dd488ba958387f00c74d', 'tcsh-6.20.00-manpage-memoryuse.patch', sha256='3a4e60fe56a450632140c48acbf14d22850c1d72835bf441e3f8514d6c617a9f') # noqa: E501
- depends_on('ncurses')
+ depends_on('ncurses+termlib')
@run_after('install')
def link_csh(self):
diff --git a/var/spack/repos/builtin/packages/the-silver-searcher/package.py b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
index 905fdabba2..516e744247 100644
--- a/var/spack/repos/builtin/packages/the-silver-searcher/package.py
+++ b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
@@ -12,6 +12,7 @@ class TheSilverSearcher(AutotoolsPackage):
homepage = "http://geoff.greer.fm/ag/"
url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz"
+ version('2.2.0', sha256='d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170')
version('2.1.0', sha256='d4652bd91c3a05e87a15809c5f3f14ad2e5e1f80185af510e3fa4ad2038c15d4')
version('0.32.0', sha256='944ca77e498f344b2bfbd8df6d5d8df7bbc1c7e080b50c0bab3d1a9a55151b60')
version('0.30.0', sha256='b4bf9e50bf48bc5fde27fc386f7bcad8644ef15a174c862a10813e81bd127e69')
diff --git a/var/spack/repos/builtin/packages/tixi/package.py b/var/spack/repos/builtin/packages/tixi/package.py
new file mode 100644
index 0000000000..74a7ed7c65
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tixi/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Tixi(CMakePackage):
+ """TiXI is a fast and simple XML interface library and could be used
+ from applications written in C, C++, Fortran, JAVA and Python. """
+
+ homepage = "https://github.com/DLR-SC/tixi"
+ url = "https://github.com/DLR-SC/tixi/archive/v3.0.3.tar.gz"
+ git = "https://github.com/DLR-SC/tixi.git"
+
+ version('3.0.3', sha256='3584e0cec6ab811d74fb311a9af0663736b1d7f11b81015fcb378efaf5ad3589')
+ version('2.2.4', sha256='9080d2a617b7c411b9b4086de23998ce86e261b88075f38c73d3ce25da94b21c')
+
+ depends_on('python', type='build')
+ depends_on('expat')
+ depends_on('curl')
+ depends_on('libxml2')
+ depends_on('libxslt')
diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py
index 6ee165a7b1..e6677668fd 100644
--- a/var/spack/repos/builtin/packages/tmux/package.py
+++ b/var/spack/repos/builtin/packages/tmux/package.py
@@ -29,13 +29,7 @@ class Tmux(AutotoolsPackage):
version('2.1', sha256='31564e7bf4bcef2defb3cb34b9e596bd43a3937cad9e5438701a81a5a9af6176')
version('1.9a', sha256='c5e3b22b901cf109b20dab54a4a651f0471abd1f79f6039d79b250d21c2733f5')
+ # used by configure to e.g. find libtinfo
+ depends_on('pkgconfig', type='build')
depends_on('libevent')
depends_on('ncurses')
-
- def flag_handler(self, name, flags):
- if name == 'cppflags':
- flags.append(self.spec['ncurses'].headers.include_flags)
- return (None, flags, None)
-
- def configure_args(self):
- return ['LIBTINFO_LIBS=-lncurses']
diff --git a/var/spack/repos/builtin/packages/tree/package.py b/var/spack/repos/builtin/packages/tree/package.py
index c3823d313c..3f3e480969 100644
--- a/var/spack/repos/builtin/packages/tree/package.py
+++ b/var/spack/repos/builtin/packages/tree/package.py
@@ -18,6 +18,7 @@ class Tree(Package):
homepage = "http://mama.indstate.edu/users/ice/tree/"
url = "http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz"
+ version('1.8.0', sha256='715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2')
version('1.7.0', sha256='6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12')
def install(self, spec, prefix):
@@ -30,6 +31,10 @@ class Tree(Package):
'hash.o',
'color.o'
]
+ # version 1.8.0 added file.c
+ if spec.version >= Version('1.8.0'):
+ objs.append('file.o')
+
if (sys.platform == 'darwin'):
objs.append('strverscmp.o')
diff --git a/var/spack/repos/builtin/packages/triangle/package.py b/var/spack/repos/builtin/packages/triangle/package.py
index 882b8b472b..f8703f33b3 100644
--- a/var/spack/repos/builtin/packages/triangle/package.py
+++ b/var/spack/repos/builtin/packages/triangle/package.py
@@ -18,6 +18,8 @@ class Triangle(Package):
version('1.6', sha256='1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480')
+ depends_on('libx11', type='link')
+
def install(self, spec, prefix):
make()
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch b/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch
new file mode 100644
index 0000000000..6da3f4314d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch
@@ -0,0 +1,39 @@
+From 01b88601a85691da73042089778db6db5bf6cf01 Mon Sep 17 00:00:00 2001
+From: Jean-Paul Pelteret <jppelteret@gmail.com>
+Date: Sat, 1 Feb 2020 05:48:48 +0100
+Subject: [PATCH] Fix Clang 8.0.0 compiler errors 12.18.1
+
+---
+ packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp | 2 +-
+ packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp b/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp
+index d4f72bc..302dfc2 100644
+--- a/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp
++++ b/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp
+@@ -126,7 +126,7 @@ public:
+ virtual void
+ getDefaultParameters (Teuchos::ParameterList& params) const
+ {
+- const SolverInput<SC> input;
++ const SolverInput<SC> input{};
+ const int verbosity = 0;
+ const std::string implResScal = input.needToScale ?
+ "Norm of Preconditioned Initial Residual" : "None"; // ???
+diff --git a/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp b/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp
+index 051a2df..a703aff 100644
+--- a/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp
++++ b/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp
+@@ -143,7 +143,7 @@ namespace MueLu {
+
+ // Usage: GetMLSubList(paramList, "smoother", 2);
+ const Teuchos::ParameterList & GetMLSubList(const Teuchos::ParameterList & paramList, const std::string & type, int levelID) {
+- static const Teuchos::ParameterList emptyParamList;
++ static const Teuchos::ParameterList emptyParamList{};
+
+ char levelChar[11];
+ sprintf(levelChar, "(level %d)", levelID);
+--
+2.10.1 (Apple Git-78)
+
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 74e6b7f85e..fd623fe8db 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -66,6 +66,10 @@ class Trilinos(CMakePackage):
description='Enable explicit template instantiation (ETI)')
variant('float', default=False,
description='Enable single precision (float) numbers in Trilinos')
+ variant('gotype', default='long',
+ values=('int', 'long', 'long_long'),
+ multi=False,
+ description='global ordinal type for Tpetra')
variant('fortran', default=True,
description='Compile with Fortran support')
variant('openmp', default=False,
@@ -82,18 +86,24 @@ class Trilinos(CMakePackage):
description='Compile with Boost')
variant('cgns', default=False,
description='Enable CGNS')
- variant('adios2', default=False,
+ variant('adios2', default=False,
description='Enable ADIOS2')
+ variant('glm', default=True,
+ description='Compile with GLM')
variant('gtest', default=True,
description='Compile with Gtest')
variant('hdf5', default=True,
description='Compile with HDF5')
variant('hypre', default=True,
description='Compile with Hypre preconditioner')
+ variant('matio', default=True,
+ description='Compile with Matio')
variant('metis', default=True,
description='Compile with METIS and ParMETIS')
variant('mumps', default=True,
description='Compile with support for MUMPS solvers')
+ variant('netcdf', default=True,
+ description='Compile with netcdf')
variant('pnetcdf', default=False,
description='Compile with parallel-netcdf')
variant('suite-sparse', default=True,
@@ -185,6 +195,8 @@ class Trilinos(CMakePackage):
description='Enable DataTransferKit')
variant('fortrilinos', default=False,
description='Enable ForTrilinos')
+ variant('mesquite', default=False,
+ description='Enable Mesquite')
resource(name='dtk',
git='https://github.com/ornl-cees/DataTransferKit.git',
@@ -208,6 +220,21 @@ class Trilinos(CMakePackage):
tag='develop',
placement='packages/ForTrilinos',
when='+fortrilinos')
+ resource(name='mesquite',
+ url='https://github.com/trilinos/mesquite/archive/trilinos-release-12-12-1.tar.gz',
+ sha256='e0d09b0939dbd461822477449dca611417316e8e8d8268fd795debb068edcbb5',
+ placement='packages/mesquite',
+ when='+mesquite @12.12.1:12.16.99')
+ resource(name='mesquite',
+ git='https://github.com/trilinos/mesquite.git',
+ commit='20a679679b5cdf15bf573d66c5dc2b016e8b9ca1', # branch trilinos-release-12-12-1
+ placement='packages/mesquite',
+ when='+mesquite @12.18.1:12.18.99')
+ resource(name='mesquite',
+ git='https://github.com/trilinos/mesquite.git',
+ tag='develop',
+ placement='packages/mesquite',
+ when='+mesquite @develop')
conflicts('+amesos2', when='~teuchos')
conflicts('+amesos2', when='~tpetra')
@@ -266,6 +293,8 @@ class Trilinos(CMakePackage):
conflicts('+fortrilinos', when='~fortran')
conflicts('+fortrilinos', when='@:99')
conflicts('+fortrilinos', when='@master')
+ # Only allow Mesquite with Trilinos 12.12 and up, and develop
+ conflicts('+mesquite', when='@0:12.10.99,master')
# Can only use one type of SuperLU
conflicts('+superlu-dist', when='+superlu')
# For Trilinos v11 we need to force SuperLUDist=OFF, since only the
@@ -289,6 +318,8 @@ class Trilinos(CMakePackage):
# ADIOS2 was only added after v12.14.1
conflicts('+adios2', when='@:12.14.1')
conflicts('+adios2', when='@xsdk-0.2.0')
+ conflicts('+pnetcdf', when='~netcdf')
+
# ###################### Dependencies ##########################
# Everything should be compiled position independent (-fpic)
@@ -296,17 +327,17 @@ class Trilinos(CMakePackage):
depends_on('lapack')
depends_on('boost', when='+boost')
depends_on('boost', when='+dtk')
- depends_on('matio')
- depends_on('glm')
+ depends_on('matio', when='+matio')
+ depends_on('glm', when='+glm')
depends_on('metis@5:', when='+metis')
depends_on('suite-sparse', when='+suite-sparse')
depends_on('zlib', when="+zlib")
# MPI related dependencies
depends_on('mpi')
- depends_on('netcdf-c+mpi', when="~pnetcdf")
- depends_on('netcdf-c+mpi+parallel-netcdf', when="+pnetcdf@master,12.12.1:")
- depends_on('parallel-netcdf', when="+pnetcdf@master,12.12.1:")
+ depends_on('netcdf-c+mpi', when="+netcdf~pnetcdf")
+ depends_on('netcdf-c+mpi+parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:")
+ depends_on('parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:")
depends_on('parmetis', when='+metis')
depends_on('cgns', when='+cgns')
depends_on('adios2', when='+adios2')
@@ -342,6 +373,7 @@ class Trilinos(CMakePackage):
patch('xlf_tpetra.patch', when='@12.12.1%xl')
patch('xlf_tpetra.patch', when='@12.12.1%xl_r')
patch('xlf_tpetra.patch', when='@12.12.1%clang')
+ patch('fix_clang_errors_12_18_1.patch', when='@12.18.1%clang')
def url_for_version(self, version):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
@@ -417,6 +449,8 @@ class Trilinos(CMakePackage):
'ON' if '+kokkos' in spec else 'OFF'),
'-DTrilinos_ENABLE_MiniTensor=%s' % (
'ON' if '+minitensor' in spec else 'OFF'),
+ '-DTrilinos_ENABLE_Mesquite:BOOL=%s' % (
+ 'ON' if '+mesquite' in spec else 'OFF'),
'-DTrilinos_ENABLE_ML:BOOL=%s' % (
'ON' if '+ml' in spec else 'OFF'),
'-DTrilinos_ENABLE_MueLu:BOOL=%s' % (
@@ -511,14 +545,23 @@ class Trilinos(CMakePackage):
'-DTPL_ENABLE_LAPACK=ON',
'-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names),
'-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
- '-DTPL_ENABLE_Netcdf:BOOL=ON',
- '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix,
+ '-DTPL_ENABLE_GLM:BOOL=%s' % ('ON' if '+glm' in spec else 'OFF'),
+ '-DTPL_ENABLE_Matio:BOOL=%s' % (
+ 'ON' if '+matio' in spec else 'OFF'),
'-DTPL_ENABLE_X11:BOOL=%s' % (
'ON' if '+x11' in spec else 'OFF'),
'-DTrilinos_ENABLE_Gtest:BOOL=%s' % (
'ON' if '+gtest' in spec else 'OFF'),
])
+ if '+netcdf' in spec:
+ options.extend([
+ '-DTPL_ENABLE_Netcdf:BOOL=ON',
+ '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix
+ ])
+ else:
+ options.extend(['-DTPL_ENABLE_Netcdf:BOOL=OFF'])
+
if '+hypre' in spec:
options.extend([
'-DTPL_ENABLE_HYPRE:BOOL=ON',
@@ -722,10 +765,15 @@ class Trilinos(CMakePackage):
)
if '+explicit_template_instantiation' in spec and '+tpetra' in spec:
+ gotype = spec.variants['gotype'].value
options.extend([
'-DTpetra_INST_DOUBLE:BOOL=ON',
- '-DTpetra_INST_INT_LONG:BOOL=ON',
- '-DTpetra_INST_INT_LONG_LONG:BOOL=ON',
+ '-DTpetra_INST_INT_INT:BOOL=%s' % (
+ 'ON' if gotype == 'int' else 'OFF'),
+ '-DTpetra_INST_INT_LONG:BOOL=%s' % (
+ 'ON' if gotype == 'long' else 'OFF'),
+ '-DTpetra_INST_INT_LONG_LONG:BOOL=%s' % (
+ 'ON' if gotype == 'long_long' else 'OFF'),
'-DTpetra_INST_COMPLEX_DOUBLE=%s' % complex_s,
'-DTpetra_INST_COMPLEX_FLOAT=%s' % complex_float_s,
'-DTpetra_INST_FLOAT=%s' % float_s,
diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py
index 681fa5b6bf..e6ce377c70 100644
--- a/var/spack/repos/builtin/packages/ucx/package.py
+++ b/var/spack/repos/builtin/packages/ucx/package.py
@@ -13,7 +13,10 @@ class Ucx(AutotoolsPackage):
homepage = "http://www.openucx.org"
url = "https://github.com/openucx/ucx/releases/download/v1.3.1/ucx-1.3.1.tar.gz"
+ maintainers = ['hppritcha']
+
# Current
+ version('1.7.0', sha256='6ab81ee187bfd554fe7e549da93a11bfac420df87d99ee61ffab7bb19bdd3371')
version('1.6.1', sha256='1425648aa03f5fa40e4bc5c4a5a83fe0292e2fe44f6054352fbebbf6d8f342a1')
version('1.6.0', sha256='360e885dd7f706a19b673035a3477397d100a02eb618371697c7f3ee4e143e2c')
version('1.5.2', sha256='1a333853069860e86ba69b8d071ccc9871209603790e2b673ec61f8086913fad')
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index fc33ca7feb..90ea23dde3 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -16,6 +16,13 @@ class Umpire(CMakePackage):
version('develop', branch='develop', submodules='True')
version('master', branch='master', submodules='True')
+ version('2.1.0', tag='v2.1.0', submodules='True')
+ version('2.0.0', tag='v2.0.0', submodules='True')
+ version('1.1.0', tag='v1.1.0', submodules='True')
+ version('1.0.1', tag='v1.0.1', submodules='True')
+ version('1.0.0', tag='v1.0.0', submodules='True')
+ version('0.3.5', tag='v0.3.5', submodules='True')
+ version('0.3.4', tag='v0.3.4', submodules='True')
version('0.3.3', tag='v0.3.3', submodules='True')
version('0.3.2', tag='v0.3.2', submodules='True')
version('0.3.1', tag='v0.3.1', submodules='True')
@@ -29,7 +36,8 @@ class Umpire(CMakePackage):
version('0.1.3', tag='v0.1.3', submodules='True')
variant('cuda', default=False, description='Build with CUDA support')
- variant('fortran', default=False, description='Build C/Fortran API')
+ variant('fortran', default=False, description='Build Fortran API')
+ variant('c', default=True, description='Build C API')
variant('numa', default=False, description='Enable NUMA support')
depends_on('cuda', when='+cuda')
@@ -37,6 +45,7 @@ class Umpire(CMakePackage):
depends_on('cmake@3.9:', when='+cuda', type='build')
conflicts('+numa', when='@:0.3.2')
+ conflicts('~c', when='+fortran', msg='Fortran API requires C API')
def cmake_args(self):
spec = self.spec
@@ -50,6 +59,9 @@ class Umpire(CMakePackage):
else:
options.append('-DENABLE_CUDA=Off')
+ if '+c' in spec:
+ options.append('-DENABLE_C=On')
+
if '+fortran' in spec:
options.append('-DENABLE_FORTRAN=On')
diff --git a/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch b/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch
new file mode 100644
index 0000000000..a621f7dd11
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch
@@ -0,0 +1,25 @@
+diff --git a/client/src/pmpi_wrappers.c b/client/src/pmpi_wrappers.c
+index ac86d39..38755f5 100644
+--- a/client/src/pmpi_wrappers.c
++++ b/client/src/pmpi_wrappers.c
+@@ -14,7 +14,6 @@
+
+ #include "pmpi_wrappers.h"
+ #include "unifyfs.h"
+-#include <mpi.h>
+ #include <stdio.h>
+
+ int unifyfs_mpi_init(int* argc, char*** argv)
+diff --git a/client/src/pmpi_wrappers.h b/client/src/pmpi_wrappers.h
+index b90057c..995e44b 100644
+--- a/client/src/pmpi_wrappers.h
++++ b/client/src/pmpi_wrappers.h
+@@ -15,6 +15,8 @@
+ #ifndef UNIFYFS_PMPI_WRAPPERS_H
+ #define UNIFYFS_PMPI_WRAPPERS_H
+
++#include <mpi.h>
++
+ /* MPI_Init PMPI wrapper */
+ int unifyfs_mpi_init(int* argc, char*** argv);
+ int MPI_Init(int* argc, char*** argv);
diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py
index cf4a8e0c4f..77b4014741 100644
--- a/var/spack/repos/builtin/packages/unifyfs/package.py
+++ b/var/spack/repos/builtin/packages/unifyfs/package.py
@@ -43,6 +43,7 @@ class Unifyfs(AutotoolsPackage):
depends_on('margo')
depends_on('mercury+bmi+sm')
depends_on('mpi')
+ depends_on('openssl')
# Optional dependencies
depends_on('hdf5', when='+hdf5')
@@ -53,6 +54,10 @@ class Unifyfs(AutotoolsPackage):
conflicts('%intel', when='+fortran')
conflicts('%xl', when='+fortran')
+ # Fix broken --enable-mpi-mount config option for version 0.9.0
+ # See https://github.com/LLNL/UnifyFS/issues/467
+ patch('auto-mount.patch', when='@0.9.0')
+
# Parallel disabled to prevent tests from being run out-of-order when
# installed with the --test={root, all} option.
parallel = False
diff --git a/var/spack/repos/builtin/packages/unqlite/package.py b/var/spack/repos/builtin/packages/unqlite/package.py
new file mode 100644
index 0000000000..84c3b5575e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unqlite/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Unqlite(CMakePackage):
+ """UnQLite is a in-process software library which implements a self-contained,
+ serverless, zero-configuration, transactional NoSQL database engine."""
+
+ homepage = "https://unqlite.org/"
+ url = "https://github.com/symisc/unqlite/archive/v1.1.9.tar.gz"
+ git = 'https://github.com/symisc/unqlite.git'
+
+ version('master', branch='master')
+ version('1.1.9', sha256='33d5b5e7b2ca223942e77d31112d2e20512bc507808414451c8a98a7be5e15c0')
diff --git a/var/spack/repos/builtin/packages/uqtk/package.py b/var/spack/repos/builtin/packages/uqtk/package.py
new file mode 100644
index 0000000000..c6af83e759
--- /dev/null
+++ b/var/spack/repos/builtin/packages/uqtk/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack import *
+
+
+class Uqtk(CMakePackage):
+ """Sandia Uncertainty Quantification Toolkit. The UQ Toolkit (UQTk) is a
+ collection of libraries and tools for the quantification of uncertainty
+ in numerical model predictions"""
+
+ homepage = "https://www.sandia.gov/UQToolkit/"
+ url = "https://github.com/sandialabs/UQTk/archive/v3.0.4.tar.gz"
+ git = "https://github.com/sandialabs/UQTk.git"
+
+ version('master', branch='master')
+ version('3.0.4', sha256='0a72856438134bb571fd328d1d30ce3d0d7aead32eda9b7fb6e436a27d546d2e')
+
+ depends_on('expat')
diff --git a/var/spack/repos/builtin/packages/userspace-rcu/examples.patch b/var/spack/repos/builtin/packages/userspace-rcu/examples.patch
new file mode 100644
index 0000000000..ef65ab4b79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/userspace-rcu/examples.patch
@@ -0,0 +1,13 @@
+diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
+index edf00eb..cd491df 100644
+--- a/doc/examples/Makefile.am
++++ b/doc/examples/Makefile.am
+@@ -141,7 +141,7 @@ all-local:
+ else \
+ rel_build_subdir="../"; \
+ fi; \
+- $(MAKE) -f dist-files/Makefile CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I"$${rel_src_subdir}/$(top_srcdir)/include/" -I"$${rel_src_subdir}/$(top_srcdir)/src/" -I"$${rel_build_subdir}$(top_builddir)/include/" -I"$${rel_build_subdir}$(top_builddir)/include/src/"" CFLAGS="$(CFLAGS)" AM_CFLAGS="$(AM_CFLAGS)" LDFLAGS="$(LDFLAGS)" AM_LDFLAGS="$(AM_LDFLAGS) -L../../../src/.libs/ -Wl,-rpath "$(PWD)/../../src/.libs/"" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all;
++ $(MAKE) -f dist-files/Makefile CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I"$${rel_src_subdir}/$(top_srcdir)/include/" -I"$${rel_src_subdir}/$(top_srcdir)/src/" -I"$${rel_build_subdir}$(top_builddir)/include/" -I"$${rel_build_subdir}$(top_builddir)/include/src/"" CFLAGS="$(CFLAGS)" AM_CFLAGS="$(AM_CFLAGS)" LDFLAGS="$(LDFLAGS)" AM_LDFLAGS="$(AM_LDFLAGS) -L../../../src/.libs/ -Wl,-rpath="$(PWD)/../../src/.libs/"" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all;
+
+ clean-local:
+ $(AM_V_at)$(MAKE) -f dist-files/Makefile $(AM_MAKEFLAGS) clean; \
diff --git a/var/spack/repos/builtin/packages/userspace-rcu/package.py b/var/spack/repos/builtin/packages/userspace-rcu/package.py
new file mode 100644
index 0000000000..be03459d34
--- /dev/null
+++ b/var/spack/repos/builtin/packages/userspace-rcu/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class UserspaceRcu(AutotoolsPackage):
+ """liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
+ data synchronization library provides read-side access which scales
+ linearly with the number of cores."""
+
+ homepage = "http://liburcu.org/"
+ url = "https://github.com/urcu/userspace-rcu/archive/v0.11.1.tar.gz"
+
+ version('0.11.1', sha256='a0ed8995edfbeac5f5eb2f152a8f3654040ecfc99a746bfe3da3bccf435b7d5d')
+ version('0.11.0', sha256='7834e4692565b491b9d2d258095d6c05089c9bae8a1bef280c338d15ba02e9ac')
+ version('0.10.2', sha256='e117c416fced894e24720cc1b38247074a13020f19d6704b38e554cbcb993d06')
+ version('0.9.6', sha256='4d9e4ca40c079e0b0e9f912a9092589b97fbaf80eb6537e9ae70d48c09472efa')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+
+ patch('examples.patch', sha256='49aa8fa99d3a1315c639d2a90014079c34a7d0a6dde110b6cbb7b02f87324742')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./bootstrap')
diff --git a/var/spack/repos/builtin/packages/util-linux/package.py b/var/spack/repos/builtin/packages/util-linux/package.py
index 49afb16f54..b95f8222e2 100644
--- a/var/spack/repos/builtin/packages/util-linux/package.py
+++ b/var/spack/repos/builtin/packages/util-linux/package.py
@@ -14,6 +14,10 @@ class UtilLinux(AutotoolsPackage):
list_url = "https://www.kernel.org/pub/linux/utils/util-linux"
list_depth = 1
+ version('2.35.1', sha256='37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606')
+ version('2.35', sha256='98acab129a8490265052e6c1e033ca96d68758a13bb7fcd232c06bf16cc96238')
+ version('2.34', sha256='b62c92e5e1629642113cd41cec1ee86d1ee7e36b8ffe8ec3ac89c11797e9ac25')
+ version('2.33', sha256='952fb0d3498e81bd67b3c48e283c80cb12c719bc2357ec5801e7d420991ad319')
version('2.29.2', sha256='29ccdf91d2c3245dc705f0ad3bf729ac41d8adcdbeff914e797c552ecb04a4c7')
version('2.29.1', sha256='a6a7adba65a368e6dad9582d9fbedee43126d990df51266eaee089a73c893653')
version('2.25', sha256='7e43273a9e2ab99b5a54ac914fddf5d08ba7ab9b114c550e9f03474672bd23a1')
diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py
index 684a5bdfa8..3f759efeac 100644
--- a/var/spack/repos/builtin/packages/valgrind/package.py
+++ b/var/spack/repos/builtin/packages/valgrind/package.py
@@ -22,6 +22,9 @@ class Valgrind(AutotoolsPackage):
url = "https://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2"
git = "git://sourceware.org/git/valgrind.git"
+ # The server is sometimes a bit slow to respond
+ fetch_options = {'timeout': 60}
+
version('develop', branch='master')
version('3.15.0', sha256='417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1')
version('3.14.0', sha256='037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5')
diff --git a/var/spack/repos/builtin/packages/veccore/package.py b/var/spack/repos/builtin/packages/veccore/package.py
new file mode 100644
index 0000000000..a339358a08
--- /dev/null
+++ b/var/spack/repos/builtin/packages/veccore/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Veccore(CMakePackage, CudaPackage):
+ """SIMD Vectorization Library for VecGeom and GeantV"""
+
+ homepage = "https://gitlab.cern.ch/VecGeom/VecCore"
+ url = "https://gitlab.cern.ch/VecGeom/VecCore/-/archive/v0.6.0/VecCore-v0.6.0.tar.gz"
+ git = "https://gitlab.cern.ch/VecGeom/VecCore.git"
+
+ maintainers = ['drbenmorgan', 'sethrj']
+
+ version('master', branch='master')
+ version('0.6.0', sha256='e7ff874ba2a8201624795cbe11c84634863e4ac7da691a936772d4202ef54413')
+ version('0.5.2', sha256='0cfaa830b9d10fb9df4ced5208a742623da08520fea5949461fe81637a27db15')
+ version('0.5.1', sha256='5ef3a8d8692d8f82641aae76b58405b8b3a1539a8f21b23d66a5df8327eeafc4')
+ version('0.5.0', sha256='aba3e0217c0cd829290c9fe63f1db865838aa25312ae0a09effdcb186f7771be')
+ version('0.4.2', sha256='4a3bb944bce63dc1dc9757ba53624b822e1aff5ed088d542039a20227ed2b715')
+
+ variant('cxxstd',
+ default='11',
+ values=('11', '14', '17'),
+ multi=False,
+ description='Use the specified C++ standard when building.')
+ conflicts('cxxstd=14', when='@:0.5')
+ conflicts('cxxstd=17', when='@:0.5')
+
+ def cmake_args(self):
+ define = CMakePackage.define
+ return [
+ define('VC', False),
+ define('UMESIMD', False),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('CUDA'),
+ ]
diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py
index ed6e516c8a..2e28586ef6 100644
--- a/var/spack/repos/builtin/packages/vecgeom/package.py
+++ b/var/spack/repos/builtin/packages/vecgeom/package.py
@@ -5,49 +5,96 @@
from spack import *
-import platform
-class Vecgeom(CMakePackage):
+class Vecgeom(CMakePackage, CudaPackage):
"""The vectorized geometry library for particle-detector simulation
(toolkits)."""
homepage = "https://gitlab.cern.ch/VecGeom/VecGeom"
- url = "https://gitlab.cern.ch/api/v4/projects/VecGeom%2FVecGeom/repository/archive.tar.gz?sha=v0.3.rc"
+ url = "https://gitlab.cern.ch/VecGeom/VecGeom/-/archive/v1.1.6/VecGeom-v1.1.6.tar.gz"
+ git = "https://gitlab.cern.ch/VecGeom/VecGeom.git"
- version('01.01.03', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v01.01.03', preferred=True)
- version('01.00.00', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v01.00.00')
- version('00.05.00', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v00.05.00')
+ maintainers = ['drbenmorgan', 'sethrj']
+
+ version('master', branch='master')
+ version('1.1.6', sha256='c4806a6b67d01b40074b8cc6865d78574a6a1c573be51696f2ecdf98b9cb954a')
+ version('1.1.5', sha256='da674f3bbc75c30f56c1a2d251fa8930c899f27fa64b03a36569924030d87b95')
+ version('1.1.3', sha256='ada09e8b6b2fa6c058290302b2cb5a6c2e644192aab1623c31d18c6a2f4c01c8')
+ version('1.0.1', sha256='1eae7ac9014c608e8d8db5568058b8c0fea1a1dc7a8f54157a3a1c997b6fd9eb')
+ version('0.5.2', tag='v00.05.02',
+ commit='a7e0828c915ff936a79e672d1dd84b087a323b51')
version('0.3.rc', sha256='a87a9ea4ab126b59ff9c79182bc0911ead3d76dd197194742e2a35ccd341299d')
- variant('cxxstd',
- default='17',
- values=('11', '14', '17'),
- multi=False,
- description='Use the specified C++ standard when building.')
- variant('vector',
- default='native',
- values=('sse3', 'sse4.2', 'native'),
- multi=False,
- description='Specify the instruction set for vectorization.')
+ _cxxstd_values = ('11', '14', '17')
+ variant('cxxstd', default='11', values=_cxxstd_values, multi=False,
+ description='Use the specified C++ standard when building')
+ variant('gdml', default=True,
+ description='Support native GDML geometry descriptions')
+ variant('geant4', default=False,
+ description='Support Geant4 geometry construction')
+ variant('root', default=False,
+ description='Support ROOT geometry construction')
+ variant('shared', default=True,
+ description='Build shared libraries')
+
+ depends_on('veccore@0.5.2:', type=('build', 'link'), when='@1.1.0:')
+ depends_on('veccore@0.4.2', type=('build', 'link'), when='@:1.0')
+ depends_on('veccore+cuda', type=('build', 'link'), when='+cuda')
+
+ conflicts('+cuda', when='@:1.1.5')
- depends_on('cmake@3.5:', type='build')
+ for std in _cxxstd_values:
+ depends_on('geant4 cxxstd=' + std, when='+geant4 cxxstd=' + std)
+ depends_on('root cxxstd=' + std, when='+root cxxstd=' + std)
+ depends_on('veccore cxxstd=' + std, when='cxxstd=' + std)
+ depends_on('xerces-c cxxstd=' + std, when='+gdml cxxstd=' + std)
def cmake_args(self):
- options = [
- '-DBACKEND=Scalar',
- '-DGEANT4=OFF',
- '-DUSOLIDS=ON',
- '-DUSOLIDS_VECGEOM=ON',
- '-DROOT=OFF',
- '-DNO_SPECIALIZATION=ON',
- '-DCMAKE_VERBOSE_MAKEFILE=TRUE']
- options.append('-DCMAKE_CXX_STANDARD={0}'.
- format(self.spec.variants['cxxstd'].value))
- arch = platform.machine()
- if arch == 'x86_64':
- options.append('-DVECGEOM_VECTOR={0}'.
- format(self.spec.variants['vector'].value))
+ # Possible target options are from the main CMakeLists.txt, assuming
+ # "best" is last
+ target = self.spec.target
+ vecgeom_arch = "sse2 sse3 ssse3 sse4.1 sse4.2 avx avx2".split()
+ for feature in reversed(vecgeom_arch):
+ if feature.replace('.', '_') in target:
+ target_instructions = feature
+ break
else:
- options.append('-DVECGEOM_VECTOR=' + arch)
+ # No features available (could be 'generic' arch)
+ target_instructions = 'empty'
+
+ define = CMakePackage.define
+ options = [
+ define('BACKEND', 'Scalar'),
+ define('BUILTIN_VECCORE', False),
+ define('NO_SPECIALIZATION', True),
+ define('VECGEOM_VECTOR', target_instructions),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('CUDA'),
+ self.define_from_variant('GDML'),
+ self.define_from_variant('GEANT4'),
+ self.define_from_variant('ROOT'),
+ ]
+
+ # Set testing flags
+ build_tests = self.run_tests
+ options.extend([
+ define('BUILD_TESTING', build_tests),
+ define('CTEST', build_tests),
+ define('GDMLTESTING', build_tests and '+gdml' in self.spec),
+ ])
+
+ if '+cuda' in self.spec:
+ arch = self.spec.variants['cuda_arch'].value
+ if len(arch) != 1 or arch[0] == 'none':
+ raise InstallError("Exactly one cuda_arch must be specified")
+ options.append(define('CUDA_ARCH', arch[0]))
+
+ if self.spec.satisfies("@:0.5.2"):
+ options.extend([
+ define('USOLIDS', True),
+ define('USOLIDS_VECGEOM', True),
+ ])
+
return options
diff --git a/var/spack/repos/builtin/packages/verrou/package.py b/var/spack/repos/builtin/packages/verrou/package.py
index 265ee2b096..f92443d144 100644
--- a/var/spack/repos/builtin/packages/verrou/package.py
+++ b/var/spack/repos/builtin/packages/verrou/package.py
@@ -32,18 +32,24 @@ class Verrou(AutotoolsPackage):
version('2.0.0', sha256='798df6e426ec57646a2a626d756b72f0171647ae5b07c982952dae2d71e26045')
version('1.1.0', sha256='b5105f61c65680f31551199cd143b2e15f412c34c821537998a7165e315dde2d')
+ # The server is sometimes a bit slow to respond
+ timeout = {'timeout': 60}
+
resource(name='valgrind-3.15.0',
url='https://sourceware.org/pub/valgrind/valgrind-3.15.0.tar.bz2',
sha256='417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1',
- when='@2.2.0:')
+ when='@2.2.0:',
+ fetch_options=timeout)
resource(name='valgrind-3.14.0',
url='https://sourceware.org/pub/valgrind/valgrind-3.14.0.tar.bz2',
sha256='037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5',
- when='@2.1.0:2.1.99')
+ when='@2.1.0:2.1.99',
+ fetch_options=timeout)
resource(name='valgrind-3.13.0',
url='https://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2',
sha256='d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b',
- when='@1.1.0:2.0.99')
+ when='@1.1.0:2.0.99',
+ fetch_options=timeout)
variant('fma', default=True,
description='Activates fused multiply-add support for Verrou')
diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py
new file mode 100644
index 0000000000..a40234c643
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcfun/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Xcfun(CMakePackage):
+ """Exchange-Correlation functionals with arbitrary order derivatives."""
+
+ homepage = "https://github.com/dftlibs/xcfun"
+ url = "https://github.com/dftlibs/xcfun/archive/v2.0.0a4.tar.gz"
+
+ maintainers = ['robertodr', 'bast']
+
+ version('2.0.0a6',
+ sha256='a51086490890393439f98c5e3e4e1622908fe934bbc5063b1d4363cc4c15496d')
+
+ extends('python')
+ depends_on('cmake@3.11:', type='build')
+ depends_on('python@3:')
+ depends_on('py-pybind11')
+ depends_on('py-numpy')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ "-DCMAKE_INSTALL_LIBDIR=lib",
+ "-DPYMOD_INSTALL_LIBDIR=/python{0}/site-packages".format(
+ spec["python"].version[:-1]),
+ "-DXCFUN_MAX_ORDER=8",
+ "-DXCFUN_PYTHON_INTERFACE=ON",
+ "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/xgboost/package.py b/var/spack/repos/builtin/packages/xgboost/package.py
index f65ea1621b..15cdbb763e 100644
--- a/var/spack/repos/builtin/packages/xgboost/package.py
+++ b/var/spack/repos/builtin/packages/xgboost/package.py
@@ -13,7 +13,9 @@ class Xgboost(CMakePackage, CudaPackage):
homepage = "https://xgboost.ai/"
url = "https://github.com/dmlc/xgboost/releases/download/v0.81/xgboost-0.81.tar.bz2"
+ git = "https://github.com/dmlc/xgboost.git"
+ version('0.90', tag='v0.90', submodules=True)
version('0.81', sha256='9d8ff161699111d45c96bd15229aa6d80eb1cab7cbbef7e8eaa60ccfb5a4f806')
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py
index 57775a6a19..cfd89eb061 100644
--- a/var/spack/repos/builtin/packages/xsetpointer/package.py
+++ b/var/spack/repos/builtin/packages/xsetpointer/package.py
@@ -14,9 +14,9 @@ class Xsetpointer(AutotoolsPackage):
version('1.0.1', sha256='54be93b20fd6f1deac67246d6e214a60b02dcfbf05295e43751f7a04edb986ac')
- depends_on('libxi')
- depends_on('libx11')
+ depends_on('libxi', type='link')
+ depends_on('libx11', type='link')
+ depends_on('inputproto@1.4:', type='link')
- depends_on('inputproto@1.4:', type='build')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xts/package.py b/var/spack/repos/builtin/packages/xts/package.py
index 19149f9ec9..89dcc96bf7 100644
--- a/var/spack/repos/builtin/packages/xts/package.py
+++ b/var/spack/repos/builtin/packages/xts/package.py
@@ -15,14 +15,17 @@ class Xts(AutotoolsPackage):
version('0.99.1', sha256='d04d987b9a9f8b3921dfe8de8577d0c2a0f21d2c4c3196948fc9805838a352e6')
- depends_on('libx11')
- depends_on('libxext')
- depends_on('libxi')
- depends_on('libxtst')
- depends_on('libxau')
- depends_on('libxt')
- depends_on('libxmu')
- depends_on('libxaw')
+ depends_on('libx11', type='link')
+ depends_on('libxext', type='link')
+ depends_on('libxi', type='link')
+ depends_on('libxtst', type='link')
+ depends_on('libxau', type='link')
+ depends_on('libxt', type='link')
+ depends_on('libxmu', type='link')
+ depends_on('libxaw', type='link')
+ depends_on('inputproto', type='link')
+ depends_on('recordproto', type='link')
+ depends_on('fixesproto', type='link')
depends_on('xtrans', type='build')
depends_on('bdftopcf', type='build')
diff --git a/var/spack/repos/builtin/packages/yarn/package.py b/var/spack/repos/builtin/packages/yarn/package.py
new file mode 100644
index 0000000000..c9a5299a10
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yarn/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Yarn(Package):
+ """Fast, reliable, and secure dependency management."""
+
+ homepage = "https://yarnpkg.com"
+ url = "https://github.com/yarnpkg/yarn/releases/download/v1.22.4/yarn-v1.22.4.tar.gz"
+
+ version('1.22.4', sha256='bc5316aa110b2f564a71a3d6e235be55b98714660870c5b6b2d2d3f12587fb58')
+ version('1.22.2', sha256='de4cff575ae7151f8189bf1d747f026695d768d0563e2860df407ab79c70693d')
+ version('1.22.1', sha256='3af905904932078faa8f485d97c928416b30a86dd09dcd76e746a55c7f533b72')
+ version('1.22.0', sha256='de8871c4e2822cba80d58c2e72366fb78567ec56e873493c9ca0cca76c60f9a5')
+ version('1.21.1', sha256='d1d9f4a0f16f5ed484e814afeb98f39b82d4728c6c8beaafb5abc99c02db6674')
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)