From 2264e30d99d8b9fbdec8fa69b594e53d8ced15a1 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 28 Oct 2019 20:27:54 -0500 Subject: Update URL parsing regexes and tests (#13411) * Update URL parsing regexes and tests * Get rid of no longer used README * Merge py-udunits and py-cf-units * netcdf -> netcdf-c * setup_environment -> setup_*_environment * Fix doc tests * Few last minute fixes * Simplify prefix removal copypasta --- var/spack/repos/builtin/packages/adios/package.py | 2 +- var/spack/repos/builtin/packages/adios2/package.py | 4 +- var/spack/repos/builtin/packages/adlbx/package.py | 10 +- var/spack/repos/builtin/packages/alglib/package.py | 3 - .../repos/builtin/packages/allpaths-lg/package.py | 2 +- var/spack/repos/builtin/packages/amp/package.py | 2 +- var/spack/repos/builtin/packages/aria2/package.py | 2 +- .../repos/builtin/packages/arm-forge/package.py | 42 +- .../repos/builtin/packages/armadillo/package.py | 2 +- var/spack/repos/builtin/packages/asagi/package.py | 4 +- var/spack/repos/builtin/packages/ascent/package.py | 26 +- .../repos/builtin/packages/augustus/package.py | 8 +- .../repos/builtin/packages/autofact/package.py | 10 +- var/spack/repos/builtin/packages/axl/package.py | 2 +- .../repos/builtin/packages/biopieces/package.py | 12 +- .../repos/builtin/packages/breakdancer/package.py | 6 +- .../repos/builtin/packages/bsseeker2/package.py | 2 +- var/spack/repos/builtin/packages/c-ares/package.py | 21 + .../repos/builtin/packages/c-blosc2/package.py | 1 - .../builtin/packages/candle-benchmarks/package.py | 2 +- var/spack/repos/builtin/packages/cares/package.py | 21 - var/spack/repos/builtin/packages/catch/package.py | 84 -- var/spack/repos/builtin/packages/catch2/package.py | 85 ++ var/spack/repos/builtin/packages/cdo/package.py | 4 +- var/spack/repos/builtin/packages/ceed/README.md | 3 - var/spack/repos/builtin/packages/ceed/package.py | 13 +- .../repos/builtin/packages/channelflow/package.py | 14 +- var/spack/repos/builtin/packages/check/package.py | 4 +- .../builtin/packages/clustal-omega/package.py | 17 + .../repos/builtin/packages/clustalo/package.py | 17 - var/spack/repos/builtin/packages/cmor/package.py | 4 +- var/spack/repos/builtin/packages/cppzmq/package.py | 4 +- var/spack/repos/builtin/packages/cquery/package.py | 6 +- var/spack/repos/builtin/packages/cub/package.py | 2 +- var/spack/repos/builtin/packages/czmq/package.py | 4 +- .../repos/builtin/packages/damaris/package.py | 6 +- var/spack/repos/builtin/packages/davix/package.py | 2 +- var/spack/repos/builtin/packages/dbcsr/package.py | 4 +- var/spack/repos/builtin/packages/dealii/package.py | 10 +- var/spack/repos/builtin/packages/dislin/package.py | 22 +- .../builtin/packages/dotnet-core-sdk/package.py | 8 +- .../repos/builtin/packages/eccodes/package.py | 4 +- .../repos/builtin/packages/ecp-viz-sdk/package.py | 2 +- .../repos/builtin/packages/elmer-fem/package.py | 87 -- .../repos/builtin/packages/elmerfem/package.py | 87 ++ var/spack/repos/builtin/packages/eq-r/package.py | 54 + var/spack/repos/builtin/packages/eqr/package.py | 54 - var/spack/repos/builtin/packages/er/package.py | 2 +- .../repos/builtin/packages/es-shell/package.py | 21 + var/spack/repos/builtin/packages/es/package.py | 22 - var/spack/repos/builtin/packages/esmf/package.py | 4 +- .../repos/builtin/packages/exmcutils/package.py | 2 +- .../repos/builtin/packages/exodusii/package.py | 6 +- .../repos/builtin/packages/fastmath/package.py | 19 +- .../repos/builtin/packages/fastq-screen/package.py | 2 +- var/spack/repos/builtin/packages/ferret/package.py | 4 +- .../repos/builtin/packages/flibcpp/package.py | 2 +- .../repos/builtin/packages/flux-core/package.py | 17 +- .../repos/builtin/packages/fpocket/package.py | 6 +- .../repos/builtin/packages/fstrack/package.py | 22 +- var/spack/repos/builtin/packages/funhpc/package.py | 2 +- var/spack/repos/builtin/packages/gdal/package.py | 10 +- var/spack/repos/builtin/packages/gdl/package.py | 2 +- var/spack/repos/builtin/packages/ginkgo/package.py | 1 - var/spack/repos/builtin/packages/gmsh/package.py | 2 +- var/spack/repos/builtin/packages/gmt/package.py | 4 +- .../repos/builtin/packages/gnu-prolog/package.py | 23 - .../repos/builtin/packages/gprolog/package.py | 23 + var/spack/repos/builtin/packages/grass/package.py | 4 +- .../repos/builtin/packages/grib-api/package.py | 4 +- var/spack/repos/builtin/packages/grpc/package.py | 2 +- .../repos/builtin/packages/guidance/package.py | 6 +- var/spack/repos/builtin/packages/hc/package.py | 12 +- var/spack/repos/builtin/packages/henson/package.py | 3 +- var/spack/repos/builtin/packages/hisea/package.py | 1 - var/spack/repos/builtin/packages/homer/package.py | 2 +- var/spack/repos/builtin/packages/hpgmg/package.py | 2 +- var/spack/repos/builtin/packages/hub/package.py | 4 +- var/spack/repos/builtin/packages/ibmisc/package.py | 2 +- .../repos/builtin/packages/image-magick/package.py | 35 - .../repos/builtin/packages/imagemagick/package.py | 35 + var/spack/repos/builtin/packages/ioapi/package.py | 2 +- var/spack/repos/builtin/packages/julia/package.py | 2 +- var/spack/repos/builtin/packages/kvtree/package.py | 2 +- var/spack/repos/builtin/packages/lammps/package.py | 2 +- .../repos/builtin/packages/libcheck/package.py | 17 - .../repos/builtin/packages/libgit2/package.py | 2 +- .../repos/builtin/packages/libgpuarray/package.py | 2 +- .../repos/builtin/packages/libmongoc/package.py | 79 - var/spack/repos/builtin/packages/libnrm/package.py | 2 +- var/spack/repos/builtin/packages/libzmq/package.py | 61 + var/spack/repos/builtin/packages/likwid/package.py | 2 +- var/spack/repos/builtin/packages/lsf/package.py | 1 - .../repos/builtin/packages/lua-bitlib/package.py | 3 +- .../repos/builtin/packages/lua-jit/package.py | 21 - .../repos/builtin/packages/lua-lpeg/package.py | 3 +- .../repos/builtin/packages/lua-luajit/package.py | 21 + .../repos/builtin/packages/lua-mpack/package.py | 3 +- var/spack/repos/builtin/packages/macsio/package.py | 2 +- var/spack/repos/builtin/packages/maker/package.py | 2 +- .../repos/builtin/packages/mariadb/package.py | 2 +- var/spack/repos/builtin/packages/meme/package.py | 2 +- var/spack/repos/builtin/packages/mfem/package.py | 6 +- var/spack/repos/builtin/packages/moab/package.py | 6 +- .../builtin/packages/mongo-c-driver/package.py | 79 + .../builtin/packages/mongo-cxx-driver/package.py | 2 +- .../builtin/packages/mpi-bash/mpibash-4.3.patch | 1565 ++++++++++++++++++++ .../repos/builtin/packages/mpi-bash/package.py | 28 + .../builtin/packages/mpibash/mpibash-4.3.patch | 1565 -------------------- .../repos/builtin/packages/mpibash/package.py | 28 - var/spack/repos/builtin/packages/mxnet/package.py | 5 +- var/spack/repos/builtin/packages/nauty/package.py | 4 +- var/spack/repos/builtin/packages/nccmp/package.py | 2 +- var/spack/repos/builtin/packages/ncl/package.py | 12 +- var/spack/repos/builtin/packages/nco/package.py | 14 +- var/spack/repos/builtin/packages/ncview/package.py | 4 +- .../repos/builtin/packages/netcdf-c/package.py | 273 ++++ .../repos/builtin/packages/netcdf-cxx/package.py | 4 +- .../repos/builtin/packages/netcdf-cxx4/package.py | 8 +- .../builtin/packages/netcdf-fortran/package.py | 11 +- var/spack/repos/builtin/packages/netcdf/package.py | 266 ---- var/spack/repos/builtin/packages/nrm/package.py | 2 +- var/spack/repos/builtin/packages/ntpoly/package.py | 2 +- var/spack/repos/builtin/packages/nut/package.py | 8 +- var/spack/repos/builtin/packages/octave/package.py | 4 +- .../repos/builtin/packages/omega-h/package.py | 2 +- .../repos/builtin/packages/openldap/package.py | 2 +- .../repos/builtin/packages/openpmd-api/package.py | 25 +- var/spack/repos/builtin/packages/pagit/package.py | 35 +- .../repos/builtin/packages/paraview/package.py | 4 +- .../repos/builtin/packages/parquet-cpp/package.py | 41 + .../repos/builtin/packages/parquet/package.py | 41 - .../builtin/packages/perl-alien-libxml2/package.py | 2 +- .../builtin/packages/perl-bio-perl/package.py | 110 -- .../repos/builtin/packages/perl-bioperl/package.py | 109 ++ .../repos/builtin/packages/perl-db-file/package.py | 27 + .../repos/builtin/packages/perl-dbfile/package.py | 27 - .../builtin/packages/perl-devel-symdump/package.py | 2 +- .../builtin/packages/perl-file-chdir/package.py | 2 +- .../builtin/packages/perl-gd-graph/package.py | 20 - .../repos/builtin/packages/perl-gd-text/package.py | 17 - .../repos/builtin/packages/perl-gdgraph/package.py | 20 + .../builtin/packages/perl-gdtextutil/package.py | 17 + .../builtin/packages/perl-intervaltree/package.py | 18 - .../builtin/packages/perl-io-prompt/package.py | 2 +- .../repos/builtin/packages/perl-io-tty/package.py | 2 +- .../builtin/packages/perl-libwww-perl/package.py | 1 + .../builtin/packages/perl-log-log4perl/package.py | 4 +- .../packages/perl-lwp-protocol-https/package.py | 2 +- .../repos/builtin/packages/perl-lwp/package.py | 26 - .../builtin/packages/perl-perl-version/package.py | 17 + .../packages/perl-set-intervaltree/package.py | 18 + .../builtin/packages/perl-star-fusion/package.py | 4 +- .../builtin/packages/perl-term-readkey/package.py | 22 - .../builtin/packages/perl-termreadkey/package.py | 22 + .../repos/builtin/packages/perl-version/package.py | 17 - .../packages/perl-xml-namespacesupport/package.py | 2 +- var/spack/repos/builtin/packages/pism/package.py | 8 +- var/spack/repos/builtin/packages/prank/package.py | 2 +- .../repos/builtin/packages/ps-lite/package.py | 2 +- .../packages/py-avro-json-serializer/package.py | 4 +- .../repos/builtin/packages/py-brian2/package.py | 2 +- .../repos/builtin/packages/py-cdat-lite/package.py | 2 +- .../repos/builtin/packages/py-cf-units/package.py | 2 +- .../repos/builtin/packages/py-cpuinfo/package.py | 17 - .../builtin/packages/py-espressopp/package.py | 2 +- .../builtin/packages/py-exodus-bundler/package.py | 20 + .../repos/builtin/packages/py-exodus/package.py | 20 - .../repos/builtin/packages/py-filelock/package.py | 21 +- .../repos/builtin/packages/py-fn-py/package.py | 18 + var/spack/repos/builtin/packages/py-fn/package.py | 18 - .../repos/builtin/packages/py-fsspec/package.py | 4 +- .../repos/builtin/packages/py-git2/package.py | 31 - .../repos/builtin/packages/py-hpccm/package.py | 4 +- .../repos/builtin/packages/py-igraph/package.py | 19 - .../repos/builtin/packages/py-jpype/package.py | 25 - .../repos/builtin/packages/py-jpype1/package.py | 25 + .../repos/builtin/packages/py-jsonpatch/package.py | 4 +- .../builtin/packages/py-jsonpointer/package.py | 4 +- .../builtin/packages/py-jupyter-client/package.py | 2 +- .../packages/py-jupyter-notebook/package.py | 39 - .../builtin/packages/py-jupyterhub/package.py | 2 +- .../repos/builtin/packages/py-lru-dict/package.py | 19 + .../repos/builtin/packages/py-lrudict/package.py | 19 - .../repos/builtin/packages/py-macholib/package.py | 2 +- .../builtin/packages/py-matplotlib/package.py | 2 +- .../repos/builtin/packages/py-meep/package.py | 73 - .../builtin/packages/py-methylcode/package.py | 10 +- .../repos/builtin/packages/py-mongo/package.py | 20 - .../packages/py-mysql-connector-python/package.py | 26 + .../py-mysql-connector-python/single-version.patch | 22 + .../builtin/packages/py-mysql-connector/package.py | 26 - .../py-mysql-connector/single-version.patch | 22 - .../repos/builtin/packages/py-netcdf4/package.py | 14 +- .../repos/builtin/packages/py-notebook/package.py | 39 + .../repos/builtin/packages/py-opentuner/package.py | 2 +- .../repos/builtin/packages/py-perf/package.py | 20 - .../builtin/packages/py-performance/package.py | 2 +- .../repos/builtin/packages/py-plotly/package.py | 4 +- .../builtin/packages/py-py-cpuinfo/package.py | 17 + .../repos/builtin/packages/py-pygit2/package.py | 31 + .../repos/builtin/packages/py-pygpu/package.py | 2 +- .../repos/builtin/packages/py-pyke/package.py | 6 +- .../repos/builtin/packages/py-pymongo/package.py | 2 + .../repos/builtin/packages/py-pynio/package.py | 22 +- .../repos/builtin/packages/py-pyperf/package.py | 20 + .../builtin/packages/py-python-igraph/package.py | 19 + .../builtin/packages/py-python-meep/package.py | 73 + .../repos/builtin/packages/py-pyyaml/package.py | 3 +- .../repos/builtin/packages/py-pyzmq/package.py | 21 + .../packages/py-requests-toolbelt/package.py | 6 +- .../repos/builtin/packages/py-scoop/package.py | 2 +- .../packages/py-sphinxautomodapi/package.py | 4 +- .../repos/builtin/packages/py-spyder/package.py | 2 +- .../repos/builtin/packages/py-symengine/package.py | 6 +- .../repos/builtin/packages/py-tables/package.py | 13 +- .../repos/builtin/packages/py-tap-py/package.py | 22 + .../repos/builtin/packages/py-tappy/package.py | 22 - .../repos/builtin/packages/py-udunits/package.py | 50 - .../repos/builtin/packages/py-wand/package.py | 2 +- .../packages/py-widgetsnbextension/package.py | 2 +- .../repos/builtin/packages/py-xdot/package.py | 34 +- var/spack/repos/builtin/packages/py-zmq/package.py | 21 - .../repos/builtin/packages/qt-creator/package.py | 6 +- .../repos/builtin/packages/r-animation/package.py | 2 +- .../repos/builtin/packages/r-checkpoint/package.py | 2 +- .../repos/builtin/packages/r-magick/package.py | 2 +- var/spack/repos/builtin/packages/r-mzr/package.py | 2 +- .../repos/builtin/packages/r-ncdf4/package.py | 2 +- var/spack/repos/builtin/packages/r-nmf/package.py | 2 +- .../repos/builtin/packages/r-pbdzmq/package.py | 2 +- .../repos/builtin/packages/r-pkgmaker/package.py | 2 +- .../packages/r-randomfieldsutils/package.py | 2 +- .../repos/builtin/packages/r-rngtools/package.py | 2 +- var/spack/repos/builtin/packages/r-rzmq/package.py | 2 +- .../repos/builtin/packages/r-udunits2/package.py | 2 +- .../repos/builtin/packages/r-units/package.py | 2 +- .../repos/builtin/packages/r-wgcna/package.py | 2 +- var/spack/repos/builtin/packages/r-xlsx/package.py | 2 +- var/spack/repos/builtin/packages/r3d/package.py | 8 +- .../repos/builtin/packages/rankstr/package.py | 2 +- var/spack/repos/builtin/packages/redset/package.py | 2 +- var/spack/repos/builtin/packages/regcm/package.py | 4 +- .../builtin/packages/repeatmodeler/package.py | 2 +- var/spack/repos/builtin/packages/rose/package.py | 7 +- var/spack/repos/builtin/packages/seacas/package.py | 8 +- .../repos/builtin/packages/shuffile/package.py | 2 +- var/spack/repos/builtin/packages/siesta/package.py | 4 +- .../repos/builtin/packages/simulationio/package.py | 2 +- var/spack/repos/builtin/packages/squid/package.py | 3 +- .../repos/builtin/packages/sra-toolkit/package.py | 28 - .../repos/builtin/packages/sratoolkit/package.py | 24 + var/spack/repos/builtin/packages/stc/package.py | 2 +- .../repos/builtin/packages/subversion/package.py | 2 +- var/spack/repos/builtin/packages/thrift/package.py | 8 +- .../repos/builtin/packages/transabyss/package.py | 2 +- .../trilinos-catalyst-ioss-adapter/package.py | 11 +- .../repos/builtin/packages/trilinos/package.py | 6 +- .../repos/builtin/packages/trinity/package.py | 12 +- .../repos/builtin/packages/turbine/package.py | 10 +- .../repos/builtin/packages/udunits/package.py | 19 + .../repos/builtin/packages/udunits2/package.py | 19 - var/spack/repos/builtin/packages/vmatch/package.py | 4 - var/spack/repos/builtin/packages/vtk-h/package.py | 256 ++++ .../packages/vtk-h/vtkm_lagrange_cuda_fix.patch | 16 + var/spack/repos/builtin/packages/vtk-m/package.py | 139 ++ var/spack/repos/builtin/packages/vtk/package.py | 10 +- var/spack/repos/builtin/packages/vtkh/package.py | 256 ---- .../packages/vtkh/vtkm_lagrange_cuda_fix.patch | 16 - var/spack/repos/builtin/packages/vtkm/package.py | 142 -- var/spack/repos/builtin/packages/warpx/package.py | 12 +- .../repos/builtin/packages/wireshark/package.py | 2 +- var/spack/repos/builtin/packages/xdmf3/package.py | 1 - var/spack/repos/builtin/packages/xeus/package.py | 2 +- var/spack/repos/builtin/packages/xios/package.py | 8 +- var/spack/repos/builtin/packages/yambo/package.py | 12 +- var/spack/repos/builtin/packages/zeromq/package.py | 61 - 277 files changed, 3953 insertions(+), 4112 deletions(-) create mode 100644 var/spack/repos/builtin/packages/c-ares/package.py delete mode 100644 var/spack/repos/builtin/packages/cares/package.py delete mode 100644 var/spack/repos/builtin/packages/catch/package.py create mode 100644 var/spack/repos/builtin/packages/catch2/package.py delete mode 100644 var/spack/repos/builtin/packages/ceed/README.md create mode 100644 var/spack/repos/builtin/packages/clustal-omega/package.py delete mode 100644 var/spack/repos/builtin/packages/clustalo/package.py delete mode 100644 var/spack/repos/builtin/packages/elmer-fem/package.py create mode 100644 var/spack/repos/builtin/packages/elmerfem/package.py create mode 100644 var/spack/repos/builtin/packages/eq-r/package.py delete mode 100644 var/spack/repos/builtin/packages/eqr/package.py create mode 100644 var/spack/repos/builtin/packages/es-shell/package.py delete mode 100644 var/spack/repos/builtin/packages/es/package.py delete mode 100644 var/spack/repos/builtin/packages/gnu-prolog/package.py create mode 100644 var/spack/repos/builtin/packages/gprolog/package.py delete mode 100644 var/spack/repos/builtin/packages/image-magick/package.py create mode 100644 var/spack/repos/builtin/packages/imagemagick/package.py delete mode 100644 var/spack/repos/builtin/packages/libcheck/package.py delete mode 100644 var/spack/repos/builtin/packages/libmongoc/package.py create mode 100644 var/spack/repos/builtin/packages/libzmq/package.py delete mode 100644 var/spack/repos/builtin/packages/lua-jit/package.py create mode 100644 var/spack/repos/builtin/packages/lua-luajit/package.py create mode 100644 var/spack/repos/builtin/packages/mongo-c-driver/package.py create mode 100644 var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch create mode 100644 var/spack/repos/builtin/packages/mpi-bash/package.py delete mode 100644 var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch delete mode 100644 var/spack/repos/builtin/packages/mpibash/package.py create mode 100644 var/spack/repos/builtin/packages/netcdf-c/package.py delete mode 100644 var/spack/repos/builtin/packages/netcdf/package.py create mode 100644 var/spack/repos/builtin/packages/parquet-cpp/package.py delete mode 100644 var/spack/repos/builtin/packages/parquet/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-bio-perl/package.py create mode 100644 var/spack/repos/builtin/packages/perl-bioperl/package.py create mode 100644 var/spack/repos/builtin/packages/perl-db-file/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-dbfile/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-gd-graph/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-gd-text/package.py create mode 100644 var/spack/repos/builtin/packages/perl-gdgraph/package.py create mode 100644 var/spack/repos/builtin/packages/perl-gdtextutil/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-intervaltree/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-lwp/package.py create mode 100644 var/spack/repos/builtin/packages/perl-perl-version/package.py create mode 100644 var/spack/repos/builtin/packages/perl-set-intervaltree/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-term-readkey/package.py create mode 100644 var/spack/repos/builtin/packages/perl-termreadkey/package.py delete mode 100644 var/spack/repos/builtin/packages/perl-version/package.py delete mode 100644 var/spack/repos/builtin/packages/py-cpuinfo/package.py create mode 100644 var/spack/repos/builtin/packages/py-exodus-bundler/package.py delete mode 100644 var/spack/repos/builtin/packages/py-exodus/package.py create mode 100644 var/spack/repos/builtin/packages/py-fn-py/package.py delete mode 100644 var/spack/repos/builtin/packages/py-fn/package.py delete mode 100644 var/spack/repos/builtin/packages/py-git2/package.py delete mode 100644 var/spack/repos/builtin/packages/py-igraph/package.py delete mode 100644 var/spack/repos/builtin/packages/py-jpype/package.py create mode 100644 var/spack/repos/builtin/packages/py-jpype1/package.py delete mode 100644 var/spack/repos/builtin/packages/py-jupyter-notebook/package.py create mode 100644 var/spack/repos/builtin/packages/py-lru-dict/package.py delete mode 100644 var/spack/repos/builtin/packages/py-lrudict/package.py delete mode 100644 var/spack/repos/builtin/packages/py-meep/package.py delete mode 100644 var/spack/repos/builtin/packages/py-mongo/package.py create mode 100644 var/spack/repos/builtin/packages/py-mysql-connector-python/package.py create mode 100644 var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch delete mode 100644 var/spack/repos/builtin/packages/py-mysql-connector/package.py delete mode 100644 var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch create mode 100644 var/spack/repos/builtin/packages/py-notebook/package.py delete mode 100644 var/spack/repos/builtin/packages/py-perf/package.py create mode 100644 var/spack/repos/builtin/packages/py-py-cpuinfo/package.py create mode 100644 var/spack/repos/builtin/packages/py-pygit2/package.py create mode 100644 var/spack/repos/builtin/packages/py-pyperf/package.py create mode 100644 var/spack/repos/builtin/packages/py-python-igraph/package.py create mode 100644 var/spack/repos/builtin/packages/py-python-meep/package.py create mode 100644 var/spack/repos/builtin/packages/py-pyzmq/package.py create mode 100644 var/spack/repos/builtin/packages/py-tap-py/package.py delete mode 100644 var/spack/repos/builtin/packages/py-tappy/package.py delete mode 100644 var/spack/repos/builtin/packages/py-udunits/package.py delete mode 100644 var/spack/repos/builtin/packages/py-zmq/package.py delete mode 100644 var/spack/repos/builtin/packages/sra-toolkit/package.py create mode 100644 var/spack/repos/builtin/packages/sratoolkit/package.py create mode 100644 var/spack/repos/builtin/packages/udunits/package.py delete mode 100644 var/spack/repos/builtin/packages/udunits2/package.py create mode 100644 var/spack/repos/builtin/packages/vtk-h/package.py create mode 100644 var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch create mode 100644 var/spack/repos/builtin/packages/vtk-m/package.py delete mode 100644 var/spack/repos/builtin/packages/vtkh/package.py delete mode 100644 var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch delete mode 100644 var/spack/repos/builtin/packages/vtkm/package.py delete mode 100644 var/spack/repos/builtin/packages/zeromq/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py index 4b8e417a11..939ec797ab 100644 --- a/var/spack/repos/builtin/packages/adios/package.py +++ b/var/spack/repos/builtin/packages/adios/package.py @@ -84,7 +84,7 @@ class Adios(AutotoolsPackage): depends_on('c-blosc@1.12.0:', when='+blosc') # optional transports & file converters depends_on('hdf5@1.8:+hl+mpi', when='+hdf5') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('libevpath', when='staging=flexpath') depends_on('dataspaces+mpi', when='staging=dataspaces') diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index e5e10db996..29adcddaae 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -85,8 +85,8 @@ class Adios2(CMakePackage): # depends_on('flex', when='+sst') # optional in FFS, depends on BISON depends_on('mpi', when='+mpi') - depends_on('zeromq', when='+dataman') - depends_on('zeromq', when='@2.4: +ssc') + depends_on('libzmq', when='+dataman') + depends_on('libzmq', when='@2.4: +ssc') depends_on('dataspaces@1.8.0:', when='+dataspaces') depends_on('hdf5', when='+hdf5') diff --git a/var/spack/repos/builtin/packages/adlbx/package.py b/var/spack/repos/builtin/packages/adlbx/package.py index e4e7c178f9..096a2cedd9 100644 --- a/var/spack/repos/builtin/packages/adlbx/package.py +++ b/var/spack/repos/builtin/packages/adlbx/package.py @@ -11,7 +11,7 @@ class Adlbx(AutotoolsPackage): """ADLB/X: Master-worker library + work stealing and data dependencies""" homepage = 'http://swift-lang.org/Swift-T' - url = 'http://swift-lang.github.io/swift-t-downloads/spack/adlbx-0.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/adlbx-0.9.2.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') @@ -27,11 +27,11 @@ class Adlbx(AutotoolsPackage): depends_on('m4', type='build', when='@master') depends_on('mpi') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) @property def configure_directory(self): diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py index 30a1c0b2c4..1f01fcc3f5 100644 --- a/var/spack/repos/builtin/packages/alglib/package.py +++ b/var/spack/repos/builtin/packages/alglib/package.py @@ -18,9 +18,6 @@ class Alglib(MakefilePackage): version('3.11.0', sha256='34e391594aac89fb354bdaf58c42849489cd1199197398ba98bb69961f42bdb0') - def url_for_version(self, version): - return 'http://www.alglib.net/translator/re/alglib-{0}.cpp.gpl.tgz'.format(version.dotted) - build_directory = 'src' def edit(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/allpaths-lg/package.py b/var/spack/repos/builtin/packages/allpaths-lg/package.py index c8d580d08e..dc2099948d 100644 --- a/var/spack/repos/builtin/packages/allpaths-lg/package.py +++ b/var/spack/repos/builtin/packages/allpaths-lg/package.py @@ -11,7 +11,7 @@ class AllpathsLg(AutotoolsPackage): small and large (mammalian size) genomes.""" homepage = "http://www.broadinstitute.org/software/allpaths-lg/blog/" - url = "ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/LATEST_VERSION.tar.gz" + url = "ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/allpathslg-52488.tar.gz" version('52488', sha256='035b49cb21b871a6b111976757d7aee9c2513dd51af04678f33375e620998542') diff --git a/var/spack/repos/builtin/packages/amp/package.py b/var/spack/repos/builtin/packages/amp/package.py index 5410db4849..27bc465ffd 100644 --- a/var/spack/repos/builtin/packages/amp/package.py +++ b/var/spack/repos/builtin/packages/amp/package.py @@ -110,7 +110,7 @@ class Amp(CMakePackage): if '+netcdf' in spec: tpl_list = tpl_list + ";NETCDF" options.extend(['-DTPL_NETCDF_INSTALL_DIR=%s' % - spec['netcdf'].prefix, ]) + spec['netcdf-c'].prefix, ]) if '+hypre' in spec: tpl_list = tpl_list + ";HYPRE" options.extend(['-DTPL_HYPRE_INSTALL_DIR=%s' % diff --git a/var/spack/repos/builtin/packages/aria2/package.py b/var/spack/repos/builtin/packages/aria2/package.py index 7cb7e3cfae..7518d3b488 100644 --- a/var/spack/repos/builtin/packages/aria2/package.py +++ b/var/spack/repos/builtin/packages/aria2/package.py @@ -19,5 +19,5 @@ class Aria2(AutotoolsPackage): depends_on('libssh2') depends_on('libgcrypt') depends_on('zlib') - depends_on('cares') + depends_on('c-ares') depends_on('sqlite') diff --git a/var/spack/repos/builtin/packages/arm-forge/package.py b/var/spack/repos/builtin/packages/arm-forge/package.py index 94f853fef6..2434222796 100644 --- a/var/spack/repos/builtin/packages/arm-forge/package.py +++ b/var/spack/repos/builtin/packages/arm-forge/package.py @@ -19,107 +19,107 @@ class ArmForge(Package): # versions (and checksums) based on the target platform shows up version( - "19.0.4-linux-rhel6-x86_64", + "19.0.4-Redhat-6.0-x86_64", sha256="0b0b6ed5c3d6833bad46d5ea84346cd46f0e4b3020c31f2fd4318b75ddaf01aa", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-6.0-x86_64.tar", ) version( - "19.0.4-linux-rhel7-x86_64", + "19.0.4-Redhat-7.0-x86_64", sha256="de3c669f7cb4daf274aae603294c416a953fb558e101eb03bcccf0ef4291e079", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.0-x86_64.tar", ) version( - "19.0.4-linux-sles11-x86_64", + "19.0.4-Suse-11-x86_64", sha256="24a2c7761c2163f128e4f4b60e963c53774196809ddfa880131c5dde5eb454c2", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-11-x86_64.tar", ) version( - "19.0.4-linux-sles12-x86_64", + "19.0.4-Suse-12-x86_64", sha256="6688192291fe9696922a34371d07ea66f89bff9b976fd99796e5f9a6651f86e6", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-12-x86_64.tar", ) version( - "19.0.4-linux-sles15-x86_64", + "19.0.4-Suse-15-x86_64", sha256="dea60d93a157ab6952fd6887f40123ab9d633d5589ffe7824d53fb269294cf35", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-15-x86_64.tar", ) version( - "19.0.4-linux-ubuntu16.04-x86_64", + "19.0.4-19.0.4-Ubuntu-16.04-x86_64", sha256="240741beff96f6a0b3976bc98d90863fe475366d5c093af9b96b877a230d479c", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-16.04-x86_64.tar", ) version( - "19.0.4-linux-ubuntu14.04-x86_64", + "19.0.4-Ubuntu-14.04-x86_64", sha256="135903906111b61045ddd3e98f1d8e8fd02b5b6ef554a68dfbe6760c76ec65a2", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-14.04-x86_64.tar", ) version( - "19.0.4-linux-rhel7-ppc64le", + "19.0.4-Redhat-7.2-ppc64le", sha256="73cb9f4005278e8dd2106a871dcbb53edb8855faeeda75c7abd7936f85fcce56", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.2-ppc64le.tar", ) version( - "19.0.4-linux-rhel7-aarch64", + "19.0.4-Redhat-7.4-aarch64", sha256="8d168e5665a158f65b72d7b996fd283f7f538efbff15648eff44cfb7371ecad7", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.4-aarch64.tar", ) version( - "19.0.4-linux-sles12-aarch64", + "19.0.4-Suse-12-aarch64", sha256="de3aa62c5b5d5181a7947dcd1dfa66df5d06fd482394044100147210c8182d75", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-12-aarch64.tar", ) version( - "19.0.4-linux-ubuntu16.04-aarch64", + "19.0.4-Ubuntu-16.04-aarch64", sha256="3910e320c635dd5c09af7f5696909c7c0ae25406910d2e592e522ed0233e0451", url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-16.04-aarch64.tar", ) version( - "19.0.3-linux-rhel6-x86_64", + "19.0.3-Redhat-6.0-x86_64", sha256="0ace88a1847d8f622f077cd38fa9dddf7f2d6dd6aad086be0e0a66e10fb8b64b", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-6.0-x86_64.tar", ) version( - "19.0.3-linux-rhel7-x86_64", + "19.0.3-Redhat-7.0-x86_64", sha256="35c7a9532aa19251343c37b8f5eb51ef04f7b6e8b42bea2bd932f4d83a1e8375", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.0-x86_64.tar", ) version( - "19.0.3-linux-sles11-x86_64", + "19.0.3-Suse-11-x86_64", sha256="48fe2b1b81a824909fedf5e02cd08d8a62033cce80440eca6efbea0ae8023e75", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-11-x86_64.tar", ) version( - "19.0.3-linux-sles12-x86_64", + "19.0.3-Suse-12-x86_64", sha256="b4d0f91780dc43544ea946f5117a50ba18750fd50ef811cae5b6b6771b4ebb77", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-12-x86_64.tar", ) version( - "19.0.3-linux-ubuntu16.04-x86_64", + "19.0.3-Ubuntu-16.04-x86_64", sha256="ed6726434a6d24d413ed6183756433d63438936dc671cb6a3567b407c8e233e1", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-16.04-x86_64.tar", ) version( - "19.0.3-linux-ubuntu14.04-x86_64", + "19.0.3-Ubuntu-14.04-x86_64", sha256="22350d068c4ef60d1aad330636d443f00269c0cc49bed4c05b80f93b9d9a9c66", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-14.04-x86_64.tar", ) version( - "19.0.3-linux-rhel7-ppc64le", + "19.0.3-Redhat-7.2-ppc64le", sha256="dc6ea53eead78f0d9ffd8fa74ffddb80e8bd3b4ab8a1edd6f8505ffbea9cea15", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.2-ppc64le.tar", ) version( - "19.0.3-linux-rhel7-aarch64", + "19.0.3-Redhat-7.4-aarch64", sha256="4e19d4200e2936d542bf2b9dc79c7f8b00ccfb37b9191dfc90ac0787680a8b0c", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.4-aarch64.tar", ) version( - "19.0.3-linux-sles12-aarch64", + "19.0.3-Suse-12-aarch64", sha256="9b27b678d0228b4e51fd517ef0acd1df65b780a3a0b226caa6b6f1b7dccf31e6", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-12-aarch64.tar", ) version( - "19.0.3-linux-ubuntu16.04-aarch64", + "19.0.3-Ubuntu-16.04-aarch64", sha256="4470f7067d4a4e0369df8af28b6ca95f58fa0062bf8dffc49f0b7415112c0332", url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-16.04-aarch64.tar", ) diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py index de4c92c385..dd2576bb55 100644 --- a/var/spack/repos/builtin/packages/armadillo/package.py +++ b/var/spack/repos/builtin/packages/armadillo/package.py @@ -12,7 +12,7 @@ class Armadillo(CMakePackage): ease of use.""" homepage = "http://arma.sourceforge.net/" - url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz" + url = "http://sourceforge.net/projects/arma/files/armadillo-8.100.1.tar.xz" version('8.100.1', sha256='54773f7d828bd3885c598f90122b530ded65d9b195c9034e082baea737cd138d') version('7.950.1', sha256='a32da32a0ea420b8397a53e4b40ed279c1a5fc791dd492a2ced81ffb14ad0d1b') diff --git a/var/spack/repos/builtin/packages/asagi/package.py b/var/spack/repos/builtin/packages/asagi/package.py index f24c83a68d..f99bad2f7e 100644 --- a/var/spack/repos/builtin/packages/asagi/package.py +++ b/var/spack/repos/builtin/packages/asagi/package.py @@ -46,8 +46,8 @@ class Asagi(CMakePackage): depends_on('mpi', when="+mpi") depends_on('mpi@3:', when="+mpi3") - depends_on('netcdf +mpi', when="+mpi") - depends_on('netcdf ~mpi', when="~mpi") + depends_on('netcdf-c +mpi', when="+mpi") + depends_on('netcdf-c ~mpi', when="~mpi") depends_on('numactl', when="+numa") conflicts('%gcc@5:', when='@:1.0.0') diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index 8d8210edd1..4e31fa051e 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -96,15 +96,17 @@ class Ascent(Package): # TPLs for Runtime Features ############################# - depends_on("vtkh@develop", when="+vtkh") - depends_on("vtkh@develop~openmp", when="+vtkh~openmp") - depends_on("vtkh@develop+cuda+openmp", when="+vtkh+cuda+openmp") - depends_on("vtkh@develop+cuda~openmp", when="+vtkh+cuda~openmp") + depends_on("vtk-m", when="+vtkh") - depends_on("vtkh@develop~shared", when="~shared+vtkh") - depends_on("vtkh@develop~shared~openmp", when="~shared+vtkh~openmp") - depends_on("vtkh@develop~shared+cuda", when="~shared+vtkh+cuda") - depends_on("vtkh@develop~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") + depends_on("vtk-h@develop", when="+vtkh") + depends_on("vtk-h@develop~openmp", when="+vtkh~openmp") + depends_on("vtk-h@develop+cuda+openmp", when="+vtkh+cuda+openmp") + depends_on("vtk-h@develop+cuda~openmp", when="+vtkh+cuda~openmp") + + depends_on("vtk-h@develop~shared", when="~shared+vtkh") + depends_on("vtk-h@develop~shared~openmp", when="~shared+vtkh~openmp") + depends_on("vtk-h@develop~shared+cuda", when="~shared+vtkh+cuda") + depends_on("vtk-h@develop~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") # mfem depends_on("mfem+shared+mpi+conduit", when="+shared+mfem+mpi") @@ -178,8 +180,8 @@ class Ascent(Package): create=True): cmake_args = ["-DASCENT_DIR={0}".format(install_prefix), "-DCONDUIT_DIR={0}".format(spec['conduit'].prefix), - "-DVTKM_DIR={0}".format(spec['vtkm'].prefix), - "-DVTKH_DIR={0}".format(spec['vtkh'].prefix), + "-DVTKM_DIR={0}".format(spec['vtk-m'].prefix), + "-DVTKH_DIR={0}".format(spec['vtk-h'].prefix), example_src_dir] cmake(*cmake_args) make() @@ -405,10 +407,10 @@ class Ascent(Package): if "+vtkh" in spec: cfg.write("# vtk-m from spack\n") - cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtkm'].prefix)) + cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtk-m'].prefix)) cfg.write("# vtk-h from spack\n") - cfg.write(cmake_cache_entry("VTKH_DIR", spec['vtkh'].prefix)) + cfg.write(cmake_cache_entry("VTKH_DIR", spec['vtk-h'].prefix)) else: cfg.write("# vtk-h not built by spack \n") diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py index 18b30d29d4..c909ce102a 100644 --- a/var/spack/repos/builtin/packages/augustus/package.py +++ b/var/spack/repos/builtin/packages/augustus/package.py @@ -16,7 +16,7 @@ class Augustus(MakefilePackage): # Releases have moved to github version('3.3.2', sha256='d09f972cfd88deb34b19b69878eb8af3bbbe4f1cde1434b69cedc2aa6247a0f2') - version('3.3.1', sha256='011379606f381ee21b9716f83e8a1a57b2aaa01aefeebd2748104efa08c47cab', + version('3.3.1-tag1', sha256='011379606f381ee21b9716f83e8a1a57b2aaa01aefeebd2748104efa08c47cab', url='https://github.com/Gaius-Augustus/Augustus/archive/v3.3.1-tag1.tar.gz') version('3.3', sha256='b5eb811a4c33a2cc3bbd16355e19d530eeac6d1ac923e59f48d7a79f396234ee', url='http://bioinf.uni-greifswald.de/augustus/binaries/old/augustus-3.3.tar.gz') @@ -98,7 +98,7 @@ class Augustus(MakefilePackage): for file in files: filter_file(pattern, repl, *files, backup=False) - def setup_environment(self, spack_env, run_env): - run_env.set('AUGUSTUS_CONFIG_PATH', join_path( + def setup_run_environment(self, env): + env.set('AUGUSTUS_CONFIG_PATH', join_path( self.prefix, 'config')) - run_env.prepend_path('PATH', join_path(self.prefix, 'scripts')) + env.prepend_path('PATH', join_path(self.prefix, 'scripts')) diff --git a/var/spack/repos/builtin/packages/autofact/package.py b/var/spack/repos/builtin/packages/autofact/package.py index a22af26671..44bb89bff1 100644 --- a/var/spack/repos/builtin/packages/autofact/package.py +++ b/var/spack/repos/builtin/packages/autofact/package.py @@ -16,9 +16,9 @@ class Autofact(Package): version('3_4', sha256='1465d263b19adb42f01f6e636ac40ef1c2e3dbd63461f977b89da9493fe9c6f4') depends_on('perl', type='run') - depends_on('perl-bio-perl', type='run') + depends_on('perl-bioperl', type='run') depends_on('perl-io-string', type='run') - depends_on('perl-lwp', type='run') + depends_on('perl-libwww-perl', type='run') depends_on('blast-legacy', type='run') def patch(self): @@ -31,6 +31,6 @@ class Autofact(Package): def install(self, spec, prefix): install_tree(self.stage.source_path, prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.scripts) - run_env.set('PATH2AUTOFACT', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.scripts) + env.set('PATH2AUTOFACT', self.prefix) diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py index a524ca0643..85b5e0873d 100644 --- a/var/spack/repos/builtin/packages/axl/package.py +++ b/var/spack/repos/builtin/packages/axl/package.py @@ -20,7 +20,7 @@ class Axl(CMakePackage): """Asynchronous transfer library""" homepage = "https://github.com/ECP-VeloC/AXL" - url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.0.zip" + url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.1.zip" git = "https://github.com/ecp-veloc/axl.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/biopieces/package.py b/var/spack/repos/builtin/packages/biopieces/package.py index 2091f8508f..888ef18ccb 100644 --- a/var/spack/repos/builtin/packages/biopieces/package.py +++ b/var/spack/repos/builtin/packages/biopieces/package.py @@ -21,21 +21,21 @@ class Biopieces(Package): depends_on('perl-module-build', type=('build', 'run')) depends_on('perl-bit-vector', type=('build', 'run')) depends_on('perl-svg', type=('build', 'run')) - depends_on('perl-term-readkey', type=('build', 'run')) + depends_on('perl-termreadkey', type=('build', 'run')) depends_on('perl-time-hires', type=('build', 'run')) depends_on('perl-dbi', type=('build', 'run')) depends_on('perl-xml-parser', type=('build', 'run')) depends_on('perl-carp-clan', type=('build', 'run')) depends_on('perl-class-inspector', type=('build', 'run')) depends_on('perl-html-parser', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) depends_on('perl-soap-lite', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) depends_on('perl-inline', type=('build', 'run')) depends_on('perl-inline-c', type=('build', 'run')) depends_on('perl-parse-recdescent', type=('build', 'run')) - depends_on('perl-version', type=('build', 'run')) - depends_on('perl-dbfile', type=('build', 'run')) + depends_on('perl-perl-version', type=('build', 'run')) + depends_on('perl-db-file', type=('build', 'run')) depends_on('perl-dbd-mysql', type=('build', 'run')) depends_on('ruby@1.9:') @@ -61,10 +61,10 @@ class Biopieces(Package): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # Note: user will need to set environment variables on their own, # dependent on where they will want data to be located: # BP_DATA - Contains genomic data etc. # BP_TMP - Required temporary directory # BP_LOG - Required log directory - run_env.prepend_path('BP_DIR', prefix) + env.prepend_path('BP_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/breakdancer/package.py b/var/spack/repos/builtin/packages/breakdancer/package.py index 3ad2cdfc01..c943e88502 100644 --- a/var/spack/repos/builtin/packages/breakdancer/package.py +++ b/var/spack/repos/builtin/packages/breakdancer/package.py @@ -32,7 +32,7 @@ class Breakdancer(CMakePackage): depends_on('perl-statistics-descriptive', type='run') depends_on('perl-math-cdf', type='run') - depends_on('perl-gd-graph', type='run') + depends_on('perl-gdgraph', type='run') depends_on('perl-gdgraph-histogram', type='run') depends_on('perl-list-moreutils', type='run') depends_on('perl-exporter-tiny', type='run') @@ -41,9 +41,9 @@ class Breakdancer(CMakePackage): parallel = False - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # get the perl tools in the path - run_env.prepend_path('PATH', self.prefix.lib) + env.prepend_path('PATH', self.prefix.lib) def edit(self, spec, prefix): # perl tools end up in a silly lib subdirectory, fixing that diff --git a/var/spack/repos/builtin/packages/bsseeker2/package.py b/var/spack/repos/builtin/packages/bsseeker2/package.py index 73fd8ca24b..5b78294250 100644 --- a/var/spack/repos/builtin/packages/bsseeker2/package.py +++ b/var/spack/repos/builtin/packages/bsseeker2/package.py @@ -13,7 +13,7 @@ class Bsseeker2(Package): url = "https://github.com/BSSeeker/BSseeker2/archive/BSseeker2-v2.1.8.tar.gz" version('2.1.8', sha256='34ebedce36a0fca9e22405d4c2c20bc978439d4a34d1d543657fbc53ff847934') - version('2.1.5', sha256='ac90fb4ad8853ee920f1ffea2b1a8cfffcdb1508ff34be0091d5a9c90ac8c74a', + version('2.1.7', sha256='ac90fb4ad8853ee920f1ffea2b1a8cfffcdb1508ff34be0091d5a9c90ac8c74a', url='https://github.com/BSSeeker/BSseeker2/archive/v2.1.7.tar.gz') version('2.1.2', sha256='08055dd314f85a9b74c259c2cb894ea2affdab2c7a120af3589c649e1900c5c6', url='https://github.com/BSSeeker/BSseeker2/archive/v2.1.2.tar.gz') diff --git a/var/spack/repos/builtin/packages/c-ares/package.py b/var/spack/repos/builtin/packages/c-ares/package.py new file mode 100644 index 0000000000..2311e4ac91 --- /dev/null +++ b/var/spack/repos/builtin/packages/c-ares/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 CAres(CMakePackage): + """c-ares: A C library for asynchronous DNS requests""" + + homepage = "https://c-ares.haxx.se" + url = "https://github.com/c-ares/c-ares/archive/cares-1_13_0.tar.gz" + git = "https://github.com/c-ares/c-ares.git" + + version('develop', branch='master') + version('1.13.0', sha256='7c48c57706a38691041920e705d2a04426ad9c68d40edd600685323f214b2d57') + + def url_for_version(self, version): + url = "https://github.com/c-ares/c-ares/archive/cares-{0}.tar.gz" + return url.format(version.underscored) diff --git a/var/spack/repos/builtin/packages/c-blosc2/package.py b/var/spack/repos/builtin/packages/c-blosc2/package.py index 1596a9c1d5..450e93ed2c 100644 --- a/var/spack/repos/builtin/packages/c-blosc2/package.py +++ b/var/spack/repos/builtin/packages/c-blosc2/package.py @@ -11,7 +11,6 @@ class CBlosc2(CMakePackage): other bells and whistles""" homepage = "http://www.blosc.org" - url = "https://github.com/Blosc/c-blosc2/archive/v2.0.0-beta.1.tar.gz" git = "https://github.com/Blosc/c-blosc2.git" maintainers = ['ax3l'] diff --git a/var/spack/repos/builtin/packages/candle-benchmarks/package.py b/var/spack/repos/builtin/packages/candle-benchmarks/package.py index fb8401108d..5fcee8deeb 100644 --- a/var/spack/repos/builtin/packages/candle-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/candle-benchmarks/package.py @@ -10,7 +10,7 @@ class CandleBenchmarks(Package): """ECP-CANDLE Benchmarks""" homepage = "https://github.com/ECP-CANDLE/Benchmarks" - url = "https://github.com/ECP-CANDLE/Benchmarks/archive/v1.0.tar.gz" + url = "https://github.com/ECP-CANDLE/Benchmarks/archive/v0.1.tar.gz" tags = ['proxy-app', 'ecp-proxy-app'] diff --git a/var/spack/repos/builtin/packages/cares/package.py b/var/spack/repos/builtin/packages/cares/package.py deleted file mode 100644 index f3b35ee610..0000000000 --- a/var/spack/repos/builtin/packages/cares/package.py +++ /dev/null @@ -1,21 +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 Cares(CMakePackage): - """c-ares: A C library for asynchronous DNS requests""" - - homepage = "https://c-ares.haxx.se" - url = "https://github.com/c-ares/c-ares/archive/cares-1_13_0.tar.gz" - git = "https://github.com/c-ares/c-ares.git" - - version('develop', branch='master') - version('1.13.0', sha256='7c48c57706a38691041920e705d2a04426ad9c68d40edd600685323f214b2d57') - - def url_for_version(self, version): - url = "https://github.com/c-ares/c-ares/archive/cares-{0}.tar.gz" - return url.format(version.underscored) diff --git a/var/spack/repos/builtin/packages/catch/package.py b/var/spack/repos/builtin/packages/catch/package.py deleted file mode 100644 index a9d8cb412b..0000000000 --- a/var/spack/repos/builtin/packages/catch/package.py +++ /dev/null @@ -1,84 +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 Catch(CMakePackage): - """Catch tests""" - - homepage = "https://github.com/catchorg/Catch2" - url = "https://github.com/catchorg/Catch2/archive/v1.3.0.tar.gz" - - variant('single_header', default=True, - description='Install a single header only.') - - # - "make install" was added in 1.7.0 - # - pkg-config package was added in 2.0.1 - # - CMake config package was added in 2.1.2 - conflicts('~single_header', when='@:1.6.1') - - version('2.9.1', sha256='0b36488aca6265e7be14da2c2d0c748b4ddb9c70a1ea4da75736699c629f14ac') - version('2.9.0', sha256='00040cad9b6d6bb817ebd5853ff6dda23f9957153d8c4eedf85def0c9e787c42') - version('2.8.0', sha256='b567c37446cd22c8550bfeb7e2fe3f981b8f3ab8b2148499a522e7f61b8a481d') - version('2.7.2', sha256='9f4116da13d8402b5145f95ab91ae0173cd27b804152d3bb2d4f9b6e64852af7') - version('2.7.1', sha256='04b303517284572c277597004a33c3f8c02a4d12ba73d5a4cb73b4a369dfef0b') - version('2.7.0', sha256='d4655e87c0ccda5a2e78bf4256fce8036feb969399503dcc8272f4c90347d9c0') - version('2.6.1', sha256='b57c2d3362102a77955d3cd0181b792c496520349bfefee8379b9d35b8819f80') - version('2.6.0', sha256='4c94a685557328eb1b0ed1017ca37c3a378742dc03b558cf02267b6ba8579577') - version('2.5.0', sha256='720c84d18f4dc9eb23379941df2054e7bcd5ff9c215e4d620f8533a130d128ae') - version('2.4.2', sha256='9f3caf00749f9aa378d40db5a04019c684419457fd56cee625714de1bff45a92') - version('2.4.1', sha256='e1b559d77bd857cb0f773e3e826ac1d7e016cf14057fd14b9e99ec3b2c6b809f') - version('2.4.0', sha256='ab176de36b886a33aa745fcf34642eac853bf677bda518a88655dc750c72d756') - version('2.3.0', sha256='aaf6bbf81ce8522131bae2ea4d013a77b003bbb2017614f5872d5787687f8f5f') - # releases 2.3.0+ changed to "catch2/catch.hpp" header - version('2.2.3', sha256='45e5e12cc5a98e098b0960d70c0d99b7168b711e85fb947dcd4d68ec3f8b8826') - version('2.2.2', sha256='e93aacf012579093fe6b4e686ff0488975cabee1e6b4e4f27a0acd898e8f09fd') - version('2.2.1', sha256='3938bc896f8de570bc56d25606fc128437ee53590a95cf3e005710176a1a1ce4') - version('2.1.0', sha256='a8f9805174916c23bf59ed45f72c21ce092e2848c139f4c6d396aeeb5ce2dfb3') - version('2.0.1', sha256='5f31b93712e65d363f257ad0f0c02cfbed7a3988979d5f320ad7771e513d4cc8') - version('1.12.1', sha256='9a0b4722a9864fa0728241ecca2e4c1b3de8e60a5d6fe3f92dec7b8bbfbc850d') - version('1.12.0', sha256='adab7275bddcd8b5ba28478db513371137188beef5ef40489edb1c34fe2bf421') - version('1.11.0', sha256='b6f30b548aa15e42d299f3fdb15f69df4777c1b20ca24d8d7dee552d76870eff') - version('1.10.0', sha256='6e5e686c9e83ff92d622dd04281e9893957a812cfc97d2d1028a988e4bc6a31e') - version('1.9.7', sha256='175245fba4e76dca8528289c0ae23690c2270bd0fde51b8b145a5576cf70e785') - version('1.9.6', sha256='5dc4b9b38d8755173987bb47af29491656e413b64eb06e1a03cfb9c26bae0a0e') - version('1.9.5', sha256='6531b3817066ea8ab96e7a7fbda7e68a43134e6e62fdc5d8c394a451d54b1b9b') - version('1.9.4', sha256='d40a17198b0c45c1f8164e3af71a2ce759e71d08772c9066b36ccd7781fb5e64') - version('1.9.3', sha256='2e3a48781d7e57cb7afdfc3c189c8a05d99ebb7f62cc8813b63c9b75cd6045dc') - version('1.9.2', sha256='b42070df2ff568bb407d327c431cfbc19a40bd06a19228956772dc32e8c9eb45') - version('1.9.1', sha256='d3fd58730471969b46ed234f5995927cf4324b33474c3746bf17ad3cbc40132d') - version('1.9.0', sha256='acf3d9c864e06866f9993c71017d672fa7b951347402155b365e58e117ec9c2c') - version('1.8.2', sha256='85e7acf9df4763e7df3e832df393eaf52b52a1d0bfc4ab751566e3bdbe616642') - version('1.8.1', sha256='12fd706b63251f8fae1c32013815de33decec4e63a4a8f99af0af1fe0690c53d') - version('1.8.0', sha256='713d6a6d98f7402bcc2d10a00121a37aec284e6b34b34121d2a09fc1c838e5bc') - version('1.7.2', sha256='4aeca774db0ebbea0f86548e1c742fbc4c67c8cf0da550fbfe3e55efa1cc2178') - version('1.7.1', sha256='46b289866f9b44c850cc1e48d0ead479494fd8ef0cdb9eda88b1dfd5b990556a') - version('1.7.0', sha256='55ff8904d1215aadaa003ae50e1ad82747c655004b43bf30c656cb20e1c89050') - version('1.6.1', sha256='83ad2744529b3b507eee188dba23baf6b5c038fccbbe4b3256172c04420292e4') - version('1.6.0', sha256='9a7aed27cc58eee0e694135503dcc7fc99c7ec254416cff44fe10166a5f1f68c') - version('1.5.9', sha256='0ba04d0eefcf5a1d4c9e9e79f051f1f93de704ea4429a247f69ec76c2c6647cd') - version('1.5.0', sha256='bbf0ce7f72a1a8892956bc4caba9ead930b8662d908baa0b2e2ec6b164307d22') - version('1.4.0', sha256='57512b298ca3e2ff44e87c17c926d5f9edf29e13549480e912fddfab5ba63b74') - version('1.3.5', sha256='f15730d81b4173fb860ce3561768de7d41bbefb67dc031d7d1f5ae2c07f0a472') - version('1.3.0', sha256='245f6ee73e2fea66311afa1da59e5087ddab8b37ce64994ad88506e8af28c6ac') - - @when('+single_header') - def cmake(self, spec, prefix): - pass - - @when('+single_header') - def build(self, spec, prefix): - pass - - @when('+single_header') - def install(self, spec, prefix): - mkdirp(prefix.include) - if spec.satisfies('@2.3.0:'): - install_tree('single_include', prefix.include) - else: - install(join_path('single_include', 'catch.hpp'), prefix.include) - # fakes out spack so it installs a module file - mkdirp(join_path(prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/catch2/package.py b/var/spack/repos/builtin/packages/catch2/package.py new file mode 100644 index 0000000000..939706c823 --- /dev/null +++ b/var/spack/repos/builtin/packages/catch2/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 Catch2(CMakePackage): + """Catch2 is a multi-paradigm test framework for C++, which also + supports Objective-C (and maybe C).""" + + homepage = "https://github.com/catchorg/Catch2" + url = "https://github.com/catchorg/Catch2/archive/v2.9.1.tar.gz" + + variant('single_header', default=True, + description='Install a single header only.') + + # - "make install" was added in 1.7.0 + # - pkg-config package was added in 2.0.1 + # - CMake config package was added in 2.1.2 + conflicts('~single_header', when='@:1.6.1') + + version('2.9.1', sha256='0b36488aca6265e7be14da2c2d0c748b4ddb9c70a1ea4da75736699c629f14ac') + version('2.9.0', sha256='00040cad9b6d6bb817ebd5853ff6dda23f9957153d8c4eedf85def0c9e787c42') + version('2.8.0', sha256='b567c37446cd22c8550bfeb7e2fe3f981b8f3ab8b2148499a522e7f61b8a481d') + version('2.7.2', sha256='9f4116da13d8402b5145f95ab91ae0173cd27b804152d3bb2d4f9b6e64852af7') + version('2.7.1', sha256='04b303517284572c277597004a33c3f8c02a4d12ba73d5a4cb73b4a369dfef0b') + version('2.7.0', sha256='d4655e87c0ccda5a2e78bf4256fce8036feb969399503dcc8272f4c90347d9c0') + version('2.6.1', sha256='b57c2d3362102a77955d3cd0181b792c496520349bfefee8379b9d35b8819f80') + version('2.6.0', sha256='4c94a685557328eb1b0ed1017ca37c3a378742dc03b558cf02267b6ba8579577') + version('2.5.0', sha256='720c84d18f4dc9eb23379941df2054e7bcd5ff9c215e4d620f8533a130d128ae') + version('2.4.2', sha256='9f3caf00749f9aa378d40db5a04019c684419457fd56cee625714de1bff45a92') + version('2.4.1', sha256='e1b559d77bd857cb0f773e3e826ac1d7e016cf14057fd14b9e99ec3b2c6b809f') + version('2.4.0', sha256='ab176de36b886a33aa745fcf34642eac853bf677bda518a88655dc750c72d756') + version('2.3.0', sha256='aaf6bbf81ce8522131bae2ea4d013a77b003bbb2017614f5872d5787687f8f5f') + # releases 2.3.0+ changed to "catch2/catch.hpp" header + version('2.2.3', sha256='45e5e12cc5a98e098b0960d70c0d99b7168b711e85fb947dcd4d68ec3f8b8826') + version('2.2.2', sha256='e93aacf012579093fe6b4e686ff0488975cabee1e6b4e4f27a0acd898e8f09fd') + version('2.2.1', sha256='3938bc896f8de570bc56d25606fc128437ee53590a95cf3e005710176a1a1ce4') + version('2.1.0', sha256='a8f9805174916c23bf59ed45f72c21ce092e2848c139f4c6d396aeeb5ce2dfb3') + version('2.0.1', sha256='5f31b93712e65d363f257ad0f0c02cfbed7a3988979d5f320ad7771e513d4cc8') + version('1.12.1', sha256='9a0b4722a9864fa0728241ecca2e4c1b3de8e60a5d6fe3f92dec7b8bbfbc850d') + version('1.12.0', sha256='adab7275bddcd8b5ba28478db513371137188beef5ef40489edb1c34fe2bf421') + version('1.11.0', sha256='b6f30b548aa15e42d299f3fdb15f69df4777c1b20ca24d8d7dee552d76870eff') + version('1.10.0', sha256='6e5e686c9e83ff92d622dd04281e9893957a812cfc97d2d1028a988e4bc6a31e') + version('1.9.7', sha256='175245fba4e76dca8528289c0ae23690c2270bd0fde51b8b145a5576cf70e785') + version('1.9.6', sha256='5dc4b9b38d8755173987bb47af29491656e413b64eb06e1a03cfb9c26bae0a0e') + version('1.9.5', sha256='6531b3817066ea8ab96e7a7fbda7e68a43134e6e62fdc5d8c394a451d54b1b9b') + version('1.9.4', sha256='d40a17198b0c45c1f8164e3af71a2ce759e71d08772c9066b36ccd7781fb5e64') + version('1.9.3', sha256='2e3a48781d7e57cb7afdfc3c189c8a05d99ebb7f62cc8813b63c9b75cd6045dc') + version('1.9.2', sha256='b42070df2ff568bb407d327c431cfbc19a40bd06a19228956772dc32e8c9eb45') + version('1.9.1', sha256='d3fd58730471969b46ed234f5995927cf4324b33474c3746bf17ad3cbc40132d') + version('1.9.0', sha256='acf3d9c864e06866f9993c71017d672fa7b951347402155b365e58e117ec9c2c') + version('1.8.2', sha256='85e7acf9df4763e7df3e832df393eaf52b52a1d0bfc4ab751566e3bdbe616642') + version('1.8.1', sha256='12fd706b63251f8fae1c32013815de33decec4e63a4a8f99af0af1fe0690c53d') + version('1.8.0', sha256='713d6a6d98f7402bcc2d10a00121a37aec284e6b34b34121d2a09fc1c838e5bc') + version('1.7.2', sha256='4aeca774db0ebbea0f86548e1c742fbc4c67c8cf0da550fbfe3e55efa1cc2178') + version('1.7.1', sha256='46b289866f9b44c850cc1e48d0ead479494fd8ef0cdb9eda88b1dfd5b990556a') + version('1.7.0', sha256='55ff8904d1215aadaa003ae50e1ad82747c655004b43bf30c656cb20e1c89050') + version('1.6.1', sha256='83ad2744529b3b507eee188dba23baf6b5c038fccbbe4b3256172c04420292e4') + version('1.6.0', sha256='9a7aed27cc58eee0e694135503dcc7fc99c7ec254416cff44fe10166a5f1f68c') + version('1.5.9', sha256='0ba04d0eefcf5a1d4c9e9e79f051f1f93de704ea4429a247f69ec76c2c6647cd') + version('1.5.0', sha256='bbf0ce7f72a1a8892956bc4caba9ead930b8662d908baa0b2e2ec6b164307d22') + version('1.4.0', sha256='57512b298ca3e2ff44e87c17c926d5f9edf29e13549480e912fddfab5ba63b74') + version('1.3.5', sha256='f15730d81b4173fb860ce3561768de7d41bbefb67dc031d7d1f5ae2c07f0a472') + version('1.3.0', sha256='245f6ee73e2fea66311afa1da59e5087ddab8b37ce64994ad88506e8af28c6ac') + + @when('+single_header') + def cmake(self, spec, prefix): + pass + + @when('+single_header') + def build(self, spec, prefix): + pass + + @when('+single_header') + def install(self, spec, prefix): + mkdirp(prefix.include) + if spec.satisfies('@2.3.0:'): + install_tree('single_include', prefix.include) + else: + install(join_path('single_include', 'catch.hpp'), prefix.include) + # fakes out spack so it installs a module file + mkdirp(join_path(prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py index 7711128186..0c0692852a 100644 --- a/var/spack/repos/builtin/packages/cdo/package.py +++ b/var/spack/repos/builtin/packages/cdo/package.py @@ -51,7 +51,7 @@ class Cdo(AutotoolsPackage): depends_on('pkgconfig', type='build') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') # In this case CDO does not depend on hdf5 directly but we need the backend # of netcdf to be thread safe. depends_on('hdf5+threadsafe', when='+netcdf') @@ -63,7 +63,7 @@ class Cdo(AutotoolsPackage): depends_on('hdf5+threadsafe', when='+hdf5') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') depends_on('libxml2', when='+libxml2') depends_on('proj@:5', when='+proj') depends_on('curl', when='+curl') diff --git a/var/spack/repos/builtin/packages/ceed/README.md b/var/spack/repos/builtin/packages/ceed/README.md deleted file mode 100644 index 74bcae1d17..0000000000 --- a/var/spack/repos/builtin/packages/ceed/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This is a bundle for the CEED software suite. - -See https://ceed.exascaleproject.org for details. diff --git a/var/spack/repos/builtin/packages/ceed/package.py b/var/spack/repos/builtin/packages/ceed/package.py index 4d598c03db..d594ac5544 100644 --- a/var/spack/repos/builtin/packages/ceed/package.py +++ b/var/spack/repos/builtin/packages/ceed/package.py @@ -4,10 +4,9 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -import os -class Ceed(Package): +class Ceed(BundlePackage): """Ceed is a collection of benchmarks, miniapps, software libraries and APIs for efficient high-order finite element and spectral element discretizations for exascale applications developed in the Department of @@ -17,12 +16,6 @@ class Ceed(Package): homepage = "https://ceed.exascaleproject.org" - url = 'file://' + os.path.dirname(__file__) + '/README.md' - sha256 = '418c4b6b6a098648e25befdc28cdf9c351ecea9deaa660c0d9a674f8c6917122' - - version('2.0.0', sha256, expand=False) - version('1.0.0', sha256, expand=False) - variant('cuda', default=False, description='Build MAGMA; enable CUDA support in libCEED and OCCA') variant('mfem', default=True, description='Build MFEM and Laghos') @@ -139,7 +132,3 @@ class Ceed(Package): # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 depends_on('suite-sparse@:5.1.0', when='@1.0.0%gcc@:4.8+mfem+petsc') - - # Dummy install - def install(self, spec, prefix): - install('README.md', prefix) diff --git a/var/spack/repos/builtin/packages/channelflow/package.py b/var/spack/repos/builtin/packages/channelflow/package.py index 4a22819678..fad8a1d018 100644 --- a/var/spack/repos/builtin/packages/channelflow/package.py +++ b/var/spack/repos/builtin/packages/channelflow/package.py @@ -12,13 +12,9 @@ class Channelflow(CMakePackage): """ homepage = 'https://github.com/epfl-ecps/channelflow' - url = 'https://github.com/epfl-ecps/channelflow.git' + git = 'https://github.com/epfl-ecps/channelflow.git' - version( - 'develop', - git='https://github.com/epfl-ecps/channelflow.git', - branch='master' - ) + version('master', branch='master') variant('shared', default=True, description='Build shared libs') variant('mpi', default=True, description='Enable MPI parallelism') @@ -38,8 +34,8 @@ class Channelflow(CMakePackage): # Support for different I/O formats depends_on('hdf5+cxx', when='+hdf5') - depends_on('netcdf', when='netcdf=serial') - depends_on('netcdf+mpi', when='netcdf=parallel') + depends_on('netcdf-c', when='netcdf=serial') + depends_on('netcdf-c+mpi', when='netcdf=parallel') # Python bindings depends_on('boost+python', when='+python') @@ -73,7 +69,7 @@ class Channelflow(CMakePackage): } args.append('-DWITH_NETCDF:STRING={0}'.format( - netcdf_str[spec.variants['netcdf'].value] + netcdf_str[spec.variants['netcdf-c'].value] )) # Set an MPI compiler for parallel builds diff --git a/var/spack/repos/builtin/packages/check/package.py b/var/spack/repos/builtin/packages/check/package.py index ed7e933bc8..95076fdfc1 100644 --- a/var/spack/repos/builtin/packages/check/package.py +++ b/var/spack/repos/builtin/packages/check/package.py @@ -15,6 +15,8 @@ class Check(AutotoolsPackage): logging format.""" homepage = "https://libcheck.github.io/check/index.html" - url = "https://downloads.sourceforge.net/project/check/check/0.10.0/check-0.10.0.tar.gz" + url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz" + version('0.12.0', sha256='464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234') + version('0.11.0', sha256='24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616') version('0.10.0', sha256='f5f50766aa6f8fe5a2df752666ca01a950add45079aa06416b83765b1cf71052') diff --git a/var/spack/repos/builtin/packages/clustal-omega/package.py b/var/spack/repos/builtin/packages/clustal-omega/package.py new file mode 100644 index 0000000000..7c32f1f096 --- /dev/null +++ b/var/spack/repos/builtin/packages/clustal-omega/package.py @@ -0,0 +1,17 @@ +# 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 ClustalOmega(AutotoolsPackage): + """Clustal Omega: the last alignment program you'll ever need.""" + + homepage = "http://www.clustal.org/omega/" + url = "http://www.clustal.org/omega/clustal-omega-1.2.4.tar.gz" + + version('1.2.4', sha256='8683d2286d663a46412c12a0c789e755e7fd77088fb3bc0342bb71667f05a3ee') + + depends_on('argtable') diff --git a/var/spack/repos/builtin/packages/clustalo/package.py b/var/spack/repos/builtin/packages/clustalo/package.py deleted file mode 100644 index 59b7606e6c..0000000000 --- a/var/spack/repos/builtin/packages/clustalo/package.py +++ /dev/null @@ -1,17 +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 Clustalo(AutotoolsPackage): - """Clustal Omega: the last alignment program you'll ever need.""" - - homepage = "http://www.clustal.org/omega/" - url = "http://www.clustal.org/omega/clustal-omega-1.2.4.tar.gz" - - version('1.2.4', sha256='8683d2286d663a46412c12a0c789e755e7fd77088fb3bc0342bb71667f05a3ee') - - depends_on('argtable') diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py index 31460e1645..ef8dd2f94b 100644 --- a/var/spack/repos/builtin/packages/cmor/package.py +++ b/var/spack/repos/builtin/packages/cmor/package.py @@ -24,8 +24,8 @@ class Cmor(AutotoolsPackage): variant('python', default=False, description='Enable PYTHON support') depends_on('uuid') - depends_on('netcdf') - depends_on('udunits2') + depends_on('netcdf-c') + depends_on('udunits') depends_on('hdf5@:1.8.19') extends('python', when='+python') diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py index 0adaebf9c3..0a29b1b194 100644 --- a/var/spack/repos/builtin/packages/cppzmq/package.py +++ b/var/spack/repos/builtin/packages/cppzmq/package.py @@ -18,5 +18,5 @@ class Cppzmq(CMakePackage): version('4.2.2', sha256='3ef50070ac5877c06c6bb25091028465020e181bbfd08f110294ed6bc419737d') depends_on('cmake@3.0.0:', type='build') - depends_on('zeromq@4.2.5', when='@4.3.0') - depends_on('zeromq@4.2.2', when='@4.2.2') + depends_on('libzmq@4.2.5', when='@4.3.0') + depends_on('libzmq@4.2.2', when='@4.2.2') diff --git a/var/spack/repos/builtin/packages/cquery/package.py b/var/spack/repos/builtin/packages/cquery/package.py index 40edd13ce2..86ad88db71 100644 --- a/var/spack/repos/builtin/packages/cquery/package.py +++ b/var/spack/repos/builtin/packages/cquery/package.py @@ -11,10 +11,10 @@ class Cquery(CMakePackage): """ homepage = "https://github.com/cquery-project/cquery" - url = "https://github.com/cquery-project/cquery/archive/v20180718.tar.gz" + git = "https://github.com/cquery-project/cquery.git" - version('v20180823', commit='70c755b2e390d3edfb594a84a7531beb26b2bc07', - submodules=True, git='https://github.com/cquery-project/cquery') + version('2018-08-23', commit='70c755b2e390d3edfb594a84a7531beb26b2bc07', + submodules=True) depends_on('llvm') diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py index 9076ac78b1..17411dcddb 100644 --- a/var/spack/repos/builtin/packages/cub/package.py +++ b/var/spack/repos/builtin/packages/cub/package.py @@ -11,7 +11,7 @@ class Cub(Package): and other utilities for CUDA kernel programming.""" homepage = "https://nvlabs.github.com/cub" - url = "https://github.com/NVlabs/cub/archive/1.6.4.zip" + url = "https://github.com/NVlabs/cub/archive/1.7.1.zip" version('1.7.1', sha256='50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d') diff --git a/var/spack/repos/builtin/packages/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py index b92de9106a..053d72aa2f 100644 --- a/var/spack/repos/builtin/packages/czmq/package.py +++ b/var/spack/repos/builtin/packages/czmq/package.py @@ -19,8 +19,8 @@ class Czmq(AutotoolsPackage): depends_on('automake', type='build') depends_on('autoconf', type='build') depends_on('pkgconfig', type='build') - depends_on("libuuid") - depends_on('zeromq') + depends_on('libuuid') + depends_on('libzmq') def autoreconf(self, spec, prefix): autogen = Executable('./autogen.sh') diff --git a/var/spack/repos/builtin/packages/damaris/package.py b/var/spack/repos/builtin/packages/damaris/package.py index 6c3ec891bd..6988973a7b 100644 --- a/var/spack/repos/builtin/packages/damaris/package.py +++ b/var/spack/repos/builtin/packages/damaris/package.py @@ -12,10 +12,10 @@ class Damaris(CMakePackage): targeting large-scale, MPI-based HPC simulations.""" homepage = "https://project.inria.fr/damaris/" - url = "https://gitlab.inria.fr/Damaris/damaris" + git = "https://gitlab.inria.fr/Damaris/damaris.git" - version('master', git='https://gitlab.inria.fr/Damaris/damaris.git') - version('1.3.1', git='https://gitlab.inria.fr/Damaris/damaris.git', tag='v1.3.1', preferred=True) + version('master', branch='master') + version('1.3.1', tag='v1.3.1') variant('fortran', default=True, description='Enables Fortran support') variant('hdf5', default=False, description='Enables the HDF5 storage plugin') diff --git a/var/spack/repos/builtin/packages/davix/package.py b/var/spack/repos/builtin/packages/davix/package.py index 381251a62d..e1b66e6d39 100644 --- a/var/spack/repos/builtin/packages/davix/package.py +++ b/var/spack/repos/builtin/packages/davix/package.py @@ -10,7 +10,7 @@ class Davix(CMakePackage): """High-performance file management over WebDAV/HTTP.""" homepage = "https://dmc.web.cern.ch/projects/davix" - url = "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/0.6.7/davix-0.6.7.tar.gz" + url = "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/0.6.8/davix-0.6.8.tar.gz" list_url = "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py index 0fef73b8fa..82a1cca300 100644 --- a/var/spack/repos/builtin/packages/dbcsr/package.py +++ b/var/spack/repos/builtin/packages/dbcsr/package.py @@ -10,9 +10,9 @@ class Dbcsr(CMakePackage): """Distributed Block Compressed Sparse Row matrix library.""" homepage = "https://github.com/cp2k/dbcsr" - url = "https://github.com/cp2k/dbcsr/archive/v1.0.0-rc.0.tar.gz" + git = "https://github.com/cp2k/dbcsr.git" - version('develop', git='https://github.com/cp2k/dbcsr.git', branch='develop') + version('develop', branch='develop') variant('mpi', default=True, description='Compile with MPI') variant('openmp', default=False, description='Build with OpenMP support') diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 109b67da2d..9f1796f5b4 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -137,7 +137,7 @@ class Dealii(CMakePackage, CudaPackage): depends_on('metis@5:~int64', when='+metis~int64') depends_on('muparser', when='+muparser') depends_on('nanoflann', when='@9.0:+nanoflann') - depends_on('netcdf+mpi', when='+netcdf+mpi') + depends_on('netcdf-c+mpi', when='+netcdf+mpi') depends_on('netcdf-cxx', when='+netcdf+mpi') depends_on('oce', when='+oce') depends_on('p4est', when='+p4est+mpi') @@ -393,13 +393,13 @@ class Dealii(CMakePackage, CudaPackage): # since Netcdf is spread among two, need to do it by hand: if '+netcdf' in spec and '+mpi' in spec: - netcdf = spec['netcdf-cxx'].libs + spec['netcdf'].libs + netcdf = spec['netcdf-cxx'].libs + spec['netcdf-c'].libs options.extend([ '-DNETCDF_FOUND=true', '-DNETCDF_LIBRARIES=%s' % netcdf.joined(';'), '-DNETCDF_INCLUDE_DIRS=%s;%s' % ( spec['netcdf-cxx'].prefix.include, - spec['netcdf'].prefix.include), + spec['netcdf-c'].prefix.include), ]) else: options.extend([ @@ -447,5 +447,5 @@ class Dealii(CMakePackage, CudaPackage): return options - def setup_environment(self, spack_env, run_env): - run_env.set('DEAL_II_DIR', self.prefix) + def setup_run_environment(self, env): + env.set('DEAL_II_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/dislin/package.py b/var/spack/repos/builtin/packages/dislin/package.py index cfdffeb9ba..ca380ebb7a 100644 --- a/var/spack/repos/builtin/packages/dislin/package.py +++ b/var/spack/repos/builtin/packages/dislin/package.py @@ -14,7 +14,7 @@ class Dislin(Package): homepage = "http://www.mps.mpg.de/dislin" url = "ftp://ftp.gwdg.de/pub/grafik/dislin/linux/i586_64/dislin-11.0.linux.i586_64.tar.gz" - version('11.2.linux.i586_64', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10') + version('11.0', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10') depends_on('motif') depends_on('gl') @@ -39,16 +39,18 @@ class Dislin(Package): libraries, root=self.prefix, shared=True, recursive=True ) - def setup_environment(self, spack_env, run_env): - spack_env.set('DISLIN', self.prefix) - run_env.set('DISLIN', self.prefix) - run_env.prepend_path('PATH', self.prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.spec['motif'].prefix.lib) - run_env.prepend_path('LD_LIBRARY_PATH', self.spec['mesa'].prefix.lib) + def setup_build_environment(self, env): + env.set('DISLIN', self.prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix) + def setup_run_environment(self, env): + env.set('DISLIN', self.prefix) + env.prepend_path('PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.spec['motif'].prefix.lib) + env.prepend_path('LD_LIBRARY_PATH', self.spec['mesa'].prefix.lib) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path('LD_LIBRARY_PATH', self.prefix) def install(self, spec, prefix): install = Executable('./INSTALL') diff --git a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py index 5d9a3ef014..3a1b623ca0 100644 --- a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py +++ b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py @@ -12,19 +12,17 @@ class DotnetCoreSdk(Package): applications for all types of infrastructure.""" homepage = "https://www.microsoft.com/net/" - url = "https://github.com/dotnet/core/" version('2.1.300', - url='https://download.microsoft.com/download/8/8/5/88544F33-836A' - '-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-x64.tar.gz', + url='https://download.microsoft.com/download/8/8/5/88544F33-836A-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-x64.tar.gz', sha256='fabca4c8825182ff18e5a2f82dfe75aecd10260ee9e7c85a8c4b3d108e5d8e1b') variant('telemetry', default=False, description='allow collection of telemetry data') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '-telemetry' in self.spec: - spack_env.set('DOTNET_CLI_TELEMETRY_OPTOUT', 1) + env.set('DOTNET_CLI_TELEMETRY_OPTOUT', 1) def install(self, spec, prefix): mkdirp('bin') diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py index 5bbc02f96b..8b8a4eceb7 100644 --- a/var/spack/repos/builtin/packages/eccodes/package.py +++ b/var/spack/repos/builtin/packages/eccodes/package.py @@ -49,7 +49,7 @@ class Eccodes(CMakePackage): # tests are enabled but the testing scripts don't use it. # depends_on('valgrind', type='test', when='+test') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('openjpeg@1.5.0:1.5.999,2.1.0:2.1.999', when='jp2k=openjpeg') depends_on('jasper', when='jp2k=jasper') depends_on('libpng', when='+png') @@ -100,7 +100,7 @@ class Eccodes(CMakePackage): '-DHDF5_ROOT=' + self.spec['hdf5'].prefix, # Prevent possible overriding by environment variables # NETCDF_ROOT, NETCDF_DIR, and NETCDF_PATH. - '-DNETCDF_PATH=' + self.spec['netcdf'].prefix]) + '-DNETCDF_PATH=' + self.spec['netcdf-c'].prefix]) else: args.append('-DENABLE_NETCDF=OFF') diff --git a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py b/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py index f86330613c..e099e2f1b1 100644 --- a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py +++ b/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py @@ -37,7 +37,7 @@ class EcpVizSdk(CMakePackage): depends_on('paraview', when='+paraview') depends_on('sz', when='+sz') depends_on('visit', when='+visit') - depends_on('vtkm', when='+vtkm') + depends_on('vtk-m', when='+vtkm') depends_on('zfp', when='+zfp') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/elmer-fem/package.py b/var/spack/repos/builtin/packages/elmer-fem/package.py deleted file mode 100644 index a22c1226f2..0000000000 --- a/var/spack/repos/builtin/packages/elmer-fem/package.py +++ /dev/null @@ -1,87 +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 ElmerFem(CMakePackage): - """Elmer is an open source multiphysical simulation software. It - includes physical models of fluid dynamics, structural mechanics, - electromagnetics, heat transfer and acoustics.""" - - homepage = "https://www.csc.fi/web/elmer" - url = "https://github.com/ElmerCSC/elmerfem/archive/release-8.4.tar.gz" - - version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3') - - variant('openmp', default=True, description='Enable OpenMP support.') - variant('mumps', default=False, description='Enable MUMPS support.') - variant('hypre', default=False, description='Enable Hypre support.') - variant('trilinos', default=False, description='Enable Trilinos support.') - variant('zoltan', default=False, description='Enable Zoltan support.') - variant('lua', default=False, description='Enable Lua support.') - - depends_on('mpi') - depends_on('netcdf-fortran') - depends_on('blas') - depends_on('lapack') - depends_on('mumps', when='+mumps') - depends_on('hypre', when='+hypre') - depends_on('trilinos~hypre~zoltan~zoltan2', when='+trilinos') - depends_on('zoltan+fortran', when='+zoltan') - depends_on('lua@5.1.5', when='+lua') - - def cmake_args(self): - - spec = self.spec - - args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON', '-DWITH_MPI=ON'] - - if '+openmp' in spec: - args.append('-DWITH_OpenMP=ON') - else: - args.append('-DWITH_OpenMP=OFF') - - if '+mumps' in spec: - args.append('-DWITH_Mumps=ON') - else: - args.append('-DWITH_Mumps=OFF') - - if '+hypre' in spec: - args.append('-DWITH_Hypre=ON') - else: - args.append('-DWITH_Hypre=OFF') - - if '+trilinos' in spec: - args.extend([ - '-DWITH_Trilinos=ON', - '-DCMAKE_CXX_STANDARD=11', - ]) - else: - args.append('-DWITH_Trilinos=OFF') - - if '+lua' in spec: - args.extend([ - '-DWITH_LUA=ON', - '-DUSE_SYSTEM_LUA=ON' - ]) - if '%gcc' in spec: - args.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none') - - else: - args.append('-DWITH_LUA=OFF') - - if '+zoltan' in spec: - args.extend([ - '-DWITH_Zoltan=ON', - '-DUSE_SYSTEM_ZOLTAN=ON' - ]) - else: - args.append('-DWITH_Zoltan=OFF') - - return args - - def setup_environment(self, spack_env, run_env): - run_env.set('ELMER_HOME', self.prefix) diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py new file mode 100644 index 0000000000..0fff28e817 --- /dev/null +++ b/var/spack/repos/builtin/packages/elmerfem/package.py @@ -0,0 +1,87 @@ +# 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 Elmerfem(CMakePackage): + """Elmer is an open source multiphysical simulation software. It + includes physical models of fluid dynamics, structural mechanics, + electromagnetics, heat transfer and acoustics.""" + + homepage = "https://www.csc.fi/web/elmer" + url = "https://github.com/ElmerCSC/elmerfem/archive/release-8.4.tar.gz" + + version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3') + + variant('openmp', default=True, description='Enable OpenMP support.') + variant('mumps', default=False, description='Enable MUMPS support.') + variant('hypre', default=False, description='Enable Hypre support.') + variant('trilinos', default=False, description='Enable Trilinos support.') + variant('zoltan', default=False, description='Enable Zoltan support.') + variant('lua', default=False, description='Enable Lua support.') + + depends_on('mpi') + depends_on('netcdf-fortran') + depends_on('blas') + depends_on('lapack') + depends_on('mumps', when='+mumps') + depends_on('hypre', when='+hypre') + depends_on('trilinos~hypre~zoltan~zoltan2', when='+trilinos') + depends_on('zoltan+fortran', when='+zoltan') + depends_on('lua@5.1.5', when='+lua') + + def cmake_args(self): + + spec = self.spec + + args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON', '-DWITH_MPI=ON'] + + if '+openmp' in spec: + args.append('-DWITH_OpenMP=ON') + else: + args.append('-DWITH_OpenMP=OFF') + + if '+mumps' in spec: + args.append('-DWITH_Mumps=ON') + else: + args.append('-DWITH_Mumps=OFF') + + if '+hypre' in spec: + args.append('-DWITH_Hypre=ON') + else: + args.append('-DWITH_Hypre=OFF') + + if '+trilinos' in spec: + args.extend([ + '-DWITH_Trilinos=ON', + '-DCMAKE_CXX_STANDARD=11', + ]) + else: + args.append('-DWITH_Trilinos=OFF') + + if '+lua' in spec: + args.extend([ + '-DWITH_LUA=ON', + '-DUSE_SYSTEM_LUA=ON' + ]) + if '%gcc' in spec: + args.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none') + + else: + args.append('-DWITH_LUA=OFF') + + if '+zoltan' in spec: + args.extend([ + '-DWITH_Zoltan=ON', + '-DUSE_SYSTEM_ZOLTAN=ON' + ]) + else: + args.append('-DWITH_Zoltan=OFF') + + return args + + def setup_run_environment(self, env): + env.set('ELMER_HOME', self.prefix) diff --git a/var/spack/repos/builtin/packages/eq-r/package.py b/var/spack/repos/builtin/packages/eq-r/package.py new file mode 100644 index 0000000000..76c10c82c5 --- /dev/null +++ b/var/spack/repos/builtin/packages/eq-r/package.py @@ -0,0 +1,54 @@ +# 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 * +import os + + +class EqR(AutotoolsPackage): + """ + EMEWS Queues for R (EQ/R) + Installs EQ/R. + """ + + homepage = "http://emews.org" + url = "https://github.com/emews/EQ-R/archive/1.0.tar.gz" + git = "https://github.com/emews/EQ-R.git" + + version('master', branch='master') + + version('1.0', sha256='68047cb0edf088eaaefc5e36cefda9818292e5c832593e10a1dd9c73c27661b6') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('mpi') + depends_on('r-rinside') + depends_on('r-rcpp') + depends_on('r') + depends_on('tcl') + depends_on('swig') + + configure_directory = 'src' + + def setup_build_environment(self, env): + spec = self.spec + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) + + def configure_args(self): + args = ['--with-tcl=' + self.spec['tcl'].prefix] + r_location = '{0}/rlib/R'.format(self.spec['r'].prefix) + if not os.path.exists(r_location): + rscript = which('Rscript') + if rscript is not None: + r_location = rscript('-e', 'cat(R.home())') + else: + msg = 'couldn\'t locate Rscript on your PATH' + raise RuntimeError(msg) + args.append('--with-r={0}'.format(r_location)) + return args diff --git a/var/spack/repos/builtin/packages/eqr/package.py b/var/spack/repos/builtin/packages/eqr/package.py deleted file mode 100644 index e31f88bb39..0000000000 --- a/var/spack/repos/builtin/packages/eqr/package.py +++ /dev/null @@ -1,54 +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 * -import os - - -class Eqr(AutotoolsPackage): - """ - EMEWS Queues for R (EQ/R) - Installs EQ/R. - """ - - git = "https://github.com/emews/EQ-R" - - version('develop', branch='master') - - configure_directory = 'src' - - homepage = "http://emews.org" - url = "https://github.com/emews/EQ-R/archive/1.0.tar.gz" - version('1.0', sha256='68047cb0edf088eaaefc5e36cefda9818292e5c832593e10a1dd9c73c27661b6') - - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') - depends_on('m4', type='build') - depends_on('mpi') - depends_on('r-rinside') - depends_on('r-rcpp') - depends_on('r') - depends_on('tcl') - depends_on('swig') - - def setup_environment(self, spack_env, run_env): - spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) - - def configure_args(self): - args = ['--with-tcl=' + self.spec['tcl'].prefix] - r_location = '{0}/rlib/R'.format(self.spec['r'].prefix) - if not os.path.exists(r_location): - rscript = which('Rscript') - if rscript is not None: - r_location = rscript('-e', 'cat(R.home())') - else: - msg = 'couldn\'t locate Rscript on your PATH' - raise RuntimeError(msg) - args.append('--with-r={0}'.format(r_location)) - return args diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py index 2edc201b97..0664b391e0 100644 --- a/var/spack/repos/builtin/packages/er/package.py +++ b/var/spack/repos/builtin/packages/er/package.py @@ -10,7 +10,7 @@ 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.2.zip" + 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/es-shell/package.py b/var/spack/repos/builtin/packages/es-shell/package.py new file mode 100644 index 0000000000..f8f745f488 --- /dev/null +++ b/var/spack/repos/builtin/packages/es-shell/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 EsShell(AutotoolsPackage): + """Es is an extensible shell. The language was derived from the Plan 9 + shell, rc, and was influenced by functional programming languages, + such as Scheme, and the Tcl embeddable programming language. This + implementation is derived from Byron Rakitzis's public domain + implementation of rc.""" + + homepage = "http://wryun.github.io/es-shell/" + url = "https://github.com/wryun/es-shell/releases/download/v0.9.1/es-0.9.1.tar.gz" + + version('0.9.1', sha256='b0b41fce99b122a173a06b899a4d92e5bd3cc48b227b2736159f596a58fff4ba') + + depends_on('readline') diff --git a/var/spack/repos/builtin/packages/es/package.py b/var/spack/repos/builtin/packages/es/package.py deleted file mode 100644 index 99b846e96f..0000000000 --- a/var/spack/repos/builtin/packages/es/package.py +++ /dev/null @@ -1,22 +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 Es(AutotoolsPackage): - - """Es is an extensible shell. The language was derived from the Plan 9 - shell, rc, and was influenced by functional programming languages, - such as Scheme, and the Tcl embeddable programming language. This - implementation is derived from Byron Rakitzis's public domain - implementation of rc.""" - - homepage = "http://wryun.github.io/es-shell/" - url = "https://github.com/wryun/es-shell/releases/download/v0.9.1/es-0.9.1.tar.gz" - - version('0.9.1', sha256='b0b41fce99b122a173a06b899a4d92e5bd3cc48b227b2736159f596a58fff4ba') - - depends_on('readline') diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index bfe35d9f19..1f93eb372a 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -34,7 +34,7 @@ class Esmf(MakefilePackage): # Optional dependencies depends_on('mpi', when='+mpi') depends_on('lapack@3:', when='+lapack') - depends_on('netcdf@3.6:', when='+netcdf') + depends_on('netcdf-c@3.6:', when='+netcdf') depends_on('netcdf-fortran@3.6:', when='+netcdf') depends_on('parallel-netcdf@1.2.0:', when='+pnetcdf') depends_on('xerces-c@3.1.0:', when='+xerces') @@ -200,7 +200,7 @@ class Esmf(MakefilePackage): if '+netcdf' in spec: # ESMF provides the ability to read Grid and Mesh data in # NetCDF format. - if spec.satisfies('^netcdf@4.2:'): + if spec.satisfies('^netcdf-c@4.2:'): # ESMF_NETCDF_LIBS will be set to "-lnetcdff -lnetcdf". # This option is useful for systems which have the Fortran # and C bindings archived in seperate library files. diff --git a/var/spack/repos/builtin/packages/exmcutils/package.py b/var/spack/repos/builtin/packages/exmcutils/package.py index 8d53b7a71a..bbd90d0ed0 100644 --- a/var/spack/repos/builtin/packages/exmcutils/package.py +++ b/var/spack/repos/builtin/packages/exmcutils/package.py @@ -11,7 +11,7 @@ class Exmcutils(AutotoolsPackage): """ExM C-Utils: Generic C utility library for ADLB/X and Swift/T""" homepage = 'http://swift-lang.org/Swift-T' - url = 'http://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.5.7.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py index 6472b7b997..d4b38b19a6 100644 --- a/var/spack/repos/builtin/packages/exodusii/package.py +++ b/var/spack/repos/builtin/packages/exodusii/package.py @@ -30,8 +30,8 @@ class Exodusii(CMakePackage): depends_on('mpi', when='+mpi') # https://github.com/gsjaardema/seacas/blob/master/NetCDF-Mapping.md - depends_on('netcdf@4.6.1:+mpi', when='+mpi') - depends_on('netcdf@4.6.1:~mpi', when='~mpi') + depends_on('netcdf-c@4.6.1:+mpi', when='+mpi') + depends_on('netcdf-c@4.6.1:~mpi', when='~mpi') def cmake_args(self): spec = self.spec @@ -49,7 +49,7 @@ class Exodusii(CMakePackage): '-DSEACASProj_SKIP_FORTRANCINTERFACE_VERIFY_TEST:BOOL=ON', '-DSEACASProj_ENABLE_CXX11:BOOL=OFF', '-DSEACASProj_ENABLE_Zoltan:BOOL=OFF', - '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf'].prefix), + '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf-c'].prefix), # MPI Flags # '-DTPL_ENABLE_MPI={0}'.format('ON' if '+mpi' in spec else 'OFF'), diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py index bc04da7237..463197cd97 100644 --- a/var/spack/repos/builtin/packages/fastmath/package.py +++ b/var/spack/repos/builtin/packages/fastmath/package.py @@ -6,7 +6,7 @@ from spack import * -class Fastmath(Package): +class Fastmath(BundlePackage): """FASTMath is a suite of ~15 numerical libraries frequently used together in various SciDAC and CSE applications. The suite includes discretization libraries for structured, AMR and unstructured grids as well as solver @@ -14,16 +14,12 @@ class Fastmath(Package): Solvers.""" homepage = "www.fastmath-scidac.org/" - url = "https://github.com/citibeth/dummy/tarball/v1.0" - version('1.0', sha256='402a2198e40b7e9022a99ab88ba6f0ee1c04b103fc15589b22c892859f14b60a') - - # BundlePackage depends_on('amrex') # default is 3 dimensions depends_on('chombo@3.2') depends_on('hypre~internal-superlu') -# depends_on('ml-trilinos') # hoping for stripped down install of just ml -# depends_on('nox-trilinos') # hoping for stripped down install of just nox + # depends_on('ml-trilinos') # hoping for stripped down install of just ml + # depends_on('nox-trilinos') # hoping for stripped down install of just nox depends_on('mpi') depends_on('arpack-ng') depends_on('petsc') @@ -33,12 +29,3 @@ class Fastmath(Package): depends_on('superlu-dist') depends_on('trilinos') depends_on('zoltan') - - # Dummy install for now, will be removed when metapackage is available - def install(self, spec, prefix): - # Prevent the error message - # ==> Error: Install failed for fastmath. Nothing was installed! - # ==> Error: Installation process had nonzero exit code : 256 - with open(join_path(spec.prefix, 'bundle-package.txt'), 'w') as out: - out.write('This is a bundle\n') - out.close() diff --git a/var/spack/repos/builtin/packages/fastq-screen/package.py b/var/spack/repos/builtin/packages/fastq-screen/package.py index ef651a4c9d..7898ee31b4 100644 --- a/var/spack/repos/builtin/packages/fastq-screen/package.py +++ b/var/spack/repos/builtin/packages/fastq-screen/package.py @@ -17,7 +17,7 @@ class FastqScreen(Package): version('0.11.2', sha256='a179df1f5803b42bbbb2b50af05ea18ae6fefcbf7020ca2feeb0d3c598a65207') depends_on('perl', type='run') - depends_on('perl-gd-graph', type='run') + depends_on('perl-gdgraph', type='run') depends_on('bowtie') depends_on('bowtie2') depends_on('bwa') diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py index 0113dfba3a..47aff3cbf5 100644 --- a/var/spack/repos/builtin/packages/ferret/package.py +++ b/var/spack/repos/builtin/packages/ferret/package.py @@ -19,7 +19,7 @@ class Ferret(Package): version('6.96', sha256='7eb87156aa586cfe838ab83f08b2102598f9ab62062d540a5da8c9123816331a') depends_on("hdf5+hl") - depends_on("netcdf") + depends_on("netcdf-c") depends_on("netcdf-fortran") depends_on("readline") depends_on("zlib") @@ -63,7 +63,7 @@ class Ferret(Package): "-L%s -lnetcdff" % self.spec['netcdf-fortran'].prefix.lib, 'FERRET/platform_specific.mk.x86_64-linux') filter_file(r'\$\(NETCDF4_DIR\)/lib64/libnetcdf.a', - "-L%s -lnetcdf" % self.spec['netcdf'].prefix.lib, + "-L%s -lnetcdf" % self.spec['netcdf-c'].prefix.lib, 'FERRET/platform_specific.mk.x86_64-linux') filter_file(r'\$\(HDF5_DIR\)/lib64/libhdf5_hl.a', "-L%s -lhdf5_hl" % self.spec['hdf5'].prefix.lib, diff --git a/var/spack/repos/builtin/packages/flibcpp/package.py b/var/spack/repos/builtin/packages/flibcpp/package.py index b03fa79cbb..81d30b1568 100644 --- a/var/spack/repos/builtin/packages/flibcpp/package.py +++ b/var/spack/repos/builtin/packages/flibcpp/package.py @@ -12,7 +12,7 @@ class Flibcpp(CMakePackage): homepage = "https://flibcpp.readthedocs.io/en/latest" git = "https://github.com/swig-fortran/flibcpp.git" - url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.0.tar.gz" + url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.1.tar.gz" version('master', branch='master') version('0.3.1', sha256='871570124122c18018478275d5040b4b787d1966e50ee95b634b0b5e0cd27e91') diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py index 11cb14d23c..e2b52f741c 100644 --- a/var/spack/repos/builtin/packages/flux-core/package.py +++ b/var/spack/repos/builtin/packages/flux-core/package.py @@ -27,7 +27,7 @@ class FluxCore(AutotoolsPackage): variant('docs', default=False, description='Build flux manpages') variant('cuda', default=False, description='Build dependencies with support for CUDA') - depends_on("zeromq@4.0.4:") + depends_on("libzmq@4.0.4:") depends_on("czmq") depends_on("czmq@2.2:3.99", when="@0.1:0.6.99") depends_on("czmq@3.0.1:", when="@0.7:,master") @@ -95,28 +95,29 @@ class FluxCore(AutotoolsPackage): def lua_lib_dir(self): return os.path.join('lib', 'lua', str(self.lua_version)) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Ensure ./fluxometer.lua can be found during flux's make check spack_env.append_path('LUA_PATH', './?.lua', separator=';') - run_env.prepend_path( + def setup_run_environment(self, env): + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_CPATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'), separator=';') - run_env.prepend_path( + env.prepend_path( 'PYTHONPATH', os.path.join( self.spec.prefix.lib, "python{0}".format(self.spec['python'].version.up_to(2)), "site-packages"), ) - run_env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) - run_env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) - run_env.prepend_path('FLUX_RC_PATH', self.prefix.etc.flux) + env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) + env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) + env.prepend_path('FLUX_RC_PATH', self.prefix.etc.flux) def configure_args(self): args = ['--enable-pylint=no'] diff --git a/var/spack/repos/builtin/packages/fpocket/package.py b/var/spack/repos/builtin/packages/fpocket/package.py index 5d5e92dc4d..a4516f0b10 100644 --- a/var/spack/repos/builtin/packages/fpocket/package.py +++ b/var/spack/repos/builtin/packages/fpocket/package.py @@ -14,11 +14,11 @@ class Fpocket(MakefilePackage): version('master', branch='master', git='https://github.com/Discngine/fpocket.git') - depends_on("netcdf") + depends_on("netcdf-c") - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.compiler.name == 'gcc': - spack_env.set('CXX', 'g++') + env.set('CXX', 'g++') def edit(self): makefile = FileFilter('makefile') diff --git a/var/spack/repos/builtin/packages/fstrack/package.py b/var/spack/repos/builtin/packages/fstrack/package.py index 297af6dbac..ffbb1714f5 100644 --- a/var/spack/repos/builtin/packages/fstrack/package.py +++ b/var/spack/repos/builtin/packages/fstrack/package.py @@ -20,25 +20,25 @@ class Fstrack(MakefilePackage): variant('flow', default=True, description='Build the flow tracker') depends_on('gmt@4.0:4.999', when='+flow') - depends_on('netcdf', when='+flow') + depends_on('netcdf-c', when='+flow') parallel = False - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Compilers - spack_env.set('F90', spack_fc) + env.set('F90', spack_fc) # Compiler flags (assumes GCC) - spack_env.set('CFLAGS', '-O2') - spack_env.set('FFLAGS', '-ffixed-line-length-132 -x f77-cpp-input -O2') - spack_env.set('FFLAGS_DEBUG', '-g -x f77-cpp-input') - spack_env.set('F90FLAGS', '-O2 -x f95-cpp-input') - spack_env.set('F90FLAGS_DEBUG', '-g -x f95-cpp-input') - spack_env.set('LDFLAGS', '-lm') + env.set('CFLAGS', '-O2') + env.set('FFLAGS', '-ffixed-line-length-132 -x f77-cpp-input -O2') + env.set('FFLAGS_DEBUG', '-g -x f77-cpp-input') + env.set('F90FLAGS', '-O2 -x f95-cpp-input') + env.set('F90FLAGS_DEBUG', '-g -x f95-cpp-input') + env.set('LDFLAGS', '-lm') if '+flow' in self.spec: - spack_env.set('GMTHOME', self.spec['gmt'].prefix) - spack_env.set('NETCDFDIR', self.spec['netcdf'].prefix) + env.set('GMTHOME', self.spec['gmt'].prefix) + env.set('NETCDFDIR', self.spec['netcdf-c'].prefix) def build(self, spec, prefix): with working_dir('eispack'): diff --git a/var/spack/repos/builtin/packages/funhpc/package.py b/var/spack/repos/builtin/packages/funhpc/package.py index ed69e4f88e..fe8adba18c 100644 --- a/var/spack/repos/builtin/packages/funhpc/package.py +++ b/var/spack/repos/builtin/packages/funhpc/package.py @@ -11,7 +11,7 @@ class Funhpc(CMakePackage): """FunHPC: Functional HPC Programming""" homepage = "https://github.com/eschnett/FunHPC.cxx" - url = "https://github.com/eschnett/FunHPC.cxx/archive/version/0.1.0.tar.gz" + url = "https://github.com/eschnett/FunHPC.cxx/archive/version/1.3.0.tar.gz" git = "https://github.com/eschnett/FunHPC.cxx.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index 32e746472d..7e3fb6d8a0 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -114,7 +114,7 @@ class Gdal(AutotoolsPackage): depends_on('hdf', when='+hdf4') depends_on('hdf5', when='+hdf5') depends_on('kealib', when='+kea @2:') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('jasper@1.900.1', patches='uuid.patch', when='+jasper') depends_on('openjpeg', when='+openjpeg') depends_on('xerces-c', when='+xerces') @@ -157,12 +157,12 @@ class Gdal(AutotoolsPackage): conflicts('+mdb', when='~java', msg='MDB driver requires Java') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Needed to install Python bindings to GDAL installation # prefix instead of Python installation prefix. # See swig/python/GNUmakefile for more details. - spack_env.set('PREFIX', self.prefix) - spack_env.set('DESTDIR', '/') + env.set('PREFIX', self.prefix) + env.set('DESTDIR', '/') # https://trac.osgeo.org/gdal/wiki/BuildHints def configure_args(self): @@ -299,7 +299,7 @@ class Gdal(AutotoolsPackage): # https://trac.osgeo.org/gdal/wiki/NetCDF if '+netcdf' in spec: - args.append('--with-netcdf={0}'.format(spec['netcdf'].prefix)) + args.append('--with-netcdf={0}'.format(spec['netcdf-c'].prefix)) else: args.append('--with-netcdf=no') diff --git a/var/spack/repos/builtin/packages/gdl/package.py b/var/spack/repos/builtin/packages/gdl/package.py index eef7ada1c0..ab7a79c352 100644 --- a/var/spack/repos/builtin/packages/gdl/package.py +++ b/var/spack/repos/builtin/packages/gdl/package.py @@ -57,7 +57,7 @@ class Gdl(CMakePackage): depends_on('libsm') depends_on('libxinerama') depends_on('libxxf86vm') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('pslib') depends_on('readline') diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index 23d2b53495..bd94dbcab6 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -12,7 +12,6 @@ class Ginkgo(CMakePackage, CudaPackage): with a focus on sparse solution of linear systems.""" homepage = "https://ginkgo-project.github.io/" - url = "https://github.com/ginkgo-project/ginkgo.git" git = "https://github.com/ginkgo-project/ginkgo.git" maintainers = ['tcojean', 'hartwiganzt'] diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py index 1e1d197295..3d3e3e4e53 100644 --- a/var/spack/repos/builtin/packages/gmsh/package.py +++ b/var/spack/repos/builtin/packages/gmsh/package.py @@ -17,7 +17,7 @@ class Gmsh(CMakePackage): """ homepage = 'http://gmsh.info' - url = 'http://gmsh.info/src/gmsh-2.11.0-source.tgz' + url = 'http://gmsh.info/src/gmsh-4.4.1-source.tgz' version('4.4.1', sha256='853c6438fc4e4b765206e66a514b09182c56377bb4b73f1d0d26eda7eb8af0dc') version('4.2.2', sha256='e9ee9f5c606bbec5f2adbb8c3d6023c4e2577f487fa4e4ecfcfc94a241cc8dcc') diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py index 045f4e11f6..c3dbbfc8e5 100644 --- a/var/spack/repos/builtin/packages/gmt/package.py +++ b/var/spack/repos/builtin/packages/gmt/package.py @@ -33,7 +33,7 @@ class Gmt(Package): depends_on('ghostscript') depends_on('subversion') depends_on('cmake@2.8.5:', type='build', when='@5:') - depends_on('netcdf@4:') + depends_on('netcdf-c@4:') depends_on('curl', when='@5.4:') # Optional dependencies @@ -58,7 +58,7 @@ class Gmt(Package): def install(self, spec, prefix): args = [ '--prefix={0}'.format(prefix), - '--enable-netcdf={0}'.format(spec['netcdf'].prefix), + '--enable-netcdf={0}'.format(spec['netcdf-c'].prefix), '--enable-shared', '--without-x' ] diff --git a/var/spack/repos/builtin/packages/gnu-prolog/package.py b/var/spack/repos/builtin/packages/gnu-prolog/package.py deleted file mode 100644 index d332711077..0000000000 --- a/var/spack/repos/builtin/packages/gnu-prolog/package.py +++ /dev/null @@ -1,23 +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 GnuProlog(Package): - """A free Prolog compiler with constraint solving over finite domains.""" - homepage = "http://www.gprolog.org/" - url = "http://www.gprolog.org/gprolog-1.4.5.tar.gz" - - version('1.4.5', sha256='bfdcf00e051e0628b4f9af9d6638d4fde6ad793401e58a5619d1cc6105618c7c') - - parallel = False - - def install(self, spec, prefix): - with working_dir('src'): - configure('--with-install-dir=%s' % prefix, - '--without-links-dir') - make() - make('install') diff --git a/var/spack/repos/builtin/packages/gprolog/package.py b/var/spack/repos/builtin/packages/gprolog/package.py new file mode 100644 index 0000000000..aa923deea8 --- /dev/null +++ b/var/spack/repos/builtin/packages/gprolog/package.py @@ -0,0 +1,23 @@ +# 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 Gprolog(Package): + """A free Prolog compiler with constraint solving over finite domains.""" + homepage = "http://www.gprolog.org/" + url = "http://www.gprolog.org/gprolog-1.4.5.tar.gz" + + version('1.4.5', sha256='bfdcf00e051e0628b4f9af9d6638d4fde6ad793401e58a5619d1cc6105618c7c') + + parallel = False + + def install(self, spec, prefix): + with working_dir('src'): + configure('--with-install-dir=%s' % prefix, + '--without-links-dir') + make() + make('install') diff --git a/var/spack/repos/builtin/packages/grass/package.py b/var/spack/repos/builtin/packages/grass/package.py index f480d95fe3..ca070112a0 100644 --- a/var/spack/repos/builtin/packages/grass/package.py +++ b/var/spack/repos/builtin/packages/grass/package.py @@ -69,7 +69,7 @@ class Grass(AutotoolsPackage): depends_on('readline', when='+readline') depends_on('opencl', when='+opencl') depends_on('bzip2', when='+bzlib') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('geos', when='+geos') def url_for_version(self, version): @@ -184,7 +184,7 @@ class Grass(AutotoolsPackage): if '+netcdf' in spec: args.append('--with-netcdf={0}/bin/nc-config'.format( - spec['netcdf'].prefix)) + spec['netcdf-c'].prefix)) else: args.append('--without-netcdf') diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py index b54e909367..12978a4b75 100644 --- a/var/spack/repos/builtin/packages/grib-api/package.py +++ b/var/spack/repos/builtin/packages/grib-api/package.py @@ -50,7 +50,7 @@ class GribApi(CMakePackage): # tests are enabled but the testing scripts don't use it. # depends_on('valgrind', type='test', when='+test') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('openjpeg@1.5.0:1.5.999', when='jp2k=openjpeg') depends_on('jasper', when='jp2k=jasper') depends_on('libpng', when='+png') @@ -100,7 +100,7 @@ class GribApi(CMakePackage): '-DHDF5_ROOT=' + self.spec['hdf5'].prefix, # Prevent possible overriding by environment variables # NETCDF_ROOT, NETCDF_DIR, and NETCDF_PATH. - '-DNETCDF_PATH=' + self.spec['netcdf'].prefix]) + '-DNETCDF_PATH=' + self.spec['netcdf-c'].prefix]) else: args.append('-DENABLE_NETCDF=OFF') diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py index 20d09541ff..5c207d3358 100644 --- a/var/spack/repos/builtin/packages/grpc/package.py +++ b/var/spack/repos/builtin/packages/grpc/package.py @@ -20,7 +20,7 @@ class Grpc(CMakePackage): depends_on('protobuf') depends_on('openssl') depends_on('zlib') - depends_on('cares') + depends_on('c-ares') def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/guidance/package.py b/var/spack/repos/builtin/packages/guidance/package.py index ef4de4596c..32c75afeff 100644 --- a/var/spack/repos/builtin/packages/guidance/package.py +++ b/var/spack/repos/builtin/packages/guidance/package.py @@ -17,7 +17,7 @@ class Guidance(MakefilePackage): version('2.02', sha256='825e105dde526759fb5bda1cd539b24db0b90b8b586f26b1df74d9c5abaa7844') depends_on('perl', type=('build', 'run')) - depends_on('perl-bio-perl', type=('build', 'run')) + depends_on('perl-bioperl', type=('build', 'run')) depends_on('ruby') depends_on('prank') depends_on('clustalw') @@ -43,5 +43,5 @@ class Guidance(MakefilePackage): install('guidance.pl', join_path(prefix.bin.www.Guidance, 'guidance')) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix.bin.www.Guidance) + def setup_run_environment(self, env): + env.prepend_path('PATH', prefix.bin.www.Guidance) diff --git a/var/spack/repos/builtin/packages/hc/package.py b/var/spack/repos/builtin/packages/hc/package.py index 19fd4c6b4f..157b3ee6c7 100644 --- a/var/spack/repos/builtin/packages/hc/package.py +++ b/var/spack/repos/builtin/packages/hc/package.py @@ -17,7 +17,7 @@ class Hc(MakefilePackage): version('1.0.7', sha256='7499ea76ac4739a9c0941bd57d124fb681fd387c8d716ebb358e6af3395103ed') depends_on('gmt@4.2.1:4.999') - depends_on('netcdf') + depends_on('netcdf-c') # Build phase fails in parallel with the following error messages: # /usr/bin/ld: cannot find -lrick @@ -25,11 +25,11 @@ class Hc(MakefilePackage): # /usr/bin/ld: cannot find -lggrd parallel = False - def setup_environment(self, spack_env, run_env): - spack_env.set('GMTHOME', self.spec['gmt'].prefix) - spack_env.set('NETCDFHOME', self.spec['netcdf'].prefix) - spack_env.set('HC_HOME', self.prefix) - spack_env.unset('ARCH') + def setup_build_environment(self, env): + env.set('GMTHOME', self.spec['gmt'].prefix) + env.set('NETCDFHOME', self.spec['netcdf-c'].prefix) + env.set('HC_HOME', self.prefix) + env.unset('ARCH') def install(self, spec, prefix): # Most files are installed during the build stage. diff --git a/var/spack/repos/builtin/packages/henson/package.py b/var/spack/repos/builtin/packages/henson/package.py index 11701e62d4..9e0b8d0ad7 100644 --- a/var/spack/repos/builtin/packages/henson/package.py +++ b/var/spack/repos/builtin/packages/henson/package.py @@ -10,10 +10,9 @@ class Henson(CMakePackage): """Cooperative multitasking for in situ processing.""" homepage = "https://github.com/henson-insitu/henson" - url = "https://github.com/henson-insitu/henson" git = "https://github.com/henson-insitu/henson.git" - version('develop', branch='master') + version('master', branch='master') depends_on('mpi') diff --git a/var/spack/repos/builtin/packages/hisea/package.py b/var/spack/repos/builtin/packages/hisea/package.py index f934edbee5..6858452319 100644 --- a/var/spack/repos/builtin/packages/hisea/package.py +++ b/var/spack/repos/builtin/packages/hisea/package.py @@ -12,7 +12,6 @@ class Hisea(MakefilePackage): among others.""" homepage = "https://doi.org/10.1186/s12859-017-1953-9" - url = "https://github.com/lucian-ilie/HISEA" version('2017.12.26', sha256='3c6ddfb8490a327cc5f9e45f64cd4312abc6ef5719661ce8892db8a20a1e9c5e', url='https://github.com/lucian-ilie/HISEA/tarball/39e01e98caa0f2101da806ca59306296effe789c') diff --git a/var/spack/repos/builtin/packages/homer/package.py b/var/spack/repos/builtin/packages/homer/package.py index bf190eb055..48063ce088 100644 --- a/var/spack/repos/builtin/packages/homer/package.py +++ b/var/spack/repos/builtin/packages/homer/package.py @@ -11,7 +11,7 @@ class Homer(Package): """Software for motif discovery and next generation sequencing analysis""" homepage = "http://homer.ucsd.edu/homer" - url = "http://homer.ucsd.edu/homer/data/software/homer.v4.9.zip" + url = "http://homer.ucsd.edu/homer/data/software/homer.v4.9.1.zip" version('4.9.1', sha256='ad1303b0b0400dc8a88dbeae1ee03a94631977b751a3d335326c4febf0eec3a9') diff --git a/var/spack/repos/builtin/packages/hpgmg/package.py b/var/spack/repos/builtin/packages/hpgmg/package.py index 1805315130..9979fc4c6f 100644 --- a/var/spack/repos/builtin/packages/hpgmg/package.py +++ b/var/spack/repos/builtin/packages/hpgmg/package.py @@ -17,7 +17,7 @@ class Hpgmg(Package): """ homepage = "https://bitbucket.org/hpgmg/hpgmg" - url = "https://hpgmg.org/static/hpgmg-0.tar.gz" + url = "https://hpgmg.org/static/hpgmg-0.4.tar.gz" git = "https://bitbucket.org/hpgmg/hpgmg.git" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/hub/package.py b/var/spack/repos/builtin/packages/hub/package.py index 068e7b4a35..437c8b62a3 100644 --- a/var/spack/repos/builtin/packages/hub/package.py +++ b/var/spack/repos/builtin/packages/hub/package.py @@ -11,10 +11,10 @@ class Hub(Package): """The github git wrapper""" homepage = "https://github.com/github/hub" - url = "https://github.com/github/hub/archive/v2.2.3.tar.gz" + url = "https://github.com/github/hub/archive/v2.2.2.tar.gz" git = "https://github.com/github/hub.git" - version('head', branch='master') + version('master', branch='master') version('2.2.2', sha256='610572ee903aea1fa8622c16ab7ddef2bd1bfec9f4854447ab8e0fbdbe6a0cae') version('2.2.1', sha256='9350aba6a8e3da9d26b7258a4020bf84491af69595f7484f922d75fc8b86dc10') version('2.2.0', sha256='2da1351197eb5696c207f22c69a5422af052d74277b73d0b8661efb9ec1d0eb1') diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py index 1e901220a3..3281301abf 100644 --- a/var/spack/repos/builtin/packages/ibmisc/package.py +++ b/var/spack/repos/builtin/packages/ibmisc/package.py @@ -40,7 +40,7 @@ class Ibmisc(CMakePackage): depends_on('proj@:4', when='+proj') depends_on('blitz', when='+blitz') depends_on('netcdf-cxx4', when='+netcdf') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') depends_on('googletest', when='+googletest', type='build') depends_on('py-cython', when='+python', type=('build', 'run')) depends_on('py-numpy', when='+python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/image-magick/package.py b/var/spack/repos/builtin/packages/image-magick/package.py deleted file mode 100644 index 2f9229c496..0000000000 --- a/var/spack/repos/builtin/packages/image-magick/package.py +++ /dev/null @@ -1,35 +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 ImageMagick(AutotoolsPackage): - """ImageMagick is a software suite to create, edit, compose, - or convert bitmap images.""" - - homepage = "http://www.imagemagick.org" - url = "https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz" - - version('7.0.5-9', sha256='b85b269e0ed1628e88e840053823f8a33c314b2271f04762f43d33e9d0b4d264') - version('7.0.2-7', sha256='f2f18a97f861c1668befdaff0cc3aaafb2111847aab028a88b4c2cb017acfbaa') - version('7.0.2-6', sha256='7d49ca8030f895c683cae69c52d8edfc4876de651f5b8bfdbea907e222480bd3') - - depends_on('jpeg') - depends_on('pango') - depends_on('libtool', type='build') - depends_on('libpng') - depends_on('freetype') - depends_on('fontconfig') - depends_on('libtiff') - depends_on('ghostscript') - depends_on('ghostscript-fonts') - - def configure_args(self): - spec = self.spec - gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font") - return [ - '--with-gs-font-dir={0}'.format(gs_font_dir) - ] diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py new file mode 100644 index 0000000000..bbdc11213c --- /dev/null +++ b/var/spack/repos/builtin/packages/imagemagick/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 Imagemagick(AutotoolsPackage): + """ImageMagick is a software suite to create, edit, compose, + or convert bitmap images.""" + + homepage = "http://www.imagemagick.org" + url = "https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz" + + version('7.0.5-9', sha256='b85b269e0ed1628e88e840053823f8a33c314b2271f04762f43d33e9d0b4d264') + version('7.0.2-7', sha256='f2f18a97f861c1668befdaff0cc3aaafb2111847aab028a88b4c2cb017acfbaa') + version('7.0.2-6', sha256='7d49ca8030f895c683cae69c52d8edfc4876de651f5b8bfdbea907e222480bd3') + + depends_on('jpeg') + depends_on('pango') + depends_on('libtool', type='build') + depends_on('libpng') + depends_on('freetype') + depends_on('fontconfig') + depends_on('libtiff') + depends_on('ghostscript') + depends_on('ghostscript-fonts') + + def configure_args(self): + spec = self.spec + gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font") + return [ + '--with-gs-font-dir={0}'.format(gs_font_dir) + ] diff --git a/var/spack/repos/builtin/packages/ioapi/package.py b/var/spack/repos/builtin/packages/ioapi/package.py index 2081d70754..0c66f4c51a 100644 --- a/var/spack/repos/builtin/packages/ioapi/package.py +++ b/var/spack/repos/builtin/packages/ioapi/package.py @@ -15,7 +15,7 @@ class Ioapi(MakefilePackage): homepage = "https://www.cmascenter.org/ioapi/" url = "https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz" version('3.2', sha256='56771ff0053d47f2445e00ff369bca7bfc484325a2816b2c648744e523134fe9') - depends_on('netcdf@4:') + depends_on('netcdf-c@4:') depends_on('netcdf-fortran@4:') depends_on('sed', type='build') diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index 7191faf234..655e5f4fee 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -237,7 +237,7 @@ class Julia(Package): if "+plot" in spec: julia("-e", pkgstart + 'Pkg.add("PyPlot"); using PyPlot') julia("-e", pkgstart + 'Pkg.add("Colors"); using Colors') - # These require maybe gtk and image-magick + # These require maybe gtk and imagemagick julia("-e", pkgstart + 'Pkg.add("Plots"); using Plots') julia("-e", pkgstart + 'Pkg.add("PlotRecipes"); using PlotRecipes') julia( diff --git a/var/spack/repos/builtin/packages/kvtree/package.py b/var/spack/repos/builtin/packages/kvtree/package.py index 6f164b12d6..a9e2630ee3 100644 --- a/var/spack/repos/builtin/packages/kvtree/package.py +++ b/var/spack/repos/builtin/packages/kvtree/package.py @@ -11,7 +11,7 @@ class Kvtree(CMakePackage): hashes.""" homepage = "https://github.com/ECP-VeloC/KVTree" - url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.1.zip" + 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 1b9e4c1fd8..413b8a924d 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -74,7 +74,7 @@ class Lammps(CMakePackage): depends_on('mpi', when='+mpiio') depends_on('fftw', when='+kspace') depends_on('voropp+pic', when='+voronoi') - depends_on('netcdf+mpi', when='+user-netcdf') + depends_on('netcdf-c+mpi', when='+user-netcdf') depends_on('blas', when='+user-atc') depends_on('lapack', when='+user-atc') depends_on('latte@1.0.1', when='@:20180222+latte') diff --git a/var/spack/repos/builtin/packages/libcheck/package.py b/var/spack/repos/builtin/packages/libcheck/package.py deleted file mode 100644 index 86886037f3..0000000000 --- a/var/spack/repos/builtin/packages/libcheck/package.py +++ /dev/null @@ -1,17 +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 Libcheck(CMakePackage): - """A unit testing framework for C.""" - - homepage = "https://libcheck.github.io/check/index.html" - url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz" - - version('0.12.0', sha256='464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234') - version('0.11.0', sha256='24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616') - version('0.10.0', sha256='f5f50766aa6f8fe5a2df752666ca01a950add45079aa06416b83765b1cf71052') diff --git a/var/spack/repos/builtin/packages/libgit2/package.py b/var/spack/repos/builtin/packages/libgit2/package.py index 5ada427806..165ed6840a 100644 --- a/var/spack/repos/builtin/packages/libgit2/package.py +++ b/var/spack/repos/builtin/packages/libgit2/package.py @@ -14,7 +14,7 @@ class Libgit2(CMakePackage): """ homepage = "https://libgit2.github.com/" - url = "https://github.com/libgit2/libgit2/archive/v0.24.2.tar.gz" + url = "https://github.com/libgit2/libgit2/archive/v0.26.0.tar.gz" version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac') diff --git a/var/spack/repos/builtin/packages/libgpuarray/package.py b/var/spack/repos/builtin/packages/libgpuarray/package.py index 1f26b75628..9ab2beba2b 100644 --- a/var/spack/repos/builtin/packages/libgpuarray/package.py +++ b/var/spack/repos/builtin/packages/libgpuarray/package.py @@ -25,4 +25,4 @@ class Libgpuarray(CMakePackage): depends_on('cuda') depends_on('cmake@3:', type='build') - depends_on('libcheck') + depends_on('check') diff --git a/var/spack/repos/builtin/packages/libmongoc/package.py b/var/spack/repos/builtin/packages/libmongoc/package.py deleted file mode 100644 index 0d3110a803..0000000000 --- a/var/spack/repos/builtin/packages/libmongoc/package.py +++ /dev/null @@ -1,79 +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 Libmongoc(AutotoolsPackage): - """libmongoc is a client library written in C for MongoDB.""" - - homepage = "https://github.com/mongodb/mongo-c-driver" - url = "https://github.com/mongodb/mongo-c-driver/releases/download/1.7.0/mongo-c-driver-1.7.0.tar.gz" - - maintainers = ['michaelkuhn'] - - version('1.9.5', sha256='4a4bd0b0375450250a3da50c050b84b9ba8950ce32e16555714e75ebae0b8019') - version('1.9.4', sha256='910c2f1b2e3df4d0ea39c2f242160028f90fcb8201f05339a730ec4ba70811fb') - version('1.9.3', sha256='c2c94ef63aaa09efabcbadc4ac3c8740faa102266bdd2559d550f1955b824398') - version('1.9.1', sha256='91951444d34581deeaff46cc2985c68805754f618a20ac369b761ce9b621c4cd') - version('1.8.1', sha256='87d87b7581018cde7edff85f522d43d9c0a226df26fa53b77ca1613a3aca8233') - version('1.8.0', sha256='1b53883b4cbf08e7d77ad7ab7a02deca90b1719c67f9ad132b47e60d0206ea4e') - version('1.7.0', sha256='48a0dbd44fef2124b51cf501f06be269b1a39452303b880b37473a6030c6e023') - version('1.6.3', sha256='82df03de117a3ccf563b9eccfd2e5365df8f215a36dea7446d439969033ced7b') - version('1.6.2', sha256='7ec27e9be4da2bf9e4b316374f8c29f816f0a0f019b984411777e9681e17f70e') - version('1.6.1', sha256='1bdfb27944c6da8e56da209a5d56efac70df1f8c4ca4498b46f75bf3f9360898') - - variant('ssl', default=True, description='Enable SSL support.') - variant('snappy', default=True, description='Enable Snappy support.') - variant('zlib', default=True, description='Enable zlib support.') - - patch('https://github.com/mongodb/mongo-c-driver/pull/466.patch', sha256='713a872217d11aba04a774785a2824d26b566543c270a1fa386114f5200fda20', when='@1.8.1') - - depends_on('autoconf', type='build', when='@1.8.1') - depends_on('automake', type='build', when='@1.8.1') - depends_on('libtool', type='build', when='@1.8.1') - depends_on('m4', type='build', when='@1.8.1') - depends_on('pkgconfig', type='build') - - depends_on('libbson') - - depends_on('openssl', when='+ssl') - depends_on('snappy', when='+snappy') - depends_on('zlib', when='+zlib') - - @property - def force_autoreconf(self): - # Run autoreconf due to build system patch - return self.spec.satisfies('@1.8.1') - - def configure_args(self): - spec = self.spec - - args = [ - '--disable-automatic-init-and-cleanup' - ] - - if '+ssl' in spec: - args.append('--enable-ssl=openssl') - else: - args.append('--enable-ssl=no') - - if spec.satisfies('@1.7.0:'): - # --with-{snappy,zlib}=system are broken for versions < 1.8.1 - if '+snappy' not in spec: - args.append('--with-snappy=no') - elif spec.satisfies('@1.8.1:'): - args.append('--with-snappy=system') - - if '+zlib' not in spec: - args.append('--with-zlib=no') - elif spec.satisfies('@1.8.1:'): - args.append('--with-zlib=system') - - if spec.satisfies('@1.9.3:'): - args.append('--with-libbson=auto') - else: - args.append('--with-libbson=system') - return args diff --git a/var/spack/repos/builtin/packages/libnrm/package.py b/var/spack/repos/builtin/packages/libnrm/package.py index ad79170f9e..178e4e7d34 100644 --- a/var/spack/repos/builtin/packages/libnrm/package.py +++ b/var/spack/repos/builtin/packages/libnrm/package.py @@ -19,5 +19,5 @@ class Libnrm(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') - depends_on('zeromq') + depends_on('libzmq') depends_on('mpich') diff --git a/var/spack/repos/builtin/packages/libzmq/package.py b/var/spack/repos/builtin/packages/libzmq/package.py new file mode 100644 index 0000000000..531d268f03 --- /dev/null +++ b/var/spack/repos/builtin/packages/libzmq/package.py @@ -0,0 +1,61 @@ +# 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 Libzmq(AutotoolsPackage): + """The ZMQ networking/concurrency library and core API""" + + homepage = "http://zguide.zeromq.org/" + url = "https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.tar.gz" + git = "https://github.com/zeromq/libzmq.git" + + version('develop', branch='master') + version('4.3.2', sha256='ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763') + version('4.3.1', sha256='bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb') + version('4.3.0', sha256='8e9c3af6dc5a8540b356697081303be392ade3f014615028b3c896d0148397fd') + version('4.2.5', sha256='cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f') + version('4.2.2', sha256='5b23f4ca9ef545d5bd3af55d305765e3ee06b986263b31967435d285a3e6df6b') + version('4.1.4', sha256='e99f44fde25c2e4cb84ce440f87ca7d3fe3271c2b8cfbc67d55e4de25e6fe378') + version('4.1.2', sha256='f9162ead6d68521e5154d871bac304f88857308bb02366b81bb588497a345927') + version('4.1.1', sha256='43d61e5706b43946aad4a661400627bcde9c63cc25816d4749c67b64c3dab8db') + version('4.0.7', sha256='e00b2967e074990d0538361cc79084a0a92892df2c6e7585da34e4c61ee47b03') + version('4.0.6', sha256='28a2a9c9b77014c39087a498942449df18bb9885cdb63334833525a1d19f2894') + version('4.0.5', sha256='3bc93c5f67370341428364ce007d448f4bb58a0eaabd0a60697d8086bc43342b') + + variant("libsodium", default=True, + description="Build with message encryption support via libsodium") + + depends_on("libsodium", when='+libsodium') + depends_on("libsodium@:1.0.3", when='+libsodium@:4.1.2') + + depends_on('autoconf', type='build', when='@develop') + depends_on('automake', type='build', when='@develop') + depends_on('libtool', type='build', when='@develop') + depends_on('pkgconfig', type='build') + + conflicts('%gcc@8:', when='@:4.2.2') + + def url_for_version(self, version): + if version <= Version('4.1.4'): + url = "http://download.zeromq.org/zeromq-{0}.tar.gz" + else: + url = "https://github.com/zeromq/libzmq/releases/download/v{0}/zeromq-{0}.tar.gz" + return url.format(version) + + @when('@develop') + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./autogen.sh') + + def configure_args(self): + config_args = [] + if '+libsodium' in self.spec: + config_args.append('--with-libsodium') + if 'clang' in self.compiler.cc: + config_args.append("CFLAGS=-Wno-gnu") + config_args.append("CXXFLAGS=-Wno-gnu") + return config_args diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index 411a6f8fe6..6e7c44ad99 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -17,7 +17,7 @@ class Likwid(Package): for information.""" homepage = "https://github.com/RRZE-HPC/likwid" - url = "https://github.com/RRZE-HPC/likwid/archive/4.1.2.tar.gz" + url = "https://github.com/RRZE-HPC/likwid/archive/4.3.4.tar.gz" version('4.3.4', sha256='5c0d1c66b25dac8292a02232f06454067f031a238f010c62f40ef913c6609a83') version('4.3.3', sha256='a681378cd66c1679ca840fb5fac3136bfec93c01b3d78cc1d00a641db325a9a3') diff --git a/var/spack/repos/builtin/packages/lsf/package.py b/var/spack/repos/builtin/packages/lsf/package.py index 7c8827c0bf..b257274c3a 100644 --- a/var/spack/repos/builtin/packages/lsf/package.py +++ b/var/spack/repos/builtin/packages/lsf/package.py @@ -11,7 +11,6 @@ class Lsf(Package): """IBM Platform LSF is a batch scheduler for HPC environments""" homepage = "https://www.ibm.com/marketplace/hpc-workload-management" - url = "https://www.ibm.com/marketplace/hpc-workload-management" # LSF needs to be added as an external package to SPACK. For this, the # config file packages.yaml needs to be adjusted: diff --git a/var/spack/repos/builtin/packages/lua-bitlib/package.py b/var/spack/repos/builtin/packages/lua-bitlib/package.py index ca5d20764f..cf05980704 100644 --- a/var/spack/repos/builtin/packages/lua-bitlib/package.py +++ b/var/spack/repos/builtin/packages/lua-bitlib/package.py @@ -14,8 +14,7 @@ class LuaBitlib(Package): homepage = "http://luaforge.net/projects/bitlib" url = "https://luarocks.org/bitlib-23-2.src.rock" - version('23', sha256='fe226edc2808162e67418e6b2c98befc0ed25a489ecffc6974fa153f951c0c34', - url="https://luarocks.org/bitlib-23-2.src.rock", + version('23-2', sha256='fe226edc2808162e67418e6b2c98befc0ed25a489ecffc6974fa153f951c0c34', expand=False) extends('lua') diff --git a/var/spack/repos/builtin/packages/lua-jit/package.py b/var/spack/repos/builtin/packages/lua-jit/package.py deleted file mode 100644 index a0f8e2b88d..0000000000 --- a/var/spack/repos/builtin/packages/lua-jit/package.py +++ /dev/null @@ -1,21 +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) - -import os -from spack import * - - -class LuaJit(Package): - """Flast flexible JITed lua""" - homepage = "http://www.luajit.org" - url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz" - - version('2.0.4', sha256='620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d') - - def install(self, spec, prefix): - # Linking with the C++ compiler is a dirty hack to deal with the fact - # that unwinding symbols are not included by libc, this is necessary - # on some platforms for the final link stage to work - make("install", "PREFIX=" + prefix, "TARGET_LD=" + os.environ['CXX']) diff --git a/var/spack/repos/builtin/packages/lua-lpeg/package.py b/var/spack/repos/builtin/packages/lua-lpeg/package.py index 8d6d35d1ff..73f9d2e4c6 100644 --- a/var/spack/repos/builtin/packages/lua-lpeg/package.py +++ b/var/spack/repos/builtin/packages/lua-lpeg/package.py @@ -13,8 +13,7 @@ class LuaLpeg(Package): homepage = "http://www.inf.puc-rio.br/~roberto/lpeg/" url = "https://luarocks.org/manifests/luarocks/lpeg-0.12-1.src.rock" - version('0.12.1', sha256='3962e8d695d0f9095c9453f2a42f9f1a89fb94db9b0c3bf22934c1e8a3b0ef5a', - url='https://luarocks.org/manifests/luarocks/lpeg-0.12-1.src.rock', + version('0.12-1', sha256='3962e8d695d0f9095c9453f2a42f9f1a89fb94db9b0c3bf22934c1e8a3b0ef5a', expand=False) extends("lua") diff --git a/var/spack/repos/builtin/packages/lua-luajit/package.py b/var/spack/repos/builtin/packages/lua-luajit/package.py new file mode 100644 index 0000000000..552096d716 --- /dev/null +++ b/var/spack/repos/builtin/packages/lua-luajit/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) + +import os +from spack import * + + +class LuaLuajit(Package): + """Flast flexible JITed lua""" + homepage = "http://www.luajit.org" + url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz" + + version('2.0.4', sha256='620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d') + + def install(self, spec, prefix): + # Linking with the C++ compiler is a dirty hack to deal with the fact + # that unwinding symbols are not included by libc, this is necessary + # on some platforms for the final link stage to work + make("install", "PREFIX=" + prefix, "TARGET_LD=" + os.environ['CXX']) diff --git a/var/spack/repos/builtin/packages/lua-mpack/package.py b/var/spack/repos/builtin/packages/lua-mpack/package.py index 777ff19e18..f332aba1e1 100644 --- a/var/spack/repos/builtin/packages/lua-mpack/package.py +++ b/var/spack/repos/builtin/packages/lua-mpack/package.py @@ -15,8 +15,7 @@ class LuaMpack(Package): depends_on('msgpack-c') - version('1.0.0-0', sha256='9068d9d3f407c72a7ea18bc270b0fa90aad60a2f3099fa23d5902dd71ea4cd5f', - url='https://luarocks.org/manifests/tarruda/mpack-1.0.6-0.src.rock', + version('1.0.6-0', sha256='9068d9d3f407c72a7ea18bc270b0fa90aad60a2f3099fa23d5902dd71ea4cd5f', expand=False) extends('lua') diff --git a/var/spack/repos/builtin/packages/macsio/package.py b/var/spack/repos/builtin/packages/macsio/package.py index d90aad340d..264e41590d 100644 --- a/var/spack/repos/builtin/packages/macsio/package.py +++ b/var/spack/repos/builtin/packages/macsio/package.py @@ -93,6 +93,6 @@ class Macsio(CMakePackage): .format(spec['exodusii'].prefix)) # exodus requires netcdf cmake_args.append("-DWITH_NETCDF_PREFIX={0}" - .format(spec['netcdf'].prefix)) + .format(spec['netcdf-c'].prefix)) return cmake_args diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py index 41363ec0a1..0528b3ed8f 100644 --- a/var/spack/repos/builtin/packages/maker/package.py +++ b/var/spack/repos/builtin/packages/maker/package.py @@ -55,7 +55,7 @@ class Maker(Package): depends_on('perl-inline-c', type=('build', 'run')) depends_on('perl-io-all', type=('build', 'run')) depends_on('perl-io-prompt', type=('build', 'run')) - depends_on('perl-bio-perl', type=('build', 'run')) + depends_on('perl-bioperl', type=('build', 'run')) depends_on('blast-plus') depends_on('snap-korf') depends_on('repeatmasker') diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py index 5990660d5d..774aeebf8c 100644 --- a/var/spack/repos/builtin/packages/mariadb/package.py +++ b/var/spack/repos/builtin/packages/mariadb/package.py @@ -45,7 +45,7 @@ class Mariadb(CMakePackage): depends_on('curl') depends_on('libxml2') depends_on('lz4') - depends_on('zeromq') + depends_on('libzmq') depends_on('msgpack-c') depends_on('openssl') depends_on('openssl@:1.0', when='@:10.1') diff --git a/var/spack/repos/builtin/packages/meme/package.py b/var/spack/repos/builtin/packages/meme/package.py index a045e6d1ee..aeed3ed239 100644 --- a/var/spack/repos/builtin/packages/meme/package.py +++ b/var/spack/repos/builtin/packages/meme/package.py @@ -25,7 +25,7 @@ class Meme(AutotoolsPackage): depends_on('perl', type=('build', 'run')) depends_on('python@2.7:', type=('build', 'run')) depends_on('mpi', when='+mpi') - depends_on('image-magick', type=('build', 'run'), when='+image-magick') + depends_on('imagemagick', type=('build', 'run'), when='+image-magick') depends_on('perl-xml-parser', type=('build', 'run')) def configure_args(self): diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index d8ff47d0b4..747fe707cd 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -189,7 +189,7 @@ class Mfem(Package): # depends_on('petsc@3.8:+mpi+double+hypre+suite-sparse+mumps', # when='+petsc') depends_on('mpfr', when='+mpfr') - depends_on('netcdf@4.1.3:', when='+netcdf') + depends_on('netcdf-c@4.1.3:', when='+netcdf') depends_on('unwind', when='+libunwind') depends_on('zlib', when='+gzstream') depends_on('gnutls', when='+gnutls') @@ -368,9 +368,9 @@ class Mfem(Package): if '+netcdf' in spec: options += [ - 'NETCDF_OPT=-I%s' % spec['netcdf'].prefix.include, + 'NETCDF_OPT=-I%s' % spec['netcdf-c'].prefix.include, 'NETCDF_LIB=%s' % - ld_flags_from_dirs([spec['netcdf'].prefix.lib], ['netcdf'])] + ld_flags_from_dirs([spec['netcdf-c'].prefix.lib], ['netcdf'])] if '+gzstream' in spec: if "@:3.3.2" in spec: diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py index 6ab1311309..b1b22cb281 100644 --- a/var/spack/repos/builtin/packages/moab/package.py +++ b/var/spack/repos/builtin/packages/moab/package.py @@ -39,8 +39,6 @@ class Moab(AutotoolsPackage): description='Required to enable the ExodusII reader/writer.') variant('pnetcdf', default=False, description='Enable pnetcdf (AKA parallel-netcdf) support') - variant('netcdf', default=False, - description='Required to enable the ExodusII reader/writer.') variant('zoltan', default=False, description='Enable zoltan support') variant('cgm', default=False, description='Enable common geometric module') variant('metis', default=True, description='Enable metis link') @@ -77,7 +75,7 @@ class Moab(AutotoolsPackage): depends_on('mpi', when='+mpi') depends_on('hdf5', when='+hdf5') depends_on('hdf5+mpi', when='+hdf5+mpi') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('parallel-netcdf', when='+pnetcdf') depends_on('cgm', when='+cgm') depends_on('metis', when='+metis') @@ -129,7 +127,7 @@ class Moab(AutotoolsPackage): options.append('--without-hdf5') if '+netcdf' in spec: - options.append('--with-netcdf=%s' % spec['netcdf'].prefix) + options.append('--with-netcdf=%s' % spec['netcdf-c'].prefix) else: options.append('--without-netcdf') diff --git a/var/spack/repos/builtin/packages/mongo-c-driver/package.py b/var/spack/repos/builtin/packages/mongo-c-driver/package.py new file mode 100644 index 0000000000..aeac6d31db --- /dev/null +++ b/var/spack/repos/builtin/packages/mongo-c-driver/package.py @@ -0,0 +1,79 @@ +# 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 MongoCDriver(AutotoolsPackage): + """libmongoc is a client library written in C for MongoDB.""" + + homepage = "https://github.com/mongodb/mongo-c-driver" + url = "https://github.com/mongodb/mongo-c-driver/releases/download/1.7.0/mongo-c-driver-1.7.0.tar.gz" + + maintainers = ['michaelkuhn'] + + version('1.9.5', sha256='4a4bd0b0375450250a3da50c050b84b9ba8950ce32e16555714e75ebae0b8019') + version('1.9.4', sha256='910c2f1b2e3df4d0ea39c2f242160028f90fcb8201f05339a730ec4ba70811fb') + version('1.9.3', sha256='c2c94ef63aaa09efabcbadc4ac3c8740faa102266bdd2559d550f1955b824398') + version('1.9.1', sha256='91951444d34581deeaff46cc2985c68805754f618a20ac369b761ce9b621c4cd') + version('1.8.1', sha256='87d87b7581018cde7edff85f522d43d9c0a226df26fa53b77ca1613a3aca8233') + version('1.8.0', sha256='1b53883b4cbf08e7d77ad7ab7a02deca90b1719c67f9ad132b47e60d0206ea4e') + version('1.7.0', sha256='48a0dbd44fef2124b51cf501f06be269b1a39452303b880b37473a6030c6e023') + version('1.6.3', sha256='82df03de117a3ccf563b9eccfd2e5365df8f215a36dea7446d439969033ced7b') + version('1.6.2', sha256='7ec27e9be4da2bf9e4b316374f8c29f816f0a0f019b984411777e9681e17f70e') + version('1.6.1', sha256='1bdfb27944c6da8e56da209a5d56efac70df1f8c4ca4498b46f75bf3f9360898') + + variant('ssl', default=True, description='Enable SSL support.') + variant('snappy', default=True, description='Enable Snappy support.') + variant('zlib', default=True, description='Enable zlib support.') + + patch('https://github.com/mongodb/mongo-c-driver/pull/466.patch', sha256='713a872217d11aba04a774785a2824d26b566543c270a1fa386114f5200fda20', when='@1.8.1') + + depends_on('autoconf', type='build', when='@1.8.1') + depends_on('automake', type='build', when='@1.8.1') + depends_on('libtool', type='build', when='@1.8.1') + depends_on('m4', type='build', when='@1.8.1') + depends_on('pkgconfig', type='build') + + depends_on('libbson') + + depends_on('openssl', when='+ssl') + depends_on('snappy', when='+snappy') + depends_on('zlib', when='+zlib') + + @property + def force_autoreconf(self): + # Run autoreconf due to build system patch + return self.spec.satisfies('@1.8.1') + + def configure_args(self): + spec = self.spec + + args = [ + '--disable-automatic-init-and-cleanup' + ] + + if '+ssl' in spec: + args.append('--enable-ssl=openssl') + else: + args.append('--enable-ssl=no') + + if spec.satisfies('@1.7.0:'): + # --with-{snappy,zlib}=system are broken for versions < 1.8.1 + if '+snappy' not in spec: + args.append('--with-snappy=no') + elif spec.satisfies('@1.8.1:'): + args.append('--with-snappy=system') + + if '+zlib' not in spec: + args.append('--with-zlib=no') + elif spec.satisfies('@1.8.1:'): + args.append('--with-zlib=system') + + if spec.satisfies('@1.9.3:'): + args.append('--with-libbson=auto') + else: + args.append('--with-libbson=system') + return args diff --git a/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py b/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py index 0f36e6174e..47732dcbb4 100644 --- a/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py +++ b/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py @@ -15,4 +15,4 @@ class MongoCxxDriver(CMakePackage): version('3.2.0', sha256='e26edd44cf20bd6be91907403b6d63a065ce95df4c61565770147a46716aad8c') - depends_on('libmongoc@1.9.2:') + depends_on('mongo-c-driver@1.9.2:') diff --git a/var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch b/var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch new file mode 100644 index 0000000000..17e285b0bf --- /dev/null +++ b/var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch @@ -0,0 +1,1565 @@ +diff -Naur bash-4.3/builtins/circle.def mpibash-4.3/builtins/circle.def +--- bash-4.3/builtins/circle.def 1969-12-31 17:00:00.000000000 -0700 ++++ mpibash-4.3/builtins/circle.def 2014-05-13 11:27:37.314100671 -0600 +@@ -0,0 +1,620 @@ ++This file is circle.def, from which is created circle.c. ++It implements all of the "circle_*" builtins in Bash. ++ ++$PRODUCES circle.c ++ ++#include ++ ++#include ++#if defined (HAVE_UNISTD_H) ++# ifdef _MINIX ++# include ++# endif ++# include ++#endif ++ ++#include "../bashintl.h" ++#include "../shell.h" ++#include "common.h" ++#include "bashgetopt.h" ++#include ++ ++extern int running_trap, trap_saved_exit_value; ++ ++static int circle_rank; /* Rank in the Libcircle job */ ++static SHELL_VAR *create_func = NULL; /* User-defined callback function for CIRCLE_cb_create. */ ++static SHELL_VAR *process_func = NULL; /* User-defined callback function for CIRCLE_cb_process. */ ++static SHELL_VAR *reduce_init_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_init. */ ++static SHELL_VAR *reduce_fini_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_fini. */ ++static SHELL_VAR *reduce_op_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_op. */ ++static CIRCLE_handle *current_handle = NULL; /* Active handle within a callback or NULL if not within a callback */ ++static int within_reduction = 0; /* 1=within a reduction callback; 0=not */ ++ ++/* Return with a usage message if no arguments remain. */ ++#define YES_ARGS(LIST) \ ++ if ((LIST) == 0) \ ++ { \ ++ builtin_usage (); \ ++ return (EX_USAGE); \ ++ } ++ ++/* Perform the same operation as bind_variable, but with VALUE being a ++ * number, not a string. */ ++static SHELL_VAR * ++bind_variable_number (name, value, flags) ++ const char *name; ++ long value; ++ int flags; ++{ ++ char numstr[25]; /* String version of VALUE */ ++ ++ sprintf (numstr, "%ld", value); ++ return bind_variable (name, numstr, flags); ++} ++ ++/* Invoke the user-defined creation-callback function (create_func). */ ++static void ++internal_create_func (handle) ++ CIRCLE_handle *handle; ++{ ++ WORD_LIST *funcargs; ++ ++ if (create_func == NULL) ++ return; ++ current_handle = handle; ++ funcargs = make_word_list (make_word ("cb_create"), NULL); ++ execute_shell_function (create_func, funcargs); ++ dispose_words (funcargs); ++ current_handle = NULL; ++} ++ ++/* Invoke the user-defined process-callback function (process_func). */ ++static void ++internal_process_func (handle) ++ CIRCLE_handle *handle; ++{ ++ WORD_LIST *funcargs; ++ ++ if (process_func == NULL) ++ return; ++ current_handle = handle; ++ funcargs = make_word_list (make_word ("cb_process"), NULL); ++ execute_shell_function (process_func, funcargs); ++ dispose_words (funcargs); ++ current_handle = NULL; ++} ++ ++/* Invoke the user-defined reduction-initiation callback function ++ * (reduce_init_func). */ ++static void ++internal_reduce_init_func (void) ++{ ++ WORD_LIST *funcargs; ++ ++ if (reduce_init_func == NULL) ++ return; ++ within_reduction = 1; ++ funcargs = make_word_list (make_word ("cb_reduce_init"), NULL); ++ execute_shell_function (reduce_init_func, funcargs); ++ dispose_words (funcargs); ++ within_reduction = 0; ++} ++ ++/* Invoke the user-defined reduction callback function ++ * (reduce_op_func). */ ++static void ++internal_reduce_op_func (buf1, size1, buf2, size2) ++ const void* buf1; ++ size_t size1; ++ const void* buf2; ++ size_t size2; ++{ ++ WORD_LIST *funcargs; ++ ++ if (reduce_op_func == NULL) ++ return; ++ within_reduction = 1; ++ funcargs = make_word_list (make_word (buf2), NULL); ++ funcargs = make_word_list (make_word (buf1), funcargs); ++ funcargs = make_word_list (make_word ("cb_reduce_op"), funcargs); ++ execute_shell_function (reduce_op_func, funcargs); ++ dispose_words (funcargs); ++ within_reduction = 0; ++} ++ ++/* Invoke the user-defined reduction-finalization callback function ++ * (reduce_fini_func). */ ++static void ++internal_reduce_fini_func (buf, size) ++ const void* buf; ++ size_t size; ++{ ++ WORD_LIST *funcargs; ++ ++ if (reduce_fini_func == NULL) ++ return; ++ funcargs = make_word_list (make_word (buf), NULL); ++ funcargs = make_word_list (make_word ("cb_reduce_fini"), funcargs); ++ execute_shell_function (reduce_fini_func, funcargs); ++ dispose_words (funcargs); ++} ++ ++/* Look up a user-provided callback function. */ ++static int ++find_callback_function (list, user_func) ++ WORD_LIST *list; ++ SHELL_VAR **user_func; ++{ ++ char *funcname; /* Name of the user-defined function. */ ++ ++ /* If no argument was provided, nullify the callback function. */ ++ if (list == NULL) ++ { ++ *user_func = NULL; ++ return EXECUTION_SUCCESS; ++ } ++ ++ /* Get the callback function. */ ++ funcname = list->word->word; ++ list = list->next; ++ no_args (list); ++ *user_func = find_function (funcname); ++ if (*user_func == NULL) ++ { ++ builtin_error (_("function %s not found"), funcname); ++ return EXECUTION_FAILURE; ++ } ++ return EXECUTION_SUCCESS; ++} ++ ++/* Initialize Libcircle. */ ++void ++initialize_libcircle (argc, argv) ++ int argc; ++ char **argv; ++{ ++ circle_rank = CIRCLE_init (argc, argv, CIRCLE_DEFAULT_FLAGS); ++ bind_variable_number ("circle_rank", circle_rank, 0); ++ CIRCLE_enable_logging (CIRCLE_LOG_WARN); ++ CIRCLE_cb_create (internal_create_func); ++ CIRCLE_cb_process (internal_process_func); ++ CIRCLE_cb_reduce_init (internal_reduce_init_func); ++ CIRCLE_cb_reduce_op (internal_reduce_op_func); ++ CIRCLE_cb_reduce_fini (internal_reduce_fini_func); ++} ++ ++/* Finalize Libcircle. */ ++void ++finalize_libcircle (void) ++{ ++ CIRCLE_finalize (); ++} ++ ++/* ---------------------------------------------------------------------- */ ++ ++$BUILTIN circle_set_options ++$FUNCTION circle_set_options_builtin ++$SHORT_DOC circle_set_options [flag]... ++Change Libcircle's run-time behavior. ++ ++Arguments: ++ FLAG "split_random", "split_equal", or "create_global" ++ ++Multiple flags can be provided. If no flags are provided, Libcircle ++reverts to its default options. ++ ++Exit Status: ++Returns 0 unless an invalid option is given. ++$END ++/*'*/ ++ ++/* Here is the circle_set_options builtin. */ ++int ++circle_set_options_builtin (list) ++ WORD_LIST *list; ++{ ++ char *word; /* One argument */ ++ int flags = 0; /* Flags to pass to CIRCLE_set_options */ ++ ++ if (list == NULL) ++ flags = CIRCLE_DEFAULT_FLAGS; ++ else ++ while (list != NULL) ++ { ++ word = list->word->word; ++ if (!strcmp (word, "split_random")) ++ flags |= CIRCLE_SPLIT_RANDOM; ++ else if (!strcmp (word, "split_equal")) ++ flags |= CIRCLE_SPLIT_EQUAL; ++ else if (!strcmp (word, "create_global")) ++ flags |= CIRCLE_CREATE_GLOBAL; ++ else ++ { ++ builtin_error (_("invalid flag \"%s\""), word); ++ return (EXECUTION_FAILURE); ++ } ++ list = list->next; ++ } ++ CIRCLE_set_options (flags); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_cb_create ++$FUNCTION circle_cb_create_builtin ++$SHORT_DOC circle_cb_create [func] ++Register a function that will create work when asked. ++ ++Arguments: ++ FUNC User-defined callback function that will invoke ++ circle_enqueue when called ++ ++If FUNC is omitted, no function will be associated with work creation. ++This can be used to nullify a previous circle_cb_create invocation. ++ ++Exit Status: ++Returns 0 unless an invalid function is given or an error occurs. ++$END ++ ++/* Here is the circle_cb_create builtin. */ ++int ++circle_cb_create_builtin (list) ++ WORD_LIST *list; ++{ ++ return find_callback_function (list, &create_func); ++} ++ ++$BUILTIN circle_cb_process ++$FUNCTION circle_cb_process_builtin ++$SHORT_DOC circle_cb_process [func] ++Register a function that will process work when asked. ++ ++Arguments: ++ FUNC User-defined callback function that will invoke ++ circle_enqueue when called ++ ++If FUNC is omitted, no function will be associated with work processing. ++This can be used to nullify a previous circle_cb_process invocation. ++ ++Exit Status: ++Returns 0 unless an invalid function is given or an error occurs. ++$END ++ ++/* Here is the circle_cb_process builtin. */ ++int ++circle_cb_process_builtin (list) ++ WORD_LIST *list; ++{ ++ return find_callback_function (list, &process_func); ++} ++ ++$BUILTIN circle_begin ++$FUNCTION circle_begin_builtin ++$SHORT_DOC circle_begin ++Begin creation and processing of the distributed work queue. ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++ ++/* Here is the circle_begin builtin. */ ++int ++circle_begin_builtin (list) ++ WORD_LIST *list; ++{ ++ no_args (list); ++ CIRCLE_begin (); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_enqueue ++$FUNCTION circle_enqueue_builtin ++$SHORT_DOC circle_enqueue work ++Enqueue work onto the distributed queue. ++ ++Arguments: ++ WORK "Work" as represented by an arbitrary string of limited ++ size (generally around 4KB) ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++ ++/* Here is the circle_enqueue builtin. */ ++int ++circle_enqueue_builtin (list) ++ WORD_LIST *list; ++{ ++ char *work; /* Work to perform */ ++ ++ /* Extract the work argument. */ ++ YES_ARGS (list); ++ work = list->word->word; ++ list = list->next; ++ no_args (list); ++ ++ /* Complain if we're not within a proper callback function. */ ++ if (current_handle == NULL) ++ { ++ builtin_error (_("not within a Libcircle \"create\" or \"process\" callback function")); ++ return EXECUTION_FAILURE; ++ } ++ ++ /* Enqueue the work. */ ++ if (current_handle->enqueue (work) == -1) ++ return EXECUTION_FAILURE; ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_dequeue ++$FUNCTION circle_dequeue_builtin ++$SHORT_DOC circle_dequeue var ++Dequeue work from the distributed queue into a variable. ++ ++Arguments: ++ VAR Variable in which to receive previously enqueued "work" ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++ ++/* Here is the circle_dequeue builtin. */ ++int ++circle_dequeue_builtin (list) ++ WORD_LIST *list; ++{ ++ char *varname; /* Variable in which to store the work string */ ++ char work[CIRCLE_MAX_STRING_LEN+1]; /* Work to perform */ ++ ++ /* Extract the variable-name argument. */ ++ YES_ARGS (list); ++ varname = list->word->word; ++ list = list->next; ++ no_args (list); ++ ++ /* Complain if we're not within a callback function. */ ++ if (current_handle == NULL) ++ { ++ builtin_error (_("not within a Libcircle callback function")); ++ return EXECUTION_FAILURE; ++ } ++ ++ /* Dequeue the work and bind it to the given variable. */ ++ if (current_handle->dequeue (work) == -1) ++ return EXECUTION_FAILURE; ++ bind_variable (varname, work, 0); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_enable_logging ++$FUNCTION circle_enable_logging_builtin ++$SHORT_DOC circle_enable_logging log_level ++Change Libcircle's logging verbosity ++ ++Arguments: ++ LOG_LEVEL "fatal", "error", "warning", "info", or "debug" ++ ++Exit Status: ++Returns 0 unless an invalid option is given. ++$END ++/*'*/ ++ ++/* Here is the circle_enable_logging builtin. */ ++int ++circle_enable_logging_builtin (list) ++ WORD_LIST *list; ++{ ++ char *word; /* One argument */ ++ CIRCLE_loglevel loglevel; /* Level to set */ ++ ++ /* Parse the log level. */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (!strcmp (word, "fatal")) ++ loglevel = CIRCLE_LOG_FATAL; ++ else if (!strcmp (word, "error")) ++ loglevel = CIRCLE_LOG_ERR; ++ else if (!strcmp (word, "warning")) ++ loglevel = CIRCLE_LOG_WARN; ++ else if (!strcmp (word, "info")) ++ loglevel = CIRCLE_LOG_INFO; ++ else if (!strcmp (word, "debug")) ++ loglevel = CIRCLE_LOG_DBG; ++ else ++ { ++ builtin_error (_("invalid log level \"%s\""), word); ++ return (EXECUTION_FAILURE); ++ } ++ ++ /* Set the log level. */ ++ CIRCLE_enable_logging (loglevel); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_abort ++$FUNCTION circle_abort_builtin ++$SHORT_DOC circle_abort ++Terminate queue processing. ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++ ++/* Here is the circle_abort builtin. */ ++int ++circle_abort_builtin (list) ++ WORD_LIST *list; ++{ ++ no_args (list); ++ CIRCLE_abort (); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_checkpoint ++$FUNCTION circle_checkpoint_builtin ++$SHORT_DOC circle_checkpoint ++Checkpoint a work queue to disk. ++ ++Write a file called circle${circle_rank}.txt containing the current ++queue state of rank ${circle_rank}. On a later run, a worker can ++invoke circle_read_restarts to repopulate its queue from such a ++checkpoint file. ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++/*'*/ ++ ++/* Here is the circle_checkpoint builtin. */ ++int ++circle_checkpoint_builtin (list) ++ WORD_LIST *list; ++{ ++ no_args (list); ++ CIRCLE_checkpoint (); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_read_restarts ++$FUNCTION circle_read_restarts_builtin ++$SHORT_DOC circle_read_restarts ++Repopulate a work queue from a disk checkpoint. ++ ++Read queue contents from a file called circle${circle_rank}.txt, which ++was previously produced by circle_checkpoint. ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++/*'*/ ++ ++/* Here is the circle_read_restarts builtin. */ ++int ++circle_read_restarts_builtin (list) ++ WORD_LIST *list; ++{ ++ no_args (list); ++ CIRCLE_read_restarts (); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN circle_cb_reduce_init ++$FUNCTION circle_cb_reduce_init_builtin ++$SHORT_DOC circle_cb_reduce_init [func] ++Register a function that will initiate a reduction operation. ++ ++Arguments: ++ FUNC User-defined callback function that will invoke ++ circle_reduce when called ++ ++FUNC will be invoked on all ranks. ++ ++If FUNC is omitted, no function will be associated with reduction ++initialization. This can be used to nullify a previous ++circle_cb_reduce_init invocation. ++ ++Exit Status: ++Returns 0 unless an invalid function is given or an error occurs. ++$END ++ ++/* Here is the circle_cb_reduce_init builtin. */ ++int ++circle_cb_reduce_init_builtin (list) ++ WORD_LIST *list; ++{ ++ return find_callback_function (list, &reduce_init_func); ++} ++ ++$BUILTIN circle_cb_reduce_op ++$FUNCTION circle_cb_reduce_op_builtin ++$SHORT_DOC circle_cb_reduce_op [func] ++Register a function that will complete a reduction operation. ++ ++Arguments: ++ FUNC User-defined callback function that will receive ++ two items to reduce and invoke circle_reduce on ++ the reduced value ++ ++If FUNC is omitted, no function will be associated with reduction ++execution. This can be used to nullify a previous circle_cb_reduce_op ++invocation. ++ ++Exit Status: ++Returns 0 unless an invalid function is given or an error occurs. ++$END ++ ++/* Here is the circle_cb_reduce_op builtin. */ ++int ++circle_cb_reduce_op_builtin (list) ++ WORD_LIST *list; ++{ ++ return find_callback_function (list, &reduce_op_func); ++} ++ ++$BUILTIN circle_cb_reduce_fini ++$FUNCTION circle_cb_reduce_fini_builtin ++$SHORT_DOC circle_cb_reduce_fini [func] ++Register a function that will complete a reduction operation. ++ ++Arguments: ++ FUNC User-defined callback function that will receive ++ the final reduced data ++ ++If FUNC is omitted, no function will be associated with reduction ++completion. This can be used to nullify a previous ++circle_cb_reduce_fini invocation. ++ ++Libcircle guarantees that FUNC will be invoked only on rank 0. ++ ++Exit Status: ++Returns 0 unless an invalid function is given or an error occurs. ++$END ++ ++/* Here is the circle_cb_reduce_fini builtin. */ ++int ++circle_cb_reduce_fini_builtin (list) ++ WORD_LIST *list; ++{ ++ return find_callback_function (list, &reduce_fini_func); ++} ++ ++$BUILTIN circle_reduce ++$FUNCTION circle_reduce_builtin ++$SHORT_DOC circle_reduce work ++Seed the next phase of a reduction operation ++ ++Arguments: ++ WORK "Work" as represented by an arbitrary string of limited ++ size (generally around 4KB) ++ ++This function should be called both by the callback function ++registered with circle_reduce_init and the callback function ++registered with circle_reduce_op. ++ ++Exit Status: ++Returns 0 unless an error occurs. ++$END ++ ++/* Here is the circle_reduce builtin. */ ++int ++circle_reduce_builtin (list) ++ WORD_LIST *list; ++{ ++ char *work; /* Work to perform */ ++ ++ /* Extract the work argument. */ ++ YES_ARGS (list); ++ work = list->word->word; ++ list = list->next; ++ no_args (list); ++ ++ /* Complain if we're not within a proper callback function. */ ++ if (!within_reduction) ++ { ++ builtin_error (_("not within a Libcircle \"reduce_init\" or \"reduce_op\" callback function")); ++ return EXECUTION_FAILURE; ++ } ++ ++ /* Reduce the work. */ ++ CIRCLE_reduce (work, strlen (work)); ++ return EXECUTION_SUCCESS; ++} +diff -Naur bash-4.3/builtins/Makefile.in mpibash-4.3/builtins/Makefile.in +--- bash-4.3/builtins/Makefile.in 2012-05-25 07:29:19.000000000 -0600 ++++ mpibash-4.3/builtins/Makefile.in 2014-05-13 11:27:37.314100671 -0600 +@@ -141,7 +141,9 @@ + $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \ + $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \ + $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \ +- $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def ++ $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def \ ++ $(srcdir)/mpi.def \ ++@CIRCLE@ $(srcdir)/circle.def + + STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \ + getopt.h +@@ -153,7 +155,9 @@ + jobs.o kill.o let.o mapfile.o \ + pushd.o read.o return.o set.o setattr.o shift.o source.o \ + suspend.o test.o times.o trap.o type.o ulimit.o umask.o \ +- wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o ++ wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o \ ++ mpi.o \ ++@CIRCLE@ circle.o + + CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h tmpbuiltins.c \ + tmpbuiltins.h +@@ -317,6 +321,8 @@ + getopts.o: getopts.def + reserved.o: reserved.def + complete.o: complete.def ++@CIRCLE@ circle.o: circle.def ++mpi.o: mpi.def + + # C files + bashgetopt.o: ../config.h $(topdir)/bashansi.h $(BASHINCDIR)/ansi_stdlib.h +@@ -644,6 +650,19 @@ + mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h + mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h + mapfile.o: $(topdir)/arrayfunc.h ../pathnames.h ++@CIRCLE@ circle.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h ++@CIRCLE@ circle.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h ++@CIRCLE@ circle.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h ++@CIRCLE@ circle.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h ++@CIRCLE@ circle.o: $(BASHINCDIR)/maxpath.h ../pathnames.h ++mpi.o: ../config.h ../config-top.h ../config-bot.h ../bashintl.h ++mpi.o: ../include/gettext.h ../shell.h ../config.h ../bashjmp.h ++mpi.o: ../include/posixjmp.h ../command.h ../syntax.h ../general.h ++mpi.o: ../bashtypes.h ../include/chartypes.h ../xmalloc.h ../bashansi.h ++mpi.o: ../error.h ../variables.h ../array.h ../assoc.h ../hashlib.h ++mpi.o: ../conftypes.h ../arrayfunc.h ../quit.h ../sig.h ../include/maxpath.h ++mpi.o: ../unwind_prot.h ../dispose_cmd.h ../make_cmd.h ../include/ocache.h ++mpi.o: ../subst.h ../pathnames.h ../externs.h common.h bashgetopt.h + + #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h + +diff -Naur bash-4.3/builtins/mpi.def mpibash-4.3/builtins/mpi.def +--- bash-4.3/builtins/mpi.def 1969-12-31 17:00:00.000000000 -0700 ++++ mpibash-4.3/builtins/mpi.def 2014-05-13 11:27:37.314100671 -0600 +@@ -0,0 +1,744 @@ ++This file is mpi.def, from which is created mpi.c. ++It implements all of the "mpi_*" builtins in Bash. ++ ++$PRODUCES mpi.c ++ ++#include ++ ++#include ++#if defined (HAVE_UNISTD_H) ++# ifdef _MINIX ++# include ++# endif ++# include ++#endif ++ ++#include "../bashintl.h" ++#include "../shell.h" ++#include "common.h" ++#include "bashgetopt.h" ++#include ++ ++extern int running_trap, trap_saved_exit_value; ++ ++/* Keep track of who we are within MPI_COMM_WORLD. */ ++static int mpi_rank; ++static int mpi_num_ranks; ++ ++/* Try an MPI operation. Return with an error message on failure. */ ++#define MPI_TRY(STMT) \ ++ do \ ++ { \ ++ int mpierr; \ ++ mpierr = STMT; \ ++ if (mpierr != MPI_SUCCESS) \ ++ return report_mpi_error (mpierr); \ ++ } \ ++ while (0) ++ ++/* Return with a usage message if no arguments remain. */ ++#define YES_ARGS(LIST) \ ++ if ((LIST) == 0) \ ++ { \ ++ builtin_usage (); \ ++ return (EX_USAGE); \ ++ } ++ ++/* Return with an error message if a given variable is read-only or if ++ * we can't write to it for any other reason (e.g., it's defined as a ++ * function). */ ++#define REQUIRE_WRITABLE(NAME) \ ++ do \ ++ { \ ++ SHELL_VAR *bindvar = find_shell_variable (NAME); \ ++ if (bindvar) \ ++ { \ ++ if (readonly_p (bindvar)) \ ++ { \ ++ err_readonly (NAME); \ ++ return (EXECUTION_FAILURE); \ ++ } \ ++ if (unbind_variable (NAME) == -1) \ ++ { \ ++ builtin_error ("Failed to write to variable %s", NAME); \ ++ return (EXECUTION_FAILURE); \ ++ } \ ++ } \ ++ } \ ++ while (0) ++ ++/* Initialize MPI. */ ++void ++initialize_mpi (argc, argv) ++ int argc; ++ char **argv; ++{ ++ int init_done; ++ ++ MPI_Initialized (&init_done); ++ if (!init_done) ++ MPI_Init (&argc, &argv); ++ MPI_Errhandler_set (MPI_COMM_WORLD, MPI_ERRORS_RETURN); ++ MPI_Comm_rank (MPI_COMM_WORLD, &mpi_rank); ++ MPI_Comm_size (MPI_COMM_WORLD, &mpi_num_ranks); ++} ++ ++/* Finalize MPI. */ ++void ++finalize_mpi () ++{ ++ MPI_Finalize (); ++} ++ ++/* Parse an operation name into an MPI_Op. Return 1 on success, 0 on ++ * failure. */ ++static int ++parse_operation (char *name, MPI_Op *op) ++{ ++ /* Define a mapping from operator names to MPI_Op values. */ ++ typedef struct { ++ char *name; /* Operation name (e.g., "sum") */ ++ MPI_Op value; /* Operation value (e.g., MPI_SUM) */ ++ } opname2value_t; ++ static opname2value_t oplist[] = { ++ {"max", MPI_MAX}, ++ {"min", MPI_MIN}, ++ {"sum", MPI_SUM}, ++ {"prod", MPI_PROD}, ++ {"land", MPI_LAND}, ++ {"band", MPI_BAND}, ++ {"lor", MPI_LOR}, ++ {"bor", MPI_BOR}, ++ {"lxor", MPI_LXOR}, ++ {"bxor", MPI_BXOR}, ++ {"maxloc", MPI_MAXLOC}, ++ {"minloc", MPI_MINLOC} ++ }; ++ size_t i; ++ ++ for (i = 0; i < sizeof(oplist)/sizeof(opname2value_t); i++) ++ if (!strcmp(name, oplist[i].name)) ++ { ++ *op = oplist[i].value; ++ if (i > 0) ++ { ++ /* As a performance optimization, bubble up the value we ++ * just found. */ ++ opname2value_t prev = oplist[i - 1]; ++ oplist[i - 1] = oplist[i]; ++ oplist[i] = prev; ++ } ++ return 1; ++ } ++ return 0; ++} ++ ++/* Report an error to the user and return EXECUTION_FAILURE. */ ++static int ++report_mpi_error (mpierr) ++ int mpierr; ++{ ++ char errstr[MPI_MAX_ERROR_STRING]; ++ int errstrlen; ++ ++ MPI_Error_string (mpierr, errstr, &errstrlen); ++ builtin_error ("%s", errstr); ++ return EXECUTION_FAILURE; ++} ++ ++/* Perform the same operation as bind_variable, but with VALUE being a ++ * number, not a string. */ ++static SHELL_VAR * ++bind_variable_number (name, value, flags) ++ const char *name; ++ long value; ++ int flags; ++{ ++ char numstr[25]; /* String version of VALUE */ ++ ++ sprintf (numstr, "%ld", value); ++ return bind_variable (name, numstr, flags); ++} ++ ++/* Perform the same operation as bind_array_variable, but with VALUE ++ * being a number, not a string. */ ++static SHELL_VAR * ++bind_array_variable_number (name, ind, value, flags) ++ char *name; ++ arrayind_t ind; ++ long value; ++ int flags; ++{ ++ char numstr[25]; /* String version of VALUE */ ++ ++ sprintf (numstr, "%ld", value); ++ return bind_array_variable (name, ind, numstr, flags); ++} ++ ++/* Define a reduction-type function (allreduce, scan, exscan, etc.). */ ++typedef int (*reduction_func_t)(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm); ++ ++/* Perform any reduction-type operation (allreduce, scan, exscan, etc.). */ ++static int ++reduction_like (list, funcname, func) ++ WORD_LIST *list; ++ char *funcname; ++ reduction_func_t func; ++{ ++ char *word; /* One argument */ ++ struct { ++ long int value; /* Reduced value */ ++ int rank; /* Rank associated with the above */ ++ } number, result; ++ MPI_Op operation = MPI_SUM; /* Operation to perform */ ++ char *varname; /* Name of the variable to bind the results to */ ++ intmax_t n; ++ int i; ++ ++ /* Parse "-O OPERATION" (optional), where OPERATION is a reduction ++ * operation. */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (ISOPTION (word, 'O')) ++ { ++ list = list->next; ++ if (list == 0) ++ { ++ sh_needarg (funcname); ++ return (EX_USAGE); ++ } ++ word = list->word->word; ++ if (!parse_operation (word, &operation)) ++ { ++ sh_invalidopt ("-O"); ++ return (EX_USAGE); ++ } ++ list = list->next; ++ } ++ ++ /* Parse the argument, which must be a number. */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (!legal_number (word, &n)) ++ { ++ sh_neednumarg (funcname); ++ return (EX_USAGE); ++ } ++ number.value = (long int) n; ++ number.rank = mpi_rank; ++ list = list->next; ++ ++ /* Parse the target variable, which must not be read-only. */ ++ YES_ARGS (list); ++ varname = list->word->word; ++ if (mpi_rank != 0 || func != MPI_Exscan) ++ REQUIRE_WRITABLE (varname); ++ list = list->next; ++ no_args (list); ++ ++ /* Perform the reduction operation. Bind the given array variable ++ * to the result and, for minloc/maxloc, the associated rank. */ ++ if (mpi_rank != 0 || func != MPI_Exscan) { ++ bind_array_variable (varname, 0, "", 0); ++ bind_array_variable (varname, 1, "", 0); ++ } ++ if (operation == MPI_MINLOC || operation == MPI_MAXLOC) ++ { ++ MPI_TRY (func (&number, &result, 1, MPI_LONG_INT, operation, MPI_COMM_WORLD)); ++ if (mpi_rank != 0 || func != MPI_Exscan) ++ bind_array_variable_number (varname, 1, result.rank, 0); ++ } ++ else ++ MPI_TRY (func (&number.value, &result.value, 1, MPI_LONG, operation, MPI_COMM_WORLD)); ++ if (mpi_rank != 0 || func != MPI_Exscan) ++ bind_array_variable_number (varname, 0, result.value, 0); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_comm_rank ++$FUNCTION mpi_comm_rank_builtin ++$SHORT_DOC mpi_comm_rank name ++Return the process's rank in the MPI job. ++ ++Arguments: ++ NAME Scalar variable in which to receive the rank ++ ++Exit Status: ++Returns 0 unless an invalid option is given. ++$END ++/*'*/ ++ ++/* Here is the mpi_comm_rank builtin. */ ++int ++mpi_comm_rank_builtin (list) ++ WORD_LIST *list; ++{ ++ char *varname; /* Name of the variable to bind the results to */ ++ ++ YES_ARGS (list); ++ varname = list->word->word; ++ REQUIRE_WRITABLE (varname); ++ list = list->next; ++ no_args (list); ++ bind_variable_number (varname, mpi_rank, 0); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_comm_size ++$FUNCTION mpi_comm_size_builtin ++$SHORT_DOC mpi_comm_size name ++Return the total number of ranks in the MPI job. ++ ++Arguments: ++ NAME Scalar variable in which to receive the number of ranks ++ ++Exit Status: ++Returns 0 unless an invalid option is given. ++$END ++ ++/* Here is the mpi_comm_size builtin. */ ++int ++mpi_comm_size_builtin (list) ++ WORD_LIST *list; ++{ ++ char *varname; /* Name of the variable to bind the results to */ ++ ++ YES_ARGS (list); ++ varname = list->word->word; ++ REQUIRE_WRITABLE (varname); ++ list = list->next; ++ no_args (list); ++ bind_variable_number (varname, mpi_num_ranks, 0); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_abort ++$FUNCTION mpi_abort_builtin ++$SHORT_DOC mpi_abort [n] ++Abort all processes in the MPI job and exit the shell. ++ ++Exits not only the caller's shell (with a status of N) but also all ++remote shells that are part of the same MPI job. If N is omitted, the ++exit status is that of the last command executed. ++ ++This command should be used only in extreme circumstances. It is ++better for each process to exit normally on its own. ++$END ++/*'*/ ++ ++/* Here is the mpi_abort builtin. */ ++int ++mpi_abort_builtin (list) ++ WORD_LIST *list; ++{ ++ int exit_value; ++ ++ exit_value = (running_trap == 1 && list == 0) ? trap_saved_exit_value : get_exitstat (list); /* Copied from exit.def */ ++ MPI_TRY (MPI_Abort (MPI_COMM_WORLD, exit_value)); ++ return EXECUTION_FAILURE; ++} ++ ++$BUILTIN mpi_send ++$FUNCTION mpi_send_builtin ++$SHORT_DOC mpi_send [-t tag] rank message ++Send a message to a remote process in the same MPI job. ++ ++Options: ++ -t TAG Send the message using tag TAG (default: 0). TAG must ++ be a nonnegative integer. ++ ++Arguments: ++ RANK Whom to send the message to. RANK must be an integer in ++ the range [0, $(mpi_comm_size)-1]. ++ ++ MESSAGE String to send to rank RANK. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_send builtin. */ ++int ++mpi_send_builtin (list) ++ WORD_LIST *list; ++{ ++ char *word; /* One argument */ ++ intmax_t target_rank; /* MPI target rank */ ++ char *message; /* Message to send to rank target_rank */ ++ intmax_t tag = 0; /* Message tag to use */ ++ ++ /* Parse "-t TAG" (optional), where TAG is a number or "any". */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (ISOPTION (word, 't')) ++ { ++ list = list->next; ++ if (list == 0) ++ { ++ sh_needarg ("mpi_recv"); ++ return (EX_USAGE); ++ } ++ word = list->word->word; ++ if (!legal_number (word, &tag)) ++ { ++ sh_neednumarg ("-t"); ++ return (EX_USAGE); ++ } ++ list = list->next; ++ } ++ else if (*word == '-') ++ { ++ sh_invalidopt (word); ++ builtin_usage (); ++ return (EX_USAGE); ++ } ++ ++ /* Parse the target rank, which must be a number. */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (!legal_number (word, &target_rank)) ++ { ++ builtin_error (_("mpi_send: numeric rank required")); ++ return (EX_USAGE); ++ } ++ list = list->next; ++ ++ /* Parse the message to send. */ ++ YES_ARGS (list); ++ message = list->word->word; ++ list = list->next; ++ no_args (list); ++ ++ /* Send the message. */ ++ MPI_TRY (MPI_Send (message, strlen(message)+1, MPI_BYTE, (int)target_rank, (int)tag, MPI_COMM_WORLD)); ++ return EXECUTION_SUCCESS; ++} ++ ++ ++$BUILTIN mpi_recv ++$FUNCTION mpi_recv_builtin ++$SHORT_DOC mpi_recv [-t tag] rank name ++Receive a message from a remote process in the same MPI job. ++ ++Options: ++ -t TAG Receive only messages sent using tag TAG (default: 0). ++ TAG must be either a nonnegative integer or the string ++ "any" to receive messages sent using any tag. ++ ++Arguments: ++ RANK Receive only messages sent from sender RANK. RANK ++ must either be in the range [0, $(mpi_comm_size)-1] or ++ be the string "any" to receive messages from any sender. ++ ++ NAME Array variable in which to receive the message, sender ++ rank, and tag. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_recv builtin. */ ++int ++mpi_recv_builtin (list) ++ WORD_LIST *list; ++{ ++ char *word; /* One argument */ ++ intmax_t source_rank; /* MPI source rank */ ++ char *endptr; /* Used for parsing strings into numbers */ ++ MPI_Status status; /* Status of an MPI operation */ ++ int count; /* Message length in bytes */ ++ intmax_t tag = 0; /* Message tag to use */ ++ char *varname; /* Name of the variable to bind the results to */ ++ static char *message = NULL; /* Message received from MPI */ ++ static size_t alloced = 0; /* Number of bytes allocated for the above */ ++ int opt; /* Parsed option */ ++ ++ /* Parse any options provided. */ ++ reset_internal_getopt (); ++ while ((opt = internal_getopt (list, "t:")) != -1) ++ { ++ switch (opt) ++ { ++ case 't': ++ if (!strcmp (list_optarg, "any")) ++ tag = MPI_ANY_TAG; ++ else if (!legal_number (list_optarg, &tag)) ++ { ++ builtin_error (_("-t: numeric argument or \"any\" required")); ++ return (EX_USAGE); ++ } ++ break; ++ ++ default: ++ sh_invalidopt (word); ++ builtin_usage (); ++ return (EX_USAGE); ++ } ++ } ++ list = loptend; ++ ++ /* Parse the source rank, which must be a number or "any". */ ++ YES_ARGS (list); ++ word = list->word->word; ++ if (!legal_number (word, &source_rank)) ++ { ++ if (!strcmp (word, "any")) ++ source_rank = MPI_ANY_SOURCE; ++ else ++ { ++ builtin_error (_("mpi_recv: numeric rank or \"any\" required")); ++ return (EX_USAGE); ++ } ++ } ++ list = list->next; ++ ++ /* Parse the target variable, which must not be read-only. */ ++ YES_ARGS (list); ++ varname = list->word->word; ++ REQUIRE_WRITABLE (varname); ++ list = list->next; ++ no_args (list); ++ ++ /* Receive a message. Because we don't know long the message will ++ * be, we first probe to get the length. */ ++ MPI_TRY (MPI_Probe ((int)source_rank, (int)tag, MPI_COMM_WORLD, &status)); ++ MPI_TRY (MPI_Get_count (&status, MPI_BYTE, &count)); ++ if (alloced < count) ++ { ++ message = xrealloc (message, count); ++ alloced = count; ++ } ++ MPI_TRY (MPI_Recv (message, count, MPI_BYTE, status.MPI_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, &status)); ++ bind_array_variable (varname, 0, message, 0); ++ bind_array_variable_number (varname, 1, status.MPI_SOURCE, 0); ++ bind_array_variable_number (varname, 2, status.MPI_TAG, 0); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_barrier ++$FUNCTION mpi_barrier_builtin ++$SHORT_DOC mpi_barrier ++Synchronizes all of the processes in the MPI job. ++ ++No process will return from mpi_barrier until all processes have ++called mpi_barrier. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_barrier builtin. */ ++int ++mpi_barrier_builtin (list) ++ WORD_LIST *list; ++{ ++ no_args (list); ++ MPI_TRY (MPI_Barrier (MPI_COMM_WORLD)); ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_bcast ++$FUNCTION mpi_bcast_builtin ++$SHORT_DOC mpi_bcast [message] name ++Broadcast a message to all processes in the same MPI job. ++ ++Arguments: ++ MESSAGE String to broadcast from one process to all the others. ++ ++ NAME Scalar variable in which to receive the broadcast message. ++ ++Exactly one process in the MPI job must specify a message to ++broadcast. No process will return from mpi_bcast until all processes ++have called mpi_bcast. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_bcast builtin. */ ++int ++mpi_bcast_builtin (list) ++ WORD_LIST *list; ++{ ++ char *word; /* One argument */ ++ int root; /* MPI root rank */ ++ char *root_message; /* Message to broadcast */ ++ int msglen; /* Length in bytes of the above (including the NULL byte) */ ++ char *varname; /* Name of the variable to bind the results to */ ++ static int *all_lengths = NULL; /* List of every rank's msglen */ ++ static char *message = NULL; /* Message received from the root */ ++ static int alloced = 0; /* Bytes allocated for the above */ ++ int i; ++ ++ /* Parse the optional message and target variable, which must not be ++ * read-only. */ ++ YES_ARGS (list); ++ if (list->next == NULL) ++ { ++ /* Non-root */ ++ root_message = NULL; ++ msglen = -1; ++ } ++ else ++ { ++ /* Root */ ++ root_message = list->word->word; ++ msglen = (int) strlen(root_message) + 1; ++ list = list->next; ++ } ++ varname = list->word->word; ++ REQUIRE_WRITABLE (varname); ++ list = list->next; ++ no_args (list); ++ ++ /* Acquire global agreement on the root and the message size. */ ++ if (all_lengths == NULL) ++ all_lengths = xmalloc (mpi_num_ranks*sizeof(int)); ++ MPI_TRY (MPI_Allgather (&msglen, 1, MPI_INT, all_lengths, 1, MPI_INT, MPI_COMM_WORLD)); ++ root = -1; ++ for (i = 0; i < mpi_num_ranks; i++) ++ { ++ if (all_lengths[i] == -1) ++ continue; ++ if (root != -1) ++ { ++ builtin_error (_("mpi_bcast: more than one process specified a message")); ++ return (EXECUTION_FAILURE); ++ } ++ root = i; ++ msglen = all_lengths[i]; ++ } ++ if (root == -1) ++ { ++ builtin_error (_("mpi_bcast: no process specified a message")); ++ return (EXECUTION_FAILURE); ++ } ++ ++ /* Broadcast the message. */ ++ if (mpi_rank == root) ++ { ++ MPI_TRY (MPI_Bcast (root_message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); ++ bind_variable (varname, root_message, 0); ++ } ++ else ++ { ++ if (alloced < msglen) ++ { ++ message = xrealloc (message, msglen); ++ alloced = msglen; ++ } ++ MPI_TRY (MPI_Bcast (message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); ++ bind_variable (varname, message, 0); ++ } ++ return EXECUTION_SUCCESS; ++} ++ ++$BUILTIN mpi_scan ++$FUNCTION mpi_scan_builtin ++$SHORT_DOC mpi_scan number name ++Perform an inclusive scan across all processes in the same MPI job. ++ ++ -O OPERATION Operation to perform. Must be one of "max", "min", ++ "sum", "prod", "land", "band", "lor", "bor", "lxor", ++ "bxor", "maxloc", or "minloc" (default: "sum"). ++ ++Arguments: ++ NUMBER Integer to use in the scan operation. ++ ++ NAME Array variable in which to receive the result and, in ++ the case of maxloc and minloc, the associated rank. ++ ++In an inclusive-scan operation, each process i presents a number, ++a[i]. Once all processes in the MPI job have presented their number, ++the command returns a[0] to rank 0, a[0]+a[1] to rank 1, ++a[0]+a[1]+a[2] to rank 2, and so forth. The -O option enables "+" to ++be replaced with other operations. ++ ++Inclusive scans can be useful for assigning a unique index to each ++process in the MPI job. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_scan builtin. */ ++int ++mpi_scan_builtin (list) ++ WORD_LIST *list; ++{ ++ return reduction_like (list, "mpi_scan", MPI_Scan); ++} ++ ++$BUILTIN mpi_exscan ++$FUNCTION mpi_exscan_builtin ++$SHORT_DOC mpi_exscan number name ++Perform an exclusive scan across all processes in the same MPI job. ++ ++ -O OPERATION Operation to perform. Must be one of "max", "min", ++ "sum", "prod", "land", "band", "lor", "bor", "lxor", ++ "bxor", "maxloc", or "minloc" (default: "sum"). ++ ++Arguments: ++ NUMBER Integer to use in the scan operation. ++ ++ NAME Array variable in which to receive the result and, in ++ the case of maxloc and minloc, the associated rank. ++ ++In a exclusive-scan operation, each process i presents a number, a[i]. ++Once all processes in the MPI job have presented their number, the ++command assigns a[0] to NAME on rank 1, a[0]+a[1] to NAME on rank 2, ++a[0]+a[1]+a[2] to NAME on rank 3, and so forth. No assignment is ++performed on rank 0. The -O option enables "+" to be replaced with ++other operations. ++ ++Exclusive scans can be useful for assigning a unique index to each ++process in the MPI job. ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_exscan builtin. */ ++int ++mpi_exscan_builtin (list) ++ WORD_LIST *list; ++{ ++ return reduction_like (list, "mpi_exscan", MPI_Exscan); ++} ++ ++$BUILTIN mpi_allreduce ++$FUNCTION mpi_allreduce_builtin ++$SHORT_DOC mpi_allreduce number name ++Reduce numbers from all processes in an MPI job to a single number. ++ ++Options: ++ ++ -O OPERATION Operation to perform. Must be one of "max", "min", ++ "sum", "prod", "land", "band", "lor", "bor", "lxor", ++ "bxor", "maxloc", or "minloc" (default: "sum"). ++ ++Arguments: ++ NUMBER Integer to use in the allreduce operation. ++ ++ NAME Array variable in which to receive the result and, in ++ the case of maxloc and minloc, the associated rank. ++ ++In an all-reduce operation, each process i presents a number, a[i]. ++Once all processes in the MPI job have presented their number, the ++command returns a[0]+a[1]+...+a[n-1] to all ranks. The -O option ++enables "+" to be replaced with other operations. ++ ++All-reduces can be useful for reaching global agreement (e.g., of a ++termination condition). ++ ++Exit Status: ++Returns 0 unless an invalid option is given or an error occurs. ++$END ++ ++/* Here is the mpi_allreduce builtin. */ ++int ++mpi_allreduce_builtin (list) ++ WORD_LIST *list; ++{ ++ return reduction_like (list, "mpi_allreduce", MPI_Allreduce); ++} +diff -Naur bash-4.3/config.h.in mpibash-4.3/config.h.in +--- bash-4.3/config.h.in 2013-06-29 15:35:33.000000000 -0600 ++++ mpibash-4.3/config.h.in 2014-05-13 11:27:37.314100671 -0600 +@@ -1147,6 +1147,12 @@ + /* Define if you have the `__argz_stringify' function. */ + #undef HAVE___ARGZ_STRINGIFY + ++/* Define if you have both the header file and the libcircle library. */ ++#undef HAVE_LIBCIRCLE ++ ++/* Define if you have the `CIRCLE_cb_reduce_op' function. */ ++#undef HAVE_CIRCLE_CB_REDUCE_OP ++ + /* End additions for lib/intl */ + + #include "config-bot.h" +diff -Naur bash-4.3/configure.ac mpibash-4.3/configure.ac +--- bash-4.3/configure.ac 2014-02-11 08:37:53.000000000 -0700 ++++ mpibash-4.3/configure.ac 2014-05-13 11:27:37.302100179 -0600 +@@ -24,7 +24,7 @@ + AC_REVISION([for Bash 4.3, version 4.063])dnl + + define(bashvers, 4.3) +-define(relstatus, release) ++define(relstatus, MPI) + + AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) + +@@ -813,6 +813,21 @@ + fi + ]) + ++dnl Ensure that we can find an MPI library. ++AC_CHECK_FUNCS([MPI_Init], [], [ ++ AC_MSG_ERROR([Cannot continue without MPI. Consider specifying CC=mpicc.])]) ++ ++dnl If we have Libcircle, use it, too. ++AC_SEARCH_LIBS([CIRCLE_cb_create], [circle], [AC_CHECK_HEADERS([libcircle.h])]) ++if test "x$ac_cv_header_libcircle_h" = xyes; then ++ libcircle_make_prefix="" ++ AC_DEFINE([HAVE_LIBCIRCLE], [1], [Define if you have the Libcircle header and library.]) ++ AC_CHECK_FUNCS([CIRCLE_cb_reduce_op]) ++else ++ libcircle_make_prefix="#" ++fi ++AC_SUBST([CIRCLE], [$libcircle_make_prefix]) ++ + BASH_CHECK_DECL(strtoimax) + BASH_CHECK_DECL(strtol) + BASH_CHECK_DECL(strtoll) +diff -Naur bash-4.3/Makefile.in mpibash-4.3/Makefile.in +--- bash-4.3/Makefile.in 2014-01-25 14:27:30.000000000 -0700 ++++ mpibash-4.3/Makefile.in 2014-05-13 11:27:37.314100671 -0600 +@@ -104,7 +104,7 @@ + VERSPROG = bashversion$(EXEEXT) + VERSOBJ = bashversion.$(OBJEXT) + +-Program = bash$(EXEEXT) ++Program = mpibash$(EXEEXT) + Version = @BASHVERS@ + PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p` + RELSTATUS = @RELSTATUS@ +diff -Naur bash-4.3/shell.c mpibash-4.3/shell.c +--- bash-4.3/shell.c 2014-01-14 06:04:32.000000000 -0700 ++++ mpibash-4.3/shell.c 2014-05-13 11:27:37.314100671 -0600 +@@ -107,6 +107,13 @@ + extern char *primary_prompt, *secondary_prompt; + extern char *this_command_name; + ++extern void initialize_mpi __P((int, char **)); ++extern void finalize_mpi __P((void)); ++#ifdef HAVE_LIBCIRCLE ++extern void initialize_libcircle __P((int, char **)); ++extern void finalize_libcircle __P((void)); ++#endif ++ + /* Non-zero means that this shell has already been run; i.e. you should + call shell_reinitialize () if you need to start afresh. */ + int shell_initialized = 0; +@@ -324,7 +331,7 @@ + static void init_interactive_script __P((void)); + + static void set_shell_name __P((char *)); +-static void shell_initialize __P((void)); ++static void shell_initialize __P((int, char **)); + static void shell_reinitialize __P((void)); + + static void show_shell_usage __P((FILE *, int)); +@@ -561,7 +568,7 @@ + + /* From here on in, the shell must be a normal functioning shell. + Variables from the environment are expected to be set, etc. */ +- shell_initialize (); ++ shell_initialize (argc, argv); + + set_default_lang (); + set_default_locale_vars (); +@@ -941,6 +948,12 @@ + end_job_control (); + #endif /* JOB_CONTROL */ + ++#ifdef HAVE_LIBCIRCLE ++ finalize_libcircle (); ++#else ++ finalize_mpi (); ++#endif ++ + /* Always return the exit status of the last command to our parent. */ + sh_exit (s); + } +@@ -1691,7 +1704,9 @@ + /* Do whatever is necessary to initialize the shell. + Put new initializations in here. */ + static void +-shell_initialize () ++shell_initialize (argc, argv) ++ int argc; ++ char **argv; + { + char hostname[256]; + +@@ -1760,6 +1775,17 @@ + initialize_shell_options (privileged_mode||running_setuid); + initialize_bashopts (privileged_mode||running_setuid); + #endif ++ ++ /* Initialize Libcircle and MPI. */ ++#ifdef HAVE_LIBCIRCLE ++ initialize_libcircle (argc, argv); ++ initialize_mpi (argc, argv); ++ bind_variable ("libcircle", "yes", 0); ++#else ++ initialize_mpi (argc, argv); ++ bind_variable ("libcircle", "no", 0); ++#endif ++ bind_variable ("mpibash", "yes", 0); + } + + /* Function called by main () when it appears that the shell has already diff --git a/var/spack/repos/builtin/packages/mpi-bash/package.py b/var/spack/repos/builtin/packages/mpi-bash/package.py new file mode 100644 index 0000000000..5b3731fbbe --- /dev/null +++ b/var/spack/repos/builtin/packages/mpi-bash/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 MpiBash(AutotoolsPackage): + """Parallel scripting right from the Bourne-Again Shell (Bash)""" + + homepage = "https://github.com/lanl/MPI-Bash" + url = "https://github.com/lanl/MPI-Bash/releases/download/v1.2/mpibash-1.2.tar.gz" + + version('1.2', sha256='5c2faaa74464111205dbae4799bd89c2425810ec3708d004237b42d620c8be57') + + depends_on('bash@4.4:') + # uses MPI_Exscan which is in MPI-1.2 and later + depends_on('mpi@1.2:') + + depends_on('libcircle') + + def configure_args(self): + args = [ + "--with-bashdir={0}".format(self.spec['bash'].prefix.include.bash), + "CC={0}".format(self.spec['mpi'].mpicc) + ] + return args diff --git a/var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch b/var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch deleted file mode 100644 index 17e285b0bf..0000000000 --- a/var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch +++ /dev/null @@ -1,1565 +0,0 @@ -diff -Naur bash-4.3/builtins/circle.def mpibash-4.3/builtins/circle.def ---- bash-4.3/builtins/circle.def 1969-12-31 17:00:00.000000000 -0700 -+++ mpibash-4.3/builtins/circle.def 2014-05-13 11:27:37.314100671 -0600 -@@ -0,0 +1,620 @@ -+This file is circle.def, from which is created circle.c. -+It implements all of the "circle_*" builtins in Bash. -+ -+$PRODUCES circle.c -+ -+#include -+ -+#include -+#if defined (HAVE_UNISTD_H) -+# ifdef _MINIX -+# include -+# endif -+# include -+#endif -+ -+#include "../bashintl.h" -+#include "../shell.h" -+#include "common.h" -+#include "bashgetopt.h" -+#include -+ -+extern int running_trap, trap_saved_exit_value; -+ -+static int circle_rank; /* Rank in the Libcircle job */ -+static SHELL_VAR *create_func = NULL; /* User-defined callback function for CIRCLE_cb_create. */ -+static SHELL_VAR *process_func = NULL; /* User-defined callback function for CIRCLE_cb_process. */ -+static SHELL_VAR *reduce_init_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_init. */ -+static SHELL_VAR *reduce_fini_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_fini. */ -+static SHELL_VAR *reduce_op_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_op. */ -+static CIRCLE_handle *current_handle = NULL; /* Active handle within a callback or NULL if not within a callback */ -+static int within_reduction = 0; /* 1=within a reduction callback; 0=not */ -+ -+/* Return with a usage message if no arguments remain. */ -+#define YES_ARGS(LIST) \ -+ if ((LIST) == 0) \ -+ { \ -+ builtin_usage (); \ -+ return (EX_USAGE); \ -+ } -+ -+/* Perform the same operation as bind_variable, but with VALUE being a -+ * number, not a string. */ -+static SHELL_VAR * -+bind_variable_number (name, value, flags) -+ const char *name; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_variable (name, numstr, flags); -+} -+ -+/* Invoke the user-defined creation-callback function (create_func). */ -+static void -+internal_create_func (handle) -+ CIRCLE_handle *handle; -+{ -+ WORD_LIST *funcargs; -+ -+ if (create_func == NULL) -+ return; -+ current_handle = handle; -+ funcargs = make_word_list (make_word ("cb_create"), NULL); -+ execute_shell_function (create_func, funcargs); -+ dispose_words (funcargs); -+ current_handle = NULL; -+} -+ -+/* Invoke the user-defined process-callback function (process_func). */ -+static void -+internal_process_func (handle) -+ CIRCLE_handle *handle; -+{ -+ WORD_LIST *funcargs; -+ -+ if (process_func == NULL) -+ return; -+ current_handle = handle; -+ funcargs = make_word_list (make_word ("cb_process"), NULL); -+ execute_shell_function (process_func, funcargs); -+ dispose_words (funcargs); -+ current_handle = NULL; -+} -+ -+/* Invoke the user-defined reduction-initiation callback function -+ * (reduce_init_func). */ -+static void -+internal_reduce_init_func (void) -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_init_func == NULL) -+ return; -+ within_reduction = 1; -+ funcargs = make_word_list (make_word ("cb_reduce_init"), NULL); -+ execute_shell_function (reduce_init_func, funcargs); -+ dispose_words (funcargs); -+ within_reduction = 0; -+} -+ -+/* Invoke the user-defined reduction callback function -+ * (reduce_op_func). */ -+static void -+internal_reduce_op_func (buf1, size1, buf2, size2) -+ const void* buf1; -+ size_t size1; -+ const void* buf2; -+ size_t size2; -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_op_func == NULL) -+ return; -+ within_reduction = 1; -+ funcargs = make_word_list (make_word (buf2), NULL); -+ funcargs = make_word_list (make_word (buf1), funcargs); -+ funcargs = make_word_list (make_word ("cb_reduce_op"), funcargs); -+ execute_shell_function (reduce_op_func, funcargs); -+ dispose_words (funcargs); -+ within_reduction = 0; -+} -+ -+/* Invoke the user-defined reduction-finalization callback function -+ * (reduce_fini_func). */ -+static void -+internal_reduce_fini_func (buf, size) -+ const void* buf; -+ size_t size; -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_fini_func == NULL) -+ return; -+ funcargs = make_word_list (make_word (buf), NULL); -+ funcargs = make_word_list (make_word ("cb_reduce_fini"), funcargs); -+ execute_shell_function (reduce_fini_func, funcargs); -+ dispose_words (funcargs); -+} -+ -+/* Look up a user-provided callback function. */ -+static int -+find_callback_function (list, user_func) -+ WORD_LIST *list; -+ SHELL_VAR **user_func; -+{ -+ char *funcname; /* Name of the user-defined function. */ -+ -+ /* If no argument was provided, nullify the callback function. */ -+ if (list == NULL) -+ { -+ *user_func = NULL; -+ return EXECUTION_SUCCESS; -+ } -+ -+ /* Get the callback function. */ -+ funcname = list->word->word; -+ list = list->next; -+ no_args (list); -+ *user_func = find_function (funcname); -+ if (*user_func == NULL) -+ { -+ builtin_error (_("function %s not found"), funcname); -+ return EXECUTION_FAILURE; -+ } -+ return EXECUTION_SUCCESS; -+} -+ -+/* Initialize Libcircle. */ -+void -+initialize_libcircle (argc, argv) -+ int argc; -+ char **argv; -+{ -+ circle_rank = CIRCLE_init (argc, argv, CIRCLE_DEFAULT_FLAGS); -+ bind_variable_number ("circle_rank", circle_rank, 0); -+ CIRCLE_enable_logging (CIRCLE_LOG_WARN); -+ CIRCLE_cb_create (internal_create_func); -+ CIRCLE_cb_process (internal_process_func); -+ CIRCLE_cb_reduce_init (internal_reduce_init_func); -+ CIRCLE_cb_reduce_op (internal_reduce_op_func); -+ CIRCLE_cb_reduce_fini (internal_reduce_fini_func); -+} -+ -+/* Finalize Libcircle. */ -+void -+finalize_libcircle (void) -+{ -+ CIRCLE_finalize (); -+} -+ -+/* ---------------------------------------------------------------------- */ -+ -+$BUILTIN circle_set_options -+$FUNCTION circle_set_options_builtin -+$SHORT_DOC circle_set_options [flag]... -+Change Libcircle's run-time behavior. -+ -+Arguments: -+ FLAG "split_random", "split_equal", or "create_global" -+ -+Multiple flags can be provided. If no flags are provided, Libcircle -+reverts to its default options. -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the circle_set_options builtin. */ -+int -+circle_set_options_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ int flags = 0; /* Flags to pass to CIRCLE_set_options */ -+ -+ if (list == NULL) -+ flags = CIRCLE_DEFAULT_FLAGS; -+ else -+ while (list != NULL) -+ { -+ word = list->word->word; -+ if (!strcmp (word, "split_random")) -+ flags |= CIRCLE_SPLIT_RANDOM; -+ else if (!strcmp (word, "split_equal")) -+ flags |= CIRCLE_SPLIT_EQUAL; -+ else if (!strcmp (word, "create_global")) -+ flags |= CIRCLE_CREATE_GLOBAL; -+ else -+ { -+ builtin_error (_("invalid flag \"%s\""), word); -+ return (EXECUTION_FAILURE); -+ } -+ list = list->next; -+ } -+ CIRCLE_set_options (flags); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_cb_create -+$FUNCTION circle_cb_create_builtin -+$SHORT_DOC circle_cb_create [func] -+Register a function that will create work when asked. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_enqueue when called -+ -+If FUNC is omitted, no function will be associated with work creation. -+This can be used to nullify a previous circle_cb_create invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_create builtin. */ -+int -+circle_cb_create_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &create_func); -+} -+ -+$BUILTIN circle_cb_process -+$FUNCTION circle_cb_process_builtin -+$SHORT_DOC circle_cb_process [func] -+Register a function that will process work when asked. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_enqueue when called -+ -+If FUNC is omitted, no function will be associated with work processing. -+This can be used to nullify a previous circle_cb_process invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_process builtin. */ -+int -+circle_cb_process_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &process_func); -+} -+ -+$BUILTIN circle_begin -+$FUNCTION circle_begin_builtin -+$SHORT_DOC circle_begin -+Begin creation and processing of the distributed work queue. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_begin builtin. */ -+int -+circle_begin_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_begin (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_enqueue -+$FUNCTION circle_enqueue_builtin -+$SHORT_DOC circle_enqueue work -+Enqueue work onto the distributed queue. -+ -+Arguments: -+ WORK "Work" as represented by an arbitrary string of limited -+ size (generally around 4KB) -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_enqueue builtin. */ -+int -+circle_enqueue_builtin (list) -+ WORD_LIST *list; -+{ -+ char *work; /* Work to perform */ -+ -+ /* Extract the work argument. */ -+ YES_ARGS (list); -+ work = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a proper callback function. */ -+ if (current_handle == NULL) -+ { -+ builtin_error (_("not within a Libcircle \"create\" or \"process\" callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Enqueue the work. */ -+ if (current_handle->enqueue (work) == -1) -+ return EXECUTION_FAILURE; -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_dequeue -+$FUNCTION circle_dequeue_builtin -+$SHORT_DOC circle_dequeue var -+Dequeue work from the distributed queue into a variable. -+ -+Arguments: -+ VAR Variable in which to receive previously enqueued "work" -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_dequeue builtin. */ -+int -+circle_dequeue_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Variable in which to store the work string */ -+ char work[CIRCLE_MAX_STRING_LEN+1]; /* Work to perform */ -+ -+ /* Extract the variable-name argument. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a callback function. */ -+ if (current_handle == NULL) -+ { -+ builtin_error (_("not within a Libcircle callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Dequeue the work and bind it to the given variable. */ -+ if (current_handle->dequeue (work) == -1) -+ return EXECUTION_FAILURE; -+ bind_variable (varname, work, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_enable_logging -+$FUNCTION circle_enable_logging_builtin -+$SHORT_DOC circle_enable_logging log_level -+Change Libcircle's logging verbosity -+ -+Arguments: -+ LOG_LEVEL "fatal", "error", "warning", "info", or "debug" -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the circle_enable_logging builtin. */ -+int -+circle_enable_logging_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ CIRCLE_loglevel loglevel; /* Level to set */ -+ -+ /* Parse the log level. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!strcmp (word, "fatal")) -+ loglevel = CIRCLE_LOG_FATAL; -+ else if (!strcmp (word, "error")) -+ loglevel = CIRCLE_LOG_ERR; -+ else if (!strcmp (word, "warning")) -+ loglevel = CIRCLE_LOG_WARN; -+ else if (!strcmp (word, "info")) -+ loglevel = CIRCLE_LOG_INFO; -+ else if (!strcmp (word, "debug")) -+ loglevel = CIRCLE_LOG_DBG; -+ else -+ { -+ builtin_error (_("invalid log level \"%s\""), word); -+ return (EXECUTION_FAILURE); -+ } -+ -+ /* Set the log level. */ -+ CIRCLE_enable_logging (loglevel); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_abort -+$FUNCTION circle_abort_builtin -+$SHORT_DOC circle_abort -+Terminate queue processing. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_abort builtin. */ -+int -+circle_abort_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_abort (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_checkpoint -+$FUNCTION circle_checkpoint_builtin -+$SHORT_DOC circle_checkpoint -+Checkpoint a work queue to disk. -+ -+Write a file called circle${circle_rank}.txt containing the current -+queue state of rank ${circle_rank}. On a later run, a worker can -+invoke circle_read_restarts to repopulate its queue from such a -+checkpoint file. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+/*'*/ -+ -+/* Here is the circle_checkpoint builtin. */ -+int -+circle_checkpoint_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_checkpoint (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_read_restarts -+$FUNCTION circle_read_restarts_builtin -+$SHORT_DOC circle_read_restarts -+Repopulate a work queue from a disk checkpoint. -+ -+Read queue contents from a file called circle${circle_rank}.txt, which -+was previously produced by circle_checkpoint. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+/*'*/ -+ -+/* Here is the circle_read_restarts builtin. */ -+int -+circle_read_restarts_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_read_restarts (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_cb_reduce_init -+$FUNCTION circle_cb_reduce_init_builtin -+$SHORT_DOC circle_cb_reduce_init [func] -+Register a function that will initiate a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_reduce when called -+ -+FUNC will be invoked on all ranks. -+ -+If FUNC is omitted, no function will be associated with reduction -+initialization. This can be used to nullify a previous -+circle_cb_reduce_init invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_init builtin. */ -+int -+circle_cb_reduce_init_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_init_func); -+} -+ -+$BUILTIN circle_cb_reduce_op -+$FUNCTION circle_cb_reduce_op_builtin -+$SHORT_DOC circle_cb_reduce_op [func] -+Register a function that will complete a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will receive -+ two items to reduce and invoke circle_reduce on -+ the reduced value -+ -+If FUNC is omitted, no function will be associated with reduction -+execution. This can be used to nullify a previous circle_cb_reduce_op -+invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_op builtin. */ -+int -+circle_cb_reduce_op_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_op_func); -+} -+ -+$BUILTIN circle_cb_reduce_fini -+$FUNCTION circle_cb_reduce_fini_builtin -+$SHORT_DOC circle_cb_reduce_fini [func] -+Register a function that will complete a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will receive -+ the final reduced data -+ -+If FUNC is omitted, no function will be associated with reduction -+completion. This can be used to nullify a previous -+circle_cb_reduce_fini invocation. -+ -+Libcircle guarantees that FUNC will be invoked only on rank 0. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_fini builtin. */ -+int -+circle_cb_reduce_fini_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_fini_func); -+} -+ -+$BUILTIN circle_reduce -+$FUNCTION circle_reduce_builtin -+$SHORT_DOC circle_reduce work -+Seed the next phase of a reduction operation -+ -+Arguments: -+ WORK "Work" as represented by an arbitrary string of limited -+ size (generally around 4KB) -+ -+This function should be called both by the callback function -+registered with circle_reduce_init and the callback function -+registered with circle_reduce_op. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_reduce builtin. */ -+int -+circle_reduce_builtin (list) -+ WORD_LIST *list; -+{ -+ char *work; /* Work to perform */ -+ -+ /* Extract the work argument. */ -+ YES_ARGS (list); -+ work = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a proper callback function. */ -+ if (!within_reduction) -+ { -+ builtin_error (_("not within a Libcircle \"reduce_init\" or \"reduce_op\" callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Reduce the work. */ -+ CIRCLE_reduce (work, strlen (work)); -+ return EXECUTION_SUCCESS; -+} -diff -Naur bash-4.3/builtins/Makefile.in mpibash-4.3/builtins/Makefile.in ---- bash-4.3/builtins/Makefile.in 2012-05-25 07:29:19.000000000 -0600 -+++ mpibash-4.3/builtins/Makefile.in 2014-05-13 11:27:37.314100671 -0600 -@@ -141,7 +141,9 @@ - $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \ - $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \ - $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \ -- $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def -+ $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def \ -+ $(srcdir)/mpi.def \ -+@CIRCLE@ $(srcdir)/circle.def - - STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \ - getopt.h -@@ -153,7 +155,9 @@ - jobs.o kill.o let.o mapfile.o \ - pushd.o read.o return.o set.o setattr.o shift.o source.o \ - suspend.o test.o times.o trap.o type.o ulimit.o umask.o \ -- wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o -+ wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o \ -+ mpi.o \ -+@CIRCLE@ circle.o - - CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h tmpbuiltins.c \ - tmpbuiltins.h -@@ -317,6 +321,8 @@ - getopts.o: getopts.def - reserved.o: reserved.def - complete.o: complete.def -+@CIRCLE@ circle.o: circle.def -+mpi.o: mpi.def - - # C files - bashgetopt.o: ../config.h $(topdir)/bashansi.h $(BASHINCDIR)/ansi_stdlib.h -@@ -644,6 +650,19 @@ - mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h - mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h - mapfile.o: $(topdir)/arrayfunc.h ../pathnames.h -+@CIRCLE@ circle.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h -+@CIRCLE@ circle.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h -+@CIRCLE@ circle.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h -+@CIRCLE@ circle.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -+@CIRCLE@ circle.o: $(BASHINCDIR)/maxpath.h ../pathnames.h -+mpi.o: ../config.h ../config-top.h ../config-bot.h ../bashintl.h -+mpi.o: ../include/gettext.h ../shell.h ../config.h ../bashjmp.h -+mpi.o: ../include/posixjmp.h ../command.h ../syntax.h ../general.h -+mpi.o: ../bashtypes.h ../include/chartypes.h ../xmalloc.h ../bashansi.h -+mpi.o: ../error.h ../variables.h ../array.h ../assoc.h ../hashlib.h -+mpi.o: ../conftypes.h ../arrayfunc.h ../quit.h ../sig.h ../include/maxpath.h -+mpi.o: ../unwind_prot.h ../dispose_cmd.h ../make_cmd.h ../include/ocache.h -+mpi.o: ../subst.h ../pathnames.h ../externs.h common.h bashgetopt.h - - #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h - -diff -Naur bash-4.3/builtins/mpi.def mpibash-4.3/builtins/mpi.def ---- bash-4.3/builtins/mpi.def 1969-12-31 17:00:00.000000000 -0700 -+++ mpibash-4.3/builtins/mpi.def 2014-05-13 11:27:37.314100671 -0600 -@@ -0,0 +1,744 @@ -+This file is mpi.def, from which is created mpi.c. -+It implements all of the "mpi_*" builtins in Bash. -+ -+$PRODUCES mpi.c -+ -+#include -+ -+#include -+#if defined (HAVE_UNISTD_H) -+# ifdef _MINIX -+# include -+# endif -+# include -+#endif -+ -+#include "../bashintl.h" -+#include "../shell.h" -+#include "common.h" -+#include "bashgetopt.h" -+#include -+ -+extern int running_trap, trap_saved_exit_value; -+ -+/* Keep track of who we are within MPI_COMM_WORLD. */ -+static int mpi_rank; -+static int mpi_num_ranks; -+ -+/* Try an MPI operation. Return with an error message on failure. */ -+#define MPI_TRY(STMT) \ -+ do \ -+ { \ -+ int mpierr; \ -+ mpierr = STMT; \ -+ if (mpierr != MPI_SUCCESS) \ -+ return report_mpi_error (mpierr); \ -+ } \ -+ while (0) -+ -+/* Return with a usage message if no arguments remain. */ -+#define YES_ARGS(LIST) \ -+ if ((LIST) == 0) \ -+ { \ -+ builtin_usage (); \ -+ return (EX_USAGE); \ -+ } -+ -+/* Return with an error message if a given variable is read-only or if -+ * we can't write to it for any other reason (e.g., it's defined as a -+ * function). */ -+#define REQUIRE_WRITABLE(NAME) \ -+ do \ -+ { \ -+ SHELL_VAR *bindvar = find_shell_variable (NAME); \ -+ if (bindvar) \ -+ { \ -+ if (readonly_p (bindvar)) \ -+ { \ -+ err_readonly (NAME); \ -+ return (EXECUTION_FAILURE); \ -+ } \ -+ if (unbind_variable (NAME) == -1) \ -+ { \ -+ builtin_error ("Failed to write to variable %s", NAME); \ -+ return (EXECUTION_FAILURE); \ -+ } \ -+ } \ -+ } \ -+ while (0) -+ -+/* Initialize MPI. */ -+void -+initialize_mpi (argc, argv) -+ int argc; -+ char **argv; -+{ -+ int init_done; -+ -+ MPI_Initialized (&init_done); -+ if (!init_done) -+ MPI_Init (&argc, &argv); -+ MPI_Errhandler_set (MPI_COMM_WORLD, MPI_ERRORS_RETURN); -+ MPI_Comm_rank (MPI_COMM_WORLD, &mpi_rank); -+ MPI_Comm_size (MPI_COMM_WORLD, &mpi_num_ranks); -+} -+ -+/* Finalize MPI. */ -+void -+finalize_mpi () -+{ -+ MPI_Finalize (); -+} -+ -+/* Parse an operation name into an MPI_Op. Return 1 on success, 0 on -+ * failure. */ -+static int -+parse_operation (char *name, MPI_Op *op) -+{ -+ /* Define a mapping from operator names to MPI_Op values. */ -+ typedef struct { -+ char *name; /* Operation name (e.g., "sum") */ -+ MPI_Op value; /* Operation value (e.g., MPI_SUM) */ -+ } opname2value_t; -+ static opname2value_t oplist[] = { -+ {"max", MPI_MAX}, -+ {"min", MPI_MIN}, -+ {"sum", MPI_SUM}, -+ {"prod", MPI_PROD}, -+ {"land", MPI_LAND}, -+ {"band", MPI_BAND}, -+ {"lor", MPI_LOR}, -+ {"bor", MPI_BOR}, -+ {"lxor", MPI_LXOR}, -+ {"bxor", MPI_BXOR}, -+ {"maxloc", MPI_MAXLOC}, -+ {"minloc", MPI_MINLOC} -+ }; -+ size_t i; -+ -+ for (i = 0; i < sizeof(oplist)/sizeof(opname2value_t); i++) -+ if (!strcmp(name, oplist[i].name)) -+ { -+ *op = oplist[i].value; -+ if (i > 0) -+ { -+ /* As a performance optimization, bubble up the value we -+ * just found. */ -+ opname2value_t prev = oplist[i - 1]; -+ oplist[i - 1] = oplist[i]; -+ oplist[i] = prev; -+ } -+ return 1; -+ } -+ return 0; -+} -+ -+/* Report an error to the user and return EXECUTION_FAILURE. */ -+static int -+report_mpi_error (mpierr) -+ int mpierr; -+{ -+ char errstr[MPI_MAX_ERROR_STRING]; -+ int errstrlen; -+ -+ MPI_Error_string (mpierr, errstr, &errstrlen); -+ builtin_error ("%s", errstr); -+ return EXECUTION_FAILURE; -+} -+ -+/* Perform the same operation as bind_variable, but with VALUE being a -+ * number, not a string. */ -+static SHELL_VAR * -+bind_variable_number (name, value, flags) -+ const char *name; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_variable (name, numstr, flags); -+} -+ -+/* Perform the same operation as bind_array_variable, but with VALUE -+ * being a number, not a string. */ -+static SHELL_VAR * -+bind_array_variable_number (name, ind, value, flags) -+ char *name; -+ arrayind_t ind; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_array_variable (name, ind, numstr, flags); -+} -+ -+/* Define a reduction-type function (allreduce, scan, exscan, etc.). */ -+typedef int (*reduction_func_t)(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm); -+ -+/* Perform any reduction-type operation (allreduce, scan, exscan, etc.). */ -+static int -+reduction_like (list, funcname, func) -+ WORD_LIST *list; -+ char *funcname; -+ reduction_func_t func; -+{ -+ char *word; /* One argument */ -+ struct { -+ long int value; /* Reduced value */ -+ int rank; /* Rank associated with the above */ -+ } number, result; -+ MPI_Op operation = MPI_SUM; /* Operation to perform */ -+ char *varname; /* Name of the variable to bind the results to */ -+ intmax_t n; -+ int i; -+ -+ /* Parse "-O OPERATION" (optional), where OPERATION is a reduction -+ * operation. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (ISOPTION (word, 'O')) -+ { -+ list = list->next; -+ if (list == 0) -+ { -+ sh_needarg (funcname); -+ return (EX_USAGE); -+ } -+ word = list->word->word; -+ if (!parse_operation (word, &operation)) -+ { -+ sh_invalidopt ("-O"); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ } -+ -+ /* Parse the argument, which must be a number. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &n)) -+ { -+ sh_neednumarg (funcname); -+ return (EX_USAGE); -+ } -+ number.value = (long int) n; -+ number.rank = mpi_rank; -+ list = list->next; -+ -+ /* Parse the target variable, which must not be read-only. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Perform the reduction operation. Bind the given array variable -+ * to the result and, for minloc/maxloc, the associated rank. */ -+ if (mpi_rank != 0 || func != MPI_Exscan) { -+ bind_array_variable (varname, 0, "", 0); -+ bind_array_variable (varname, 1, "", 0); -+ } -+ if (operation == MPI_MINLOC || operation == MPI_MAXLOC) -+ { -+ MPI_TRY (func (&number, &result, 1, MPI_LONG_INT, operation, MPI_COMM_WORLD)); -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ bind_array_variable_number (varname, 1, result.rank, 0); -+ } -+ else -+ MPI_TRY (func (&number.value, &result.value, 1, MPI_LONG, operation, MPI_COMM_WORLD)); -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ bind_array_variable_number (varname, 0, result.value, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_comm_rank -+$FUNCTION mpi_comm_rank_builtin -+$SHORT_DOC mpi_comm_rank name -+Return the process's rank in the MPI job. -+ -+Arguments: -+ NAME Scalar variable in which to receive the rank -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the mpi_comm_rank builtin. */ -+int -+mpi_comm_rank_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Name of the variable to bind the results to */ -+ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ bind_variable_number (varname, mpi_rank, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_comm_size -+$FUNCTION mpi_comm_size_builtin -+$SHORT_DOC mpi_comm_size name -+Return the total number of ranks in the MPI job. -+ -+Arguments: -+ NAME Scalar variable in which to receive the number of ranks -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+ -+/* Here is the mpi_comm_size builtin. */ -+int -+mpi_comm_size_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Name of the variable to bind the results to */ -+ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ bind_variable_number (varname, mpi_num_ranks, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_abort -+$FUNCTION mpi_abort_builtin -+$SHORT_DOC mpi_abort [n] -+Abort all processes in the MPI job and exit the shell. -+ -+Exits not only the caller's shell (with a status of N) but also all -+remote shells that are part of the same MPI job. If N is omitted, the -+exit status is that of the last command executed. -+ -+This command should be used only in extreme circumstances. It is -+better for each process to exit normally on its own. -+$END -+/*'*/ -+ -+/* Here is the mpi_abort builtin. */ -+int -+mpi_abort_builtin (list) -+ WORD_LIST *list; -+{ -+ int exit_value; -+ -+ exit_value = (running_trap == 1 && list == 0) ? trap_saved_exit_value : get_exitstat (list); /* Copied from exit.def */ -+ MPI_TRY (MPI_Abort (MPI_COMM_WORLD, exit_value)); -+ return EXECUTION_FAILURE; -+} -+ -+$BUILTIN mpi_send -+$FUNCTION mpi_send_builtin -+$SHORT_DOC mpi_send [-t tag] rank message -+Send a message to a remote process in the same MPI job. -+ -+Options: -+ -t TAG Send the message using tag TAG (default: 0). TAG must -+ be a nonnegative integer. -+ -+Arguments: -+ RANK Whom to send the message to. RANK must be an integer in -+ the range [0, $(mpi_comm_size)-1]. -+ -+ MESSAGE String to send to rank RANK. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_send builtin. */ -+int -+mpi_send_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ intmax_t target_rank; /* MPI target rank */ -+ char *message; /* Message to send to rank target_rank */ -+ intmax_t tag = 0; /* Message tag to use */ -+ -+ /* Parse "-t TAG" (optional), where TAG is a number or "any". */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (ISOPTION (word, 't')) -+ { -+ list = list->next; -+ if (list == 0) -+ { -+ sh_needarg ("mpi_recv"); -+ return (EX_USAGE); -+ } -+ word = list->word->word; -+ if (!legal_number (word, &tag)) -+ { -+ sh_neednumarg ("-t"); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ } -+ else if (*word == '-') -+ { -+ sh_invalidopt (word); -+ builtin_usage (); -+ return (EX_USAGE); -+ } -+ -+ /* Parse the target rank, which must be a number. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &target_rank)) -+ { -+ builtin_error (_("mpi_send: numeric rank required")); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ -+ /* Parse the message to send. */ -+ YES_ARGS (list); -+ message = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Send the message. */ -+ MPI_TRY (MPI_Send (message, strlen(message)+1, MPI_BYTE, (int)target_rank, (int)tag, MPI_COMM_WORLD)); -+ return EXECUTION_SUCCESS; -+} -+ -+ -+$BUILTIN mpi_recv -+$FUNCTION mpi_recv_builtin -+$SHORT_DOC mpi_recv [-t tag] rank name -+Receive a message from a remote process in the same MPI job. -+ -+Options: -+ -t TAG Receive only messages sent using tag TAG (default: 0). -+ TAG must be either a nonnegative integer or the string -+ "any" to receive messages sent using any tag. -+ -+Arguments: -+ RANK Receive only messages sent from sender RANK. RANK -+ must either be in the range [0, $(mpi_comm_size)-1] or -+ be the string "any" to receive messages from any sender. -+ -+ NAME Array variable in which to receive the message, sender -+ rank, and tag. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_recv builtin. */ -+int -+mpi_recv_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ intmax_t source_rank; /* MPI source rank */ -+ char *endptr; /* Used for parsing strings into numbers */ -+ MPI_Status status; /* Status of an MPI operation */ -+ int count; /* Message length in bytes */ -+ intmax_t tag = 0; /* Message tag to use */ -+ char *varname; /* Name of the variable to bind the results to */ -+ static char *message = NULL; /* Message received from MPI */ -+ static size_t alloced = 0; /* Number of bytes allocated for the above */ -+ int opt; /* Parsed option */ -+ -+ /* Parse any options provided. */ -+ reset_internal_getopt (); -+ while ((opt = internal_getopt (list, "t:")) != -1) -+ { -+ switch (opt) -+ { -+ case 't': -+ if (!strcmp (list_optarg, "any")) -+ tag = MPI_ANY_TAG; -+ else if (!legal_number (list_optarg, &tag)) -+ { -+ builtin_error (_("-t: numeric argument or \"any\" required")); -+ return (EX_USAGE); -+ } -+ break; -+ -+ default: -+ sh_invalidopt (word); -+ builtin_usage (); -+ return (EX_USAGE); -+ } -+ } -+ list = loptend; -+ -+ /* Parse the source rank, which must be a number or "any". */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &source_rank)) -+ { -+ if (!strcmp (word, "any")) -+ source_rank = MPI_ANY_SOURCE; -+ else -+ { -+ builtin_error (_("mpi_recv: numeric rank or \"any\" required")); -+ return (EX_USAGE); -+ } -+ } -+ list = list->next; -+ -+ /* Parse the target variable, which must not be read-only. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Receive a message. Because we don't know long the message will -+ * be, we first probe to get the length. */ -+ MPI_TRY (MPI_Probe ((int)source_rank, (int)tag, MPI_COMM_WORLD, &status)); -+ MPI_TRY (MPI_Get_count (&status, MPI_BYTE, &count)); -+ if (alloced < count) -+ { -+ message = xrealloc (message, count); -+ alloced = count; -+ } -+ MPI_TRY (MPI_Recv (message, count, MPI_BYTE, status.MPI_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, &status)); -+ bind_array_variable (varname, 0, message, 0); -+ bind_array_variable_number (varname, 1, status.MPI_SOURCE, 0); -+ bind_array_variable_number (varname, 2, status.MPI_TAG, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_barrier -+$FUNCTION mpi_barrier_builtin -+$SHORT_DOC mpi_barrier -+Synchronizes all of the processes in the MPI job. -+ -+No process will return from mpi_barrier until all processes have -+called mpi_barrier. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_barrier builtin. */ -+int -+mpi_barrier_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ MPI_TRY (MPI_Barrier (MPI_COMM_WORLD)); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_bcast -+$FUNCTION mpi_bcast_builtin -+$SHORT_DOC mpi_bcast [message] name -+Broadcast a message to all processes in the same MPI job. -+ -+Arguments: -+ MESSAGE String to broadcast from one process to all the others. -+ -+ NAME Scalar variable in which to receive the broadcast message. -+ -+Exactly one process in the MPI job must specify a message to -+broadcast. No process will return from mpi_bcast until all processes -+have called mpi_bcast. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_bcast builtin. */ -+int -+mpi_bcast_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ int root; /* MPI root rank */ -+ char *root_message; /* Message to broadcast */ -+ int msglen; /* Length in bytes of the above (including the NULL byte) */ -+ char *varname; /* Name of the variable to bind the results to */ -+ static int *all_lengths = NULL; /* List of every rank's msglen */ -+ static char *message = NULL; /* Message received from the root */ -+ static int alloced = 0; /* Bytes allocated for the above */ -+ int i; -+ -+ /* Parse the optional message and target variable, which must not be -+ * read-only. */ -+ YES_ARGS (list); -+ if (list->next == NULL) -+ { -+ /* Non-root */ -+ root_message = NULL; -+ msglen = -1; -+ } -+ else -+ { -+ /* Root */ -+ root_message = list->word->word; -+ msglen = (int) strlen(root_message) + 1; -+ list = list->next; -+ } -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Acquire global agreement on the root and the message size. */ -+ if (all_lengths == NULL) -+ all_lengths = xmalloc (mpi_num_ranks*sizeof(int)); -+ MPI_TRY (MPI_Allgather (&msglen, 1, MPI_INT, all_lengths, 1, MPI_INT, MPI_COMM_WORLD)); -+ root = -1; -+ for (i = 0; i < mpi_num_ranks; i++) -+ { -+ if (all_lengths[i] == -1) -+ continue; -+ if (root != -1) -+ { -+ builtin_error (_("mpi_bcast: more than one process specified a message")); -+ return (EXECUTION_FAILURE); -+ } -+ root = i; -+ msglen = all_lengths[i]; -+ } -+ if (root == -1) -+ { -+ builtin_error (_("mpi_bcast: no process specified a message")); -+ return (EXECUTION_FAILURE); -+ } -+ -+ /* Broadcast the message. */ -+ if (mpi_rank == root) -+ { -+ MPI_TRY (MPI_Bcast (root_message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); -+ bind_variable (varname, root_message, 0); -+ } -+ else -+ { -+ if (alloced < msglen) -+ { -+ message = xrealloc (message, msglen); -+ alloced = msglen; -+ } -+ MPI_TRY (MPI_Bcast (message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); -+ bind_variable (varname, message, 0); -+ } -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_scan -+$FUNCTION mpi_scan_builtin -+$SHORT_DOC mpi_scan number name -+Perform an inclusive scan across all processes in the same MPI job. -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the scan operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In an inclusive-scan operation, each process i presents a number, -+a[i]. Once all processes in the MPI job have presented their number, -+the command returns a[0] to rank 0, a[0]+a[1] to rank 1, -+a[0]+a[1]+a[2] to rank 2, and so forth. The -O option enables "+" to -+be replaced with other operations. -+ -+Inclusive scans can be useful for assigning a unique index to each -+process in the MPI job. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_scan builtin. */ -+int -+mpi_scan_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_scan", MPI_Scan); -+} -+ -+$BUILTIN mpi_exscan -+$FUNCTION mpi_exscan_builtin -+$SHORT_DOC mpi_exscan number name -+Perform an exclusive scan across all processes in the same MPI job. -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the scan operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In a exclusive-scan operation, each process i presents a number, a[i]. -+Once all processes in the MPI job have presented their number, the -+command assigns a[0] to NAME on rank 1, a[0]+a[1] to NAME on rank 2, -+a[0]+a[1]+a[2] to NAME on rank 3, and so forth. No assignment is -+performed on rank 0. The -O option enables "+" to be replaced with -+other operations. -+ -+Exclusive scans can be useful for assigning a unique index to each -+process in the MPI job. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_exscan builtin. */ -+int -+mpi_exscan_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_exscan", MPI_Exscan); -+} -+ -+$BUILTIN mpi_allreduce -+$FUNCTION mpi_allreduce_builtin -+$SHORT_DOC mpi_allreduce number name -+Reduce numbers from all processes in an MPI job to a single number. -+ -+Options: -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the allreduce operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In an all-reduce operation, each process i presents a number, a[i]. -+Once all processes in the MPI job have presented their number, the -+command returns a[0]+a[1]+...+a[n-1] to all ranks. The -O option -+enables "+" to be replaced with other operations. -+ -+All-reduces can be useful for reaching global agreement (e.g., of a -+termination condition). -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_allreduce builtin. */ -+int -+mpi_allreduce_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_allreduce", MPI_Allreduce); -+} -diff -Naur bash-4.3/config.h.in mpibash-4.3/config.h.in ---- bash-4.3/config.h.in 2013-06-29 15:35:33.000000000 -0600 -+++ mpibash-4.3/config.h.in 2014-05-13 11:27:37.314100671 -0600 -@@ -1147,6 +1147,12 @@ - /* Define if you have the `__argz_stringify' function. */ - #undef HAVE___ARGZ_STRINGIFY - -+/* Define if you have both the header file and the libcircle library. */ -+#undef HAVE_LIBCIRCLE -+ -+/* Define if you have the `CIRCLE_cb_reduce_op' function. */ -+#undef HAVE_CIRCLE_CB_REDUCE_OP -+ - /* End additions for lib/intl */ - - #include "config-bot.h" -diff -Naur bash-4.3/configure.ac mpibash-4.3/configure.ac ---- bash-4.3/configure.ac 2014-02-11 08:37:53.000000000 -0700 -+++ mpibash-4.3/configure.ac 2014-05-13 11:27:37.302100179 -0600 -@@ -24,7 +24,7 @@ - AC_REVISION([for Bash 4.3, version 4.063])dnl - - define(bashvers, 4.3) --define(relstatus, release) -+define(relstatus, MPI) - - AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) - -@@ -813,6 +813,21 @@ - fi - ]) - -+dnl Ensure that we can find an MPI library. -+AC_CHECK_FUNCS([MPI_Init], [], [ -+ AC_MSG_ERROR([Cannot continue without MPI. Consider specifying CC=mpicc.])]) -+ -+dnl If we have Libcircle, use it, too. -+AC_SEARCH_LIBS([CIRCLE_cb_create], [circle], [AC_CHECK_HEADERS([libcircle.h])]) -+if test "x$ac_cv_header_libcircle_h" = xyes; then -+ libcircle_make_prefix="" -+ AC_DEFINE([HAVE_LIBCIRCLE], [1], [Define if you have the Libcircle header and library.]) -+ AC_CHECK_FUNCS([CIRCLE_cb_reduce_op]) -+else -+ libcircle_make_prefix="#" -+fi -+AC_SUBST([CIRCLE], [$libcircle_make_prefix]) -+ - BASH_CHECK_DECL(strtoimax) - BASH_CHECK_DECL(strtol) - BASH_CHECK_DECL(strtoll) -diff -Naur bash-4.3/Makefile.in mpibash-4.3/Makefile.in ---- bash-4.3/Makefile.in 2014-01-25 14:27:30.000000000 -0700 -+++ mpibash-4.3/Makefile.in 2014-05-13 11:27:37.314100671 -0600 -@@ -104,7 +104,7 @@ - VERSPROG = bashversion$(EXEEXT) - VERSOBJ = bashversion.$(OBJEXT) - --Program = bash$(EXEEXT) -+Program = mpibash$(EXEEXT) - Version = @BASHVERS@ - PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p` - RELSTATUS = @RELSTATUS@ -diff -Naur bash-4.3/shell.c mpibash-4.3/shell.c ---- bash-4.3/shell.c 2014-01-14 06:04:32.000000000 -0700 -+++ mpibash-4.3/shell.c 2014-05-13 11:27:37.314100671 -0600 -@@ -107,6 +107,13 @@ - extern char *primary_prompt, *secondary_prompt; - extern char *this_command_name; - -+extern void initialize_mpi __P((int, char **)); -+extern void finalize_mpi __P((void)); -+#ifdef HAVE_LIBCIRCLE -+extern void initialize_libcircle __P((int, char **)); -+extern void finalize_libcircle __P((void)); -+#endif -+ - /* Non-zero means that this shell has already been run; i.e. you should - call shell_reinitialize () if you need to start afresh. */ - int shell_initialized = 0; -@@ -324,7 +331,7 @@ - static void init_interactive_script __P((void)); - - static void set_shell_name __P((char *)); --static void shell_initialize __P((void)); -+static void shell_initialize __P((int, char **)); - static void shell_reinitialize __P((void)); - - static void show_shell_usage __P((FILE *, int)); -@@ -561,7 +568,7 @@ - - /* From here on in, the shell must be a normal functioning shell. - Variables from the environment are expected to be set, etc. */ -- shell_initialize (); -+ shell_initialize (argc, argv); - - set_default_lang (); - set_default_locale_vars (); -@@ -941,6 +948,12 @@ - end_job_control (); - #endif /* JOB_CONTROL */ - -+#ifdef HAVE_LIBCIRCLE -+ finalize_libcircle (); -+#else -+ finalize_mpi (); -+#endif -+ - /* Always return the exit status of the last command to our parent. */ - sh_exit (s); - } -@@ -1691,7 +1704,9 @@ - /* Do whatever is necessary to initialize the shell. - Put new initializations in here. */ - static void --shell_initialize () -+shell_initialize (argc, argv) -+ int argc; -+ char **argv; - { - char hostname[256]; - -@@ -1760,6 +1775,17 @@ - initialize_shell_options (privileged_mode||running_setuid); - initialize_bashopts (privileged_mode||running_setuid); - #endif -+ -+ /* Initialize Libcircle and MPI. */ -+#ifdef HAVE_LIBCIRCLE -+ initialize_libcircle (argc, argv); -+ initialize_mpi (argc, argv); -+ bind_variable ("libcircle", "yes", 0); -+#else -+ initialize_mpi (argc, argv); -+ bind_variable ("libcircle", "no", 0); -+#endif -+ bind_variable ("mpibash", "yes", 0); - } - - /* Function called by main () when it appears that the shell has already diff --git a/var/spack/repos/builtin/packages/mpibash/package.py b/var/spack/repos/builtin/packages/mpibash/package.py deleted file mode 100644 index 174109f6d9..0000000000 --- a/var/spack/repos/builtin/packages/mpibash/package.py +++ /dev/null @@ -1,28 +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 Mpibash(AutotoolsPackage): - """Parallel scripting right from the Bourne-Again Shell (Bash)""" - - homepage = "https://github.com/lanl/MPI-Bash" - url = "https://github.com/lanl/MPI-Bash/releases/download/v1.2/mpibash-1.2.tar.gz" - - version('1.2', sha256='5c2faaa74464111205dbae4799bd89c2425810ec3708d004237b42d620c8be57') - - depends_on('bash@4.4:') - # uses MPI_Exscan which is in MPI-1.2 and later - depends_on('mpi@1.2:') - - depends_on('libcircle') - - def configure_args(self): - args = [ - "--with-bashdir={0}".format(self.spec['bash'].prefix.include.bash), - "CC={0}".format(self.spec['mpi'].mpicc) - ] - return args diff --git a/var/spack/repos/builtin/packages/mxnet/package.py b/var/spack/repos/builtin/packages/mxnet/package.py index 43796ab7d8..d261f60247 100644 --- a/var/spack/repos/builtin/packages/mxnet/package.py +++ b/var/spack/repos/builtin/packages/mxnet/package.py @@ -11,10 +11,9 @@ class Mxnet(MakefilePackage): designed for both efficiency and flexibility.""" homepage = "http://mxnet.io" - url = "https://github.com/apache/incubator-mxnet/archive/0.10.0.post2.tar.gz" + url = "https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz" - version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2', - url='https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz') + version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2') variant('cuda', default=False, description='Enable CUDA support') variant('opencv', default=True, description='Enable OpenCV support') diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py index 444629efd7..8e897c37d6 100644 --- a/var/spack/repos/builtin/packages/nauty/package.py +++ b/var/spack/repos/builtin/packages/nauty/package.py @@ -48,8 +48,8 @@ class Nauty(AutotoolsPackage): } # Iterate over patches for condition, urls in urls_for_patches.items(): - for url, sha256 in urls: - patch(url, when=condition, level=1, sha256=sha256) + for path, sha256 in urls: + patch(path, when=condition, level=1, sha256=sha256) depends_on('m4', type='build', when='@2.6r7') depends_on('autoconf', type='build', when='@2.6r7') diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py index 6bf5fdb1b4..575b72a6ab 100644 --- a/var/spack/repos/builtin/packages/nccmp/package.py +++ b/var/spack/repos/builtin/packages/nccmp/package.py @@ -13,7 +13,7 @@ class Nccmp(Package): version('1.8.2.0', sha256='7f5dad4e8670568a71f79d2bcebb08d95b875506d3d5faefafe1a8b3afa14f18') - depends_on('netcdf') + depends_on('netcdf-c') def install(self, spec, prefix): # Configure says: F90 and F90FLAGS are replaced by FC and diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py index c3940136c4..60e530bae9 100644 --- a/var/spack/repos/builtin/packages/ncl/package.py +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -42,7 +42,7 @@ class Ncl(Package): # Non-optional dependencies according to the manual: depends_on('jpeg') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('cairo+X+pdf') # Extra dependencies that may be missing from build system: @@ -65,7 +65,7 @@ class Ncl(Package): depends_on('bzip2') depends_on('freetype') - # In Spack, we do not have an option to compile netcdf without netcdf-4 + # In Spack, we do not have an option to compile netcdf-c without netcdf-4 # support, so we will tell the ncl configuration script that we want # support for netcdf-4, but the script assumes that hdf5 is compiled with # szip support. We introduce this restriction with the following dependency @@ -76,13 +76,13 @@ class Ncl(Package): # ESMF is only required at runtime (for ESMF_regridding.ncl) depends_on('esmf', type='run') - # In Spack, we also do not have an option to compile netcdf without DAP + # In Spack, we also do not have an option to compile netcdf-c without DAP # support, so we will tell the ncl configuration script that we have it. # Some of the optional dependencies according to the manual: depends_on('hdf', when='+hdf4') depends_on('gdal+proj@:2.4', when='+gdal') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') # We need src files of triangle to appear in ncl's src tree if we want # triangle's features. @@ -123,8 +123,8 @@ class Ncl(Package): self.prepare_src_tree() make('Everything', parallel=False) - def setup_environment(self, spack_env, run_env): - run_env.set('NCARG_ROOT', self.spec.prefix) + def setup_run_environment(self, env): + env.set('NCARG_ROOT', self.spec.prefix) def prepare_site_config(self): fc_flags = [] diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index 951d6f5974..2fb78fcda2 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -30,10 +30,10 @@ class Nco(AutotoolsPackage): # See "Compilation Requirements" at: # http://nco.sourceforge.net/#bld - depends_on('netcdf') + depends_on('netcdf-c') depends_on('antlr@2.7.7+cxx') # required for ncap2 depends_on('gsl') # desirable for ncap2 - depends_on('udunits2') # allows dimensional unit transformations + depends_on('udunits') # allows dimensional unit transformations depends_on('flex', type='build') depends_on('bison', type='build') @@ -45,9 +45,9 @@ class Nco(AutotoolsPackage): spec = self.spec return ['--{0}-doc'.format('enable' if '+doc' in spec else 'disable')] - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('NETCDF_INC', spec['netcdf'].prefix.include) - spack_env.set('NETCDF_LIB', spec['netcdf'].prefix.lib) - spack_env.set('ANTLR_ROOT', spec['antlr'].prefix) - spack_env.set('UDUNITS2_PATH', spec['udunits2'].prefix) + env.set('NETCDF_INC', spec['netcdf-c'].prefix.include) + env.set('NETCDF_LIB', spec['netcdf-c'].prefix.lib) + env.set('ANTLR_ROOT', spec['antlr'].prefix) + env.set('UDUNITS2_PATH', spec['udunits'].prefix) diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index 3f1d6f4d8c..96666a29be 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -13,8 +13,8 @@ class Ncview(AutotoolsPackage): version('2.1.7', sha256='a14c2dddac0fc78dad9e4e7e35e2119562589738f4ded55ff6e0eca04d682c82') - depends_on('netcdf') - depends_on('udunits2') + depends_on('netcdf-c') + depends_on('udunits') depends_on('libpng') depends_on('libxaw') diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py new file mode 100644 index 0000000000..e548848be0 --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-c/package.py @@ -0,0 +1,273 @@ +# 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 * + +import numbers + + +def is_integral(x): + """Any integer value""" + try: + return isinstance(int(x), numbers.Integral) and not isinstance(x, bool) + except ValueError: + return False + + +class NetcdfC(AutotoolsPackage): + """NetCDF (network Common Data Form) is a set of software libraries and + machine-independent data formats that support the creation, access, and + sharing of array-oriented scientific data. This is the C distribution.""" + + homepage = "http://www.unidata.ucar.edu/software/netcdf" + git = "https://github.com/Unidata/netcdf-c.git" + url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-c-4.7.2.tar.gz" + + def url_for_version(self, version): + if version >= Version('4.6.2'): + url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-c-{0}.tar.gz" + else: + url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-{0}.tar.gz" + + return url.format(version.dotted) + + version('master', branch='master') + version('4.7.2', sha256='b751cc1f314ac8357df2e0a1bacf35a624df26fe90981d3ad3fa85a5bbd8989a') + version('4.7.1', sha256='5c537c585773e575a16b28c3973b9608a98fdc4cf7c42893aa5223024e0001fc') + version('4.7.0', sha256='a512d2b4828c6177dd4b96791c4163e4e06e6bfc7123bebfbfe01762d777d1cb') + version('4.6.3', sha256='335fdf16d7531f430ad75e732ed1a9a3fc83ad3ef91fb33a70119a555dd5415c') + version('4.6.2', sha256='c37525981167b3cd82d32e1afa3022afb94e59287db5f116c57f5ed4d9c6a638') + version('4.6.1', sha256='89c7957458740b763ae828c345240b8a1d29c2c1fed0f065f99b73181b0b2642') + version('4.6.0', sha256='4bf05818c1d858224942ae39bfd9c4f1330abec57f04f58b9c3c152065ab3825') + version('4.5.0', sha256='cbe70049cf1643c4ad7453f86510811436c9580cb7a1684ada2f32b95b00ca79') + # Version 4.4.1.1 is having problems in tests + # https://github.com/Unidata/netcdf-c/issues/343 + version('4.4.1.1', sha256='4d44c6f4d02a8faf10ea619bfe1ba8224cd993024f4da12988c7465f663c8cae') + # Version 4.4.1 can crash on you (in real life and in tests). See: + # https://github.com/Unidata/netcdf-c/issues/282 + version('4.4.1', sha256='8915cc69817f7af6165fbe69a8d1dfe21d5929d7cca9d10b10f568669ec6b342') + version('4.4.0', sha256='0d40cb7845abd03c363abcd5f57f16e3c0685a0faf8badb2c59867452f6bcf78') + version('4.3.3.1', sha256='bdde3d8b0e48eed2948ead65f82c5cfb7590313bc32c4cf6c6546e4cea47ba19') + version('4.3.3', sha256='83223ed74423c685a10f6c3cfa15c2d6bf7dc84b46af1e95b9fa862016aaa27e') + + # configure fails if curl is not installed. + # See https://github.com/Unidata/netcdf-c/issues/1390 + patch('https://github.com/Unidata/netcdf-c/commit/e5315da1e748dc541d50796fb05233da65e86b6b.patch', sha256='10a1c3f7fa05e2c82457482e272bbe04d66d0047b237ad0a73e87d63d848b16c', when='@4.7.0') + + variant('mpi', default=True, + description='Enable parallel I/O for netcdf-4') + variant('parallel-netcdf', default=False, + description='Enable parallel I/O for classic files') + variant('hdf4', default=False, description='Enable HDF4 support') + variant('pic', default=True, + description='Produce position-independent code (for shared libs)') + variant('shared', default=True, description='Enable shared library') + variant('dap', default=False, description='Enable DAP support') + + # It's unclear if cdmremote can be enabled if '--enable-netcdf-4' is passed + # to the configure script. Since netcdf-4 support is mandatory we comment + # this variant out. + # variant('cdmremote', default=False, + # description='Enable CDM Remote support') + + # These variants control the number of dimensions (i.e. coordinates and + # attributes) and variables (e.g. time, entity ID, number of coordinates) + # that can be used in any particular NetCDF file. + variant( + 'maxdims', + default=1024, + description='Defines the maximum dimensions of NetCDF files.', + values=is_integral + ) + variant( + 'maxvars', + default=8192, + description='Defines the maximum variables of NetCDF files.', + values=is_integral + ) + + # The patch for 4.7.0 touches configure.ac. See force_autoreconf below. + depends_on('autoconf', type='build', when='@4.7.0') + depends_on('automake', type='build', when='@4.7.0') + depends_on('libtool', type='build', when='@4.7.0') + + depends_on("m4", type='build') + depends_on("hdf", when='+hdf4') + + # curl 7.18.0 or later is required: + # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html + depends_on("curl@7.18.0:", when='+dap') + # depends_on("curl@7.18.0:", when='+cdmremote') + + depends_on('parallel-netcdf', when='+parallel-netcdf') + + # We need to build with MPI wrappers if any of the two + # parallel I/O features is enabled: + # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html#build_parallel + depends_on('mpi', when='+mpi') + depends_on('mpi', when='+parallel-netcdf') + + # zlib 1.2.5 or later is required for netCDF-4 compression: + # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html + depends_on("zlib@1.2.5:") + + # High-level API of HDF5 1.8.9 or later is required for netCDF-4 support: + # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html + depends_on('hdf5@1.8.9:+hl~mpi', when='~mpi') + depends_on('hdf5@1.8.9:+hl+mpi', when='+mpi') + + # Starting version 4.4.0, it became possible to disable parallel I/O even + # if HDF5 supports it. For previous versions of the library we need + # HDF5 without mpi support to disable parallel I/O. + # The following doesn't work if hdf5+mpi by default and netcdf-c~mpi is + # specified in packages.yaml + # depends_on('hdf5~mpi', when='@:4.3~mpi') + # Thus, we have to introduce a conflict + conflicts('~mpi', when='@:4.3^hdf5+mpi', + msg='netcdf-c@:4.3~mpi requires hdf5~mpi') + + # We need HDF5 with mpi support to enable parallel I/O. + # The following doesn't work if hdf5~mpi by default and netcdf-c+mpi is + # specified in packages.yaml + # depends_on('hdf5+mpi', when='+mpi') + # Thus, we have to introduce a conflict + conflicts('+mpi', when='^hdf5~mpi', + msg='netcdf-c+mpi requires hdf5+mpi') + + # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later + # https://github.com/Unidata/netcdf-c/issues/250 + depends_on('hdf5@:1.8.999', when='@:4.4.0') + + # The feature was introduced in version 4.1.2 + # and was removed in version 4.4.0 + # conflicts('+cdmremote', when='@:4.1.1,4.4:') + + # The features were introduced in version 4.1.0 + conflicts('+parallel-netcdf', when='@:4.0') + conflicts('+hdf4', when='@:4.0') + + @property + def force_autoreconf(self): + # The patch for 4.7.0 touches configure.ac. + return self.spec.satisfies('@4.7.0') + + def patch(self): + try: + max_dims = int(self.spec.variants['maxdims'].value) + max_vars = int(self.spec.variants['maxvars'].value) + except (ValueError, TypeError): + raise TypeError('NetCDF variant values max[dims|vars] must be ' + 'integer values.') + + ff = FileFilter(join_path('include', 'netcdf.h')) + ff.filter(r'^(#define\s+NC_MAX_DIMS\s+)\d+(.*)$', + r'\1{0}\2'.format(max_dims)) + ff.filter(r'^(#define\s+NC_MAX_VARS\s+)\d+(.*)$', + r'\1{0}\2'.format(max_vars)) + + def configure_args(self): + cflags = [] + cppflags = [] + ldflags = [] + libs = [] + + config_args = ['--enable-v2', + '--enable-utilities', + '--enable-static', + '--enable-largefile', + '--enable-netcdf-4'] + + # The flag was introduced in version 4.1.0 + if self.spec.satisfies('@4.1:'): + config_args.append('--enable-fsync') + + # The flag was introduced in version 4.3.1 + if self.spec.satisfies('@4.3.1:'): + config_args.append('--enable-dynamic-loading') + + config_args += self.enable_or_disable('shared') + + if '~shared' in self.spec or '+pic' in self.spec: + # We don't have shared libraries but we still want it to be + # possible to use this library in shared builds + cflags.append(self.compiler.pic_flag) + + config_args += self.enable_or_disable('dap') + # config_args += self.enable_or_disable('cdmremote') + + # if '+dap' in self.spec or '+cdmremote' in self.spec: + if '+dap' in self.spec: + # Make sure Netcdf links against Spack's curl, otherwise it may + # pick up system's curl, which can give link errors, e.g.: + # undefined reference to `SSL_CTX_use_certificate_chain_file + curl = self.spec['curl'] + curl_libs = curl.libs + libs.append(curl_libs.link_flags) + ldflags.append(curl_libs.search_flags) + # TODO: figure out how to get correct flags via headers.cpp_flags + cppflags.append('-I' + curl.prefix.include) + + if self.spec.satisfies('@4.4:'): + if '+mpi' in self.spec: + config_args.append('--enable-parallel4') + else: + config_args.append('--disable-parallel4') + + # Starting version 4.1.3, --with-hdf5= and other such configure options + # are removed. Variables CPPFLAGS, LDFLAGS, and LD_LIBRARY_PATH must be + # used instead. + hdf5_hl = self.spec['hdf5:hl'] + cppflags.append(hdf5_hl.headers.cpp_flags) + ldflags.append(hdf5_hl.libs.search_flags) + + if '+parallel-netcdf' in self.spec: + config_args.append('--enable-pnetcdf') + pnetcdf = self.spec['parallel-netcdf'] + cppflags.append(pnetcdf.headers.cpp_flags) + # TODO: change to pnetcdf.libs.search_flags once 'parallel-netcdf' + # package gets custom implementation of 'libs' + ldflags.append('-L' + pnetcdf.prefix.lib) + else: + config_args.append('--disable-pnetcdf') + + if '+mpi' in self.spec or '+parallel-netcdf' in self.spec: + config_args.append('CC=%s' % self.spec['mpi'].mpicc) + + config_args += self.enable_or_disable('hdf4') + if '+hdf4' in self.spec: + hdf4 = self.spec['hdf'] + cppflags.append(hdf4.headers.cpp_flags) + # TODO: change to hdf4.libs.search_flags once 'hdf' + # package gets custom implementation of 'libs' property. + ldflags.append('-L' + hdf4.prefix.lib) + # TODO: change to self.spec['jpeg'].libs.link_flags once the + # implementations of 'jpeg' virtual package get 'jpeg_libs' + # property. + libs.append('-ljpeg') + if '+szip' in hdf4: + # This should also come from hdf4.libs + libs.append('-lsz') + + # Fortran support + # In version 4.2+, NetCDF-C and NetCDF-Fortran have split. + # Use the netcdf-fortran package to install Fortran support. + + config_args.append('CFLAGS=' + ' '.join(cflags)) + config_args.append('CPPFLAGS=' + ' '.join(cppflags)) + config_args.append('LDFLAGS=' + ' '.join(ldflags)) + config_args.append('LIBS=' + ' '.join(libs)) + + return config_args + + def check(self): + # h5_test fails when run in parallel + make('check', parallel=False) + + @property + def libs(self): + shared = '+shared' in self.spec + return find_libraries( + 'libnetcdf', root=self.prefix, shared=shared, recursive=True + ) diff --git a/var/spack/repos/builtin/packages/netcdf-cxx/package.py b/var/spack/repos/builtin/packages/netcdf-cxx/package.py index 94bb28412f..3c550e5669 100644 --- a/var/spack/repos/builtin/packages/netcdf-cxx/package.py +++ b/var/spack/repos/builtin/packages/netcdf-cxx/package.py @@ -17,7 +17,7 @@ class NetcdfCxx(AutotoolsPackage): version('4.2', sha256='95ed6ab49a0ee001255eac4e44aacb5ca4ea96ba850c08337a3e4c9a0872ccd1') - depends_on('netcdf') + depends_on('netcdf-c') variant( 'netcdf4', default=True, description='Compile with netCDF4 support') @@ -38,7 +38,7 @@ class NetcdfCxx(AutotoolsPackage): # Add these to LDFLAGS explicitly, so the linker doesn't accidentally # use system versions ldflags = [ - self.spec['netcdf'].libs.search_flags, + self.spec['netcdf-c'].libs.search_flags, self.spec['hdf5'].libs.search_flags, ] args.append('LDFLAGS=' + ' '.join(ldflags)) diff --git a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py index 938d74d6aa..b80b38be9e 100644 --- a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py +++ b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py @@ -7,7 +7,9 @@ from spack import * class NetcdfCxx4(AutotoolsPackage): - """C++ interface for NetCDF4""" + """NetCDF (network Common Data Form) is a set of software libraries and + machine-independent data formats that support the creation, access, and + sharing of array-oriented scientific data. This is the C++ distribution.""" homepage = "https://www.unidata.ucar.edu/software/netcdf" url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx4-4.3.1.tar.gz" @@ -19,7 +21,7 @@ class NetcdfCxx4(AutotoolsPackage): # force its usage with this variant. variant('pic', default=True, description='Produce position-independent code (for shared libs)') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('automake', type='build') depends_on('autoconf', type='build') @@ -32,7 +34,7 @@ class NetcdfCxx4(AutotoolsPackage): if name == 'cflags' and '+pic' in self.spec: flags.append(self.compiler.pic_flag) elif name == 'cppflags': - flags.append('-I' + self.spec['netcdf'].prefix.include) + flags.append('-I' + self.spec['netcdf-c'].prefix.include) return (None, None, flags) diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py index d698ff1e8b..cfc4bc1018 100644 --- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py +++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py @@ -7,7 +7,10 @@ from spack import * class NetcdfFortran(AutotoolsPackage): - """Fortran interface for NetCDF4""" + """NetCDF (network Common Data Form) is a set of software libraries and + machine-independent data formats that support the creation, access, and + sharing of array-oriented scientific data. This is the Fortran + 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" @@ -20,7 +23,7 @@ class NetcdfFortran(AutotoolsPackage): variant('pic', default=True, description='Produce position-independent code (for shared libs)') - depends_on('netcdf') + depends_on('netcdf-c') # The default libtool.m4 is too old to handle NAG compiler properly: # https://github.com/Unidata/netcdf-fortran/issues/94 @@ -30,14 +33,14 @@ class NetcdfFortran(AutotoolsPackage): if name in ['cflags', 'fflags'] and '+pic' in self.spec: flags.append(self.compiler.pic_flag) elif name == 'cppflags': - flags.append(self.spec['netcdf'].headers.cpp_flags) + flags.append(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'].libs.search_flags) + flags.append(self.spec['netcdf-c'].libs.search_flags) return None, None, flags diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py deleted file mode 100644 index 46a5695c58..0000000000 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ /dev/null @@ -1,266 +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 * - -import numbers - - -def is_integral(x): - """Any integer value""" - try: - return isinstance(int(x), numbers.Integral) and not isinstance(x, bool) - except ValueError: - return False - - -class Netcdf(AutotoolsPackage): - """NetCDF is a set of software libraries and self-describing, - machine-independent data formats that support the creation, access, - and sharing of array-oriented scientific data.""" - - homepage = "http://www.unidata.ucar.edu/software/netcdf" - git = "https://github.com/Unidata/netcdf-c" - url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-c-4.7.2.tar.gz" - - def url_for_version(self, version): - if version >= Version('4.6.2'): - url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-c-{0}.tar.gz" - else: - url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-{0}.tar.gz" - - return url.format(version.dotted) - - version('master', branch='master') - version('4.7.2', sha256='b751cc1f314ac8357df2e0a1bacf35a624df26fe90981d3ad3fa85a5bbd8989a') - version('4.7.1', sha256='5c537c585773e575a16b28c3973b9608a98fdc4cf7c42893aa5223024e0001fc') - version('4.7.0', sha256='a512d2b4828c6177dd4b96791c4163e4e06e6bfc7123bebfbfe01762d777d1cb') - version('4.6.3', sha256='335fdf16d7531f430ad75e732ed1a9a3fc83ad3ef91fb33a70119a555dd5415c') - version('4.6.2', sha256='c37525981167b3cd82d32e1afa3022afb94e59287db5f116c57f5ed4d9c6a638') - version('4.6.1', sha256='89c7957458740b763ae828c345240b8a1d29c2c1fed0f065f99b73181b0b2642') - version('4.6.0', sha256='4bf05818c1d858224942ae39bfd9c4f1330abec57f04f58b9c3c152065ab3825') - version('4.5.0', sha256='cbe70049cf1643c4ad7453f86510811436c9580cb7a1684ada2f32b95b00ca79') - # Version 4.4.1.1 is having problems in tests - # https://github.com/Unidata/netcdf-c/issues/343 - version('4.4.1.1', sha256='4d44c6f4d02a8faf10ea619bfe1ba8224cd993024f4da12988c7465f663c8cae') - # netcdf@4.4.1 can crash on you (in real life and in tests). See: - # https://github.com/Unidata/netcdf-c/issues/282 - version('4.4.1', sha256='8915cc69817f7af6165fbe69a8d1dfe21d5929d7cca9d10b10f568669ec6b342') - version('4.4.0', sha256='0d40cb7845abd03c363abcd5f57f16e3c0685a0faf8badb2c59867452f6bcf78') - version('4.3.3.1', sha256='bdde3d8b0e48eed2948ead65f82c5cfb7590313bc32c4cf6c6546e4cea47ba19') - version('4.3.3', sha256='83223ed74423c685a10f6c3cfa15c2d6bf7dc84b46af1e95b9fa862016aaa27e') - - # configure fails if curl is not installed. - # See https://github.com/Unidata/netcdf-c/issues/1390 - patch('https://github.com/Unidata/netcdf-c/commit/e5315da1e748dc541d50796fb05233da65e86b6b.patch', sha256='10a1c3f7fa05e2c82457482e272bbe04d66d0047b237ad0a73e87d63d848b16c', when='@4.7.0') - - variant('mpi', default=True, - description='Enable parallel I/O for netcdf-4') - variant('parallel-netcdf', default=False, - description='Enable parallel I/O for classic files') - variant('hdf4', default=False, description='Enable HDF4 support') - variant('pic', default=True, - description='Produce position-independent code (for shared libs)') - variant('shared', default=True, description='Enable shared library') - variant('dap', default=False, description='Enable DAP support') - - # It's unclear if cdmremote can be enabled if '--enable-netcdf-4' is passed - # to the configure script. Since netcdf-4 support is mandatory we comment - # this variant out. - # variant('cdmremote', default=False, - # description='Enable CDM Remote support') - - # These variants control the number of dimensions (i.e. coordinates and - # attributes) and variables (e.g. time, entity ID, number of coordinates) - # that can be used in any particular NetCDF file. - variant( - 'maxdims', - default=1024, - description='Defines the maximum dimensions of NetCDF files.', - values=is_integral - ) - variant( - 'maxvars', - default=8192, - description='Defines the maximum variables of NetCDF files.', - values=is_integral - ) - - # The patch for 4.7.0 touches configure.ac. See force_autoreconf below. - depends_on('autoconf', type='build', when='@4.7.0') - depends_on('automake', type='build', when='@4.7.0') - depends_on('libtool', type='build', when='@4.7.0') - - depends_on("m4", type='build') - depends_on("hdf", when='+hdf4') - - # curl 7.18.0 or later is required: - # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html - depends_on("curl@7.18.0:", when='+dap') - # depends_on("curl@7.18.0:", when='+cdmremote') - - depends_on('parallel-netcdf', when='+parallel-netcdf') - - # We need to build with MPI wrappers if any of the two - # parallel I/O features is enabled: - # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html#build_parallel - depends_on('mpi', when='+mpi') - depends_on('mpi', when='+parallel-netcdf') - - # zlib 1.2.5 or later is required for netCDF-4 compression: - # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html - depends_on("zlib@1.2.5:") - - # High-level API of HDF5 1.8.9 or later is required for netCDF-4 support: - # http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html - depends_on('hdf5@1.8.9:+hl~mpi', when='~mpi') - depends_on('hdf5@1.8.9:+hl+mpi', when='+mpi') - - # Starting version 4.4.0, it became possible to disable parallel I/O even - # if HDF5 supports it. For previous versions of the library we need - # HDF5 without mpi support to disable parallel I/O. - # The following doesn't work if hdf5+mpi by default and netcdf~mpi is - # specified in packages.yaml - # depends_on('hdf5~mpi', when='@:4.3~mpi') - # Thus, we have to introduce a conflict - conflicts('~mpi', when='@:4.3^hdf5+mpi', - msg='netcdf@:4.3~mpi requires hdf5~mpi') - - # We need HDF5 with mpi support to enable parallel I/O. - # The following doesn't work if hdf5~mpi by default and netcdf+mpi is - # specified in packages.yaml - # depends_on('hdf5+mpi', when='+mpi') - # Thus, we have to introduce a conflict - conflicts('+mpi', when='^hdf5~mpi', - msg='netcdf+mpi requires hdf5+mpi') - - # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later - # https://github.com/Unidata/netcdf-c/issues/250 - depends_on('hdf5@:1.8.999', when='@:4.4.0') - - # The feature was introduced in version 4.1.2 - # and was removed in version 4.4.0 - # conflicts('+cdmremote', when='@:4.1.1,4.4:') - - # The features were introduced in version 4.1.0 - conflicts('+parallel-netcdf', when='@:4.0') - conflicts('+hdf4', when='@:4.0') - - @property - def force_autoreconf(self): - # The patch for 4.7.0 touches configure.ac. - return self.spec.satisfies('@4.7.0') - - def patch(self): - try: - max_dims = int(self.spec.variants['maxdims'].value) - max_vars = int(self.spec.variants['maxvars'].value) - except (ValueError, TypeError): - raise TypeError('NetCDF variant values max[dims|vars] must be ' - 'integer values.') - - ff = FileFilter(join_path('include', 'netcdf.h')) - ff.filter(r'^(#define\s+NC_MAX_DIMS\s+)\d+(.*)$', - r'\1{0}\2'.format(max_dims)) - ff.filter(r'^(#define\s+NC_MAX_VARS\s+)\d+(.*)$', - r'\1{0}\2'.format(max_vars)) - - def configure_args(self): - cflags = [] - cppflags = [] - ldflags = [] - libs = [] - - config_args = ['--enable-v2', - '--enable-utilities', - '--enable-static', - '--enable-largefile', - '--enable-netcdf-4'] - - # The flag was introduced in version 4.1.0 - if self.spec.satisfies('@4.1:'): - config_args.append('--enable-fsync') - - # The flag was introduced in version 4.3.1 - if self.spec.satisfies('@4.3.1:'): - config_args.append('--enable-dynamic-loading') - - config_args += self.enable_or_disable('shared') - - if '~shared' in self.spec or '+pic' in self.spec: - # We don't have shared libraries but we still want it to be - # possible to use this library in shared builds - cflags.append(self.compiler.pic_flag) - - config_args += self.enable_or_disable('dap') - # config_args += self.enable_or_disable('cdmremote') - - # if '+dap' in self.spec or '+cdmremote' in self.spec: - if '+dap' in self.spec: - # Make sure Netcdf links against Spack's curl, otherwise it may - # pick up system's curl, which can give link errors, e.g.: - # undefined reference to `SSL_CTX_use_certificate_chain_file - curl = self.spec['curl'] - curl_libs = curl.libs - libs.append(curl_libs.link_flags) - ldflags.append(curl_libs.search_flags) - # TODO: figure out how to get correct flags via headers.cpp_flags - cppflags.append('-I' + curl.prefix.include) - - if self.spec.satisfies('@4.4:'): - if '+mpi' in self.spec: - config_args.append('--enable-parallel4') - else: - config_args.append('--disable-parallel4') - - # Starting version 4.1.3, --with-hdf5= and other such configure options - # are removed. Variables CPPFLAGS, LDFLAGS, and LD_LIBRARY_PATH must be - # used instead. - hdf5_hl = self.spec['hdf5:hl'] - cppflags.append(hdf5_hl.headers.cpp_flags) - ldflags.append(hdf5_hl.libs.search_flags) - - if '+parallel-netcdf' in self.spec: - config_args.append('--enable-pnetcdf') - pnetcdf = self.spec['parallel-netcdf'] - cppflags.append(pnetcdf.headers.cpp_flags) - # TODO: change to pnetcdf.libs.search_flags once 'parallel-netcdf' - # package gets custom implementation of 'libs' - ldflags.append('-L' + pnetcdf.prefix.lib) - else: - config_args.append('--disable-pnetcdf') - - if '+mpi' in self.spec or '+parallel-netcdf' in self.spec: - config_args.append('CC=%s' % self.spec['mpi'].mpicc) - - config_args += self.enable_or_disable('hdf4') - if '+hdf4' in self.spec: - hdf4 = self.spec['hdf'] - cppflags.append(hdf4.headers.cpp_flags) - # TODO: change to hdf4.libs.search_flags once 'hdf' - # package gets custom implementation of 'libs' property. - ldflags.append('-L' + hdf4.prefix.lib) - # TODO: change to self.spec['jpeg'].libs.link_flags once the - # implementations of 'jpeg' virtual package get 'jpeg_libs' - # property. - libs.append('-ljpeg') - if '+szip' in hdf4: - # This should also come from hdf4.libs - libs.append('-lsz') - - # Fortran support - # In version 4.2+, NetCDF-C and NetCDF-Fortran have split. - # Use the netcdf-fortran package to install Fortran support. - - config_args.append('CFLAGS=' + ' '.join(cflags)) - config_args.append('CPPFLAGS=' + ' '.join(cppflags)) - config_args.append('LDFLAGS=' + ' '.join(ldflags)) - config_args.append('LIBS=' + ' '.join(libs)) - - return config_args - - def check(self): - # h5_test fails when run in parallel - make('check', parallel=False) diff --git a/var/spack/repos/builtin/packages/nrm/package.py b/var/spack/repos/builtin/packages/nrm/package.py index b15bc11323..fa0b88201e 100644 --- a/var/spack/repos/builtin/packages/nrm/package.py +++ b/var/spack/repos/builtin/packages/nrm/package.py @@ -16,7 +16,7 @@ class Nrm(PythonPackage): depends_on('py-setuptools', type=('build')) depends_on('py-six', type=('build', 'run')) - depends_on('py-zmq@17.1.2', type=('build', 'run')) + depends_on('py-pyzmq@17.1.2', type=('build', 'run')) depends_on('py-pyyaml', type=('build', 'run')) depends_on('py-tornado@5.1.1', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/ntpoly/package.py b/var/spack/repos/builtin/packages/ntpoly/package.py index d390e19dba..75ba5a6890 100644 --- a/var/spack/repos/builtin/packages/ntpoly/package.py +++ b/var/spack/repos/builtin/packages/ntpoly/package.py @@ -16,7 +16,7 @@ class Ntpoly(CMakePackage): """ homepage = "https://william-dawson.github.io/NTPoly/" - url = "https://github.com/william-dawson/NTPoly/archive/ntpoly-v2.3.1-alpha.tar.gz" + url = "https://github.com/william-dawson/NTPoly/archive/ntpoly-v2.3.1.tar.gz" version('2.3.1', sha256='af8c7690321607fbdee9671b9cb3acbed945148014e0541435858cf82bfd887e') diff --git a/var/spack/repos/builtin/packages/nut/package.py b/var/spack/repos/builtin/packages/nut/package.py index f159838c63..d5649fdaec 100644 --- a/var/spack/repos/builtin/packages/nut/package.py +++ b/var/spack/repos/builtin/packages/nut/package.py @@ -13,7 +13,7 @@ class Nut(CMakePackage): and performance issues.""" homepage = "https://github.com/lanl/NuT" - url = "https://github.com/lanl/NuT/archive/0.1.0.tar.gz" + url = "https://github.com/lanl/NuT/archive/0.1.1.tar.gz" git = "https://github.com/lanl/NuT.git" tags = ['proxy-app'] @@ -29,11 +29,11 @@ class Nut(CMakePackage): conflicts('%xl', when='@serial') conflicts('%nag', when='@serial') - def setup_environment(self, spack_env, run_env): - spack_env.set('RANDOM123_DIR', self.spec['random123'].prefix) - build_targets = ['VERBOSE=on'] + def setup_build_environment(self, env): + env.set('RANDOM123_DIR', self.spec['random123'].prefix) + def install(self, spec, prefix): install('README.md', prefix) mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py index cdfa076c73..f153ff839d 100644 --- a/var/spack/repos/builtin/packages/octave/package.py +++ b/var/spack/repos/builtin/packages/octave/package.py @@ -75,7 +75,7 @@ class Octave(AutotoolsPackage): depends_on('glpk', when='+glpk') depends_on('gl2ps', when='+gl2ps') depends_on('gnuplot', when='+gnuplot') - depends_on('image-magick', when='+magick') + depends_on('imagemagick', when='+magick') depends_on('hdf5', when='+hdf5') depends_on('java', when='+jdk') # TODO: requires Java 6 ? depends_on('llvm', when='+llvm') @@ -156,7 +156,7 @@ class Octave(AutotoolsPackage): if '+magick' in spec: config_args.append("--with-magick=%s" - % spec['image-magick'].prefix.lib) + % spec['imagemagick'].prefix.lib) else: config_args.append("--without-magick") diff --git a/var/spack/repos/builtin/packages/omega-h/package.py b/var/spack/repos/builtin/packages/omega-h/package.py index e459406164..0c9c323650 100644 --- a/var/spack/repos/builtin/packages/omega-h/package.py +++ b/var/spack/repos/builtin/packages/omega-h/package.py @@ -12,7 +12,7 @@ class OmegaH(CMakePackage): """ homepage = "https://github.com/SNLComputation/omega_h" - url = "https://github.com/SNLComputation/omega_h/archive/v9.13.4.tar.gz" + url = "https://github.com/SNLComputation/omega_h/archive/v9.29.0.tar.gz" git = "https://github.com/SNLComputation/omega_h.git" maintainers = ['ibaned'] diff --git a/var/spack/repos/builtin/packages/openldap/package.py b/var/spack/repos/builtin/packages/openldap/package.py index 3c8a9e453e..2bd92a41f4 100644 --- a/var/spack/repos/builtin/packages/openldap/package.py +++ b/var/spack/repos/builtin/packages/openldap/package.py @@ -17,7 +17,7 @@ class Openldap(AutotoolsPackage): """ homepage = "https://www.openldap.org/" - url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.9.tgz" + url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.48.tgz" version('2.4.48', sha256='d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d') diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index fe9972776f..6dc7c89d78 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -33,7 +33,7 @@ class OpenpmdApi(CMakePackage): depends_on('cmake@3.11.0:', type='build') depends_on('mpark-variant@1.4.0:') - depends_on('catch@2.6.1: ~single_header', type='test') + depends_on('catch2@2.6.1: ~single_header', type='test') depends_on('mpi@2.3:', when='+mpi') # might become MPI 3.0+ depends_on('hdf5@1.8.13:', when='+hdf5') depends_on('hdf5@1.8.13: ~mpi', when='~mpi +hdf5') @@ -93,25 +93,24 @@ class OpenpmdApi(CMakePackage): return args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): spec = self.spec # pre-load dependent CMake-PUBLIC header-only libs - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpark-variant'].prefix) - run_env.prepend_path('CPATH', spec['mpark-variant'].prefix.include) + env.prepend_path('CMAKE_PREFIX_PATH', spec['mpark-variant'].prefix) + env.prepend_path('CPATH', spec['mpark-variant'].prefix.include) # more deps searched in openPMDConfig.cmake if spec.satisfies("+mpi"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpi'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['mpi'].prefix) if spec.satisfies("+adios1"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['adios'].prefix) if spec.satisfies("+adios2"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios2'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['adios2'].prefix) if spec.satisfies("+hdf5"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['hdf5'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['hdf5'].prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): # pre-load dependent CMake-PUBLIC header-only libs - spack_env.prepend_path('CMAKE_PREFIX_PATH', - self.spec['mpark-variant'].prefix) - spack_env.prepend_path('CPATH', - self.spec['mpark-variant'].prefix.include) + env.prepend_path('CMAKE_PREFIX_PATH', + self.spec['mpark-variant'].prefix) + prepend_path('CPATH', self.spec['mpark-variant'].prefix.include) diff --git a/var/spack/repos/builtin/packages/pagit/package.py b/var/spack/repos/builtin/packages/pagit/package.py index 7cc1496b53..3bce58cd39 100644 --- a/var/spack/repos/builtin/packages/pagit/package.py +++ b/var/spack/repos/builtin/packages/pagit/package.py @@ -18,10 +18,6 @@ class Pagit(Package): depends_on('java', type=('build', 'run')) depends_on('perl', type=('build', 'run')) - def url_for_version(self, version): - url = 'ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V{0}.64bit.tgz' - return url.format(version) - def install(self, spec, prefix): with working_dir('PAGIT'): install_tree('ABACAS', prefix.ABACAS) @@ -31,19 +27,18 @@ class Pagit(Package): install_tree('lib', prefix.lib) install_tree('RATT', prefix.RATT) - def setup_environment(self, spack_env, run_env): - run_env.set('PAGIT_HOME', self.prefix) - run_env.set('PILEUP_HOME', join_path(self.prefix.bin, 'pileup_v0.5')) - run_env.set('ICORN_HOME', self.prefix.icorn) - run_env.set('SNPOMATIC_HOME', self.prefix.bin) - run_env.set('RATT_HOME', self.prefix.RATT) - run_env.set('RATT_CONFIG', join_path(self.prefix.RATT, 'RATT_config')) - run_env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5', - 'ssaha2')) - run_env.prepend_path('PATH', join_path(self.prefix.bin, - 'pileup_v0.5')) - run_env.prepend_path('PATH', self.prefix.IMAGE) - run_env.prepend_path('PATH', self.prefix.ABACAS) - run_env.prepend_path('PATH', self.prefix.ICORN) - run_env.prepend_path('PATH', self.prefix.RATT) - run_env.prepend_path('PERL5LIB', self.prefix.lib) + def setup_run_environment(self, env): + env.set('PAGIT_HOME', self.prefix) + env.set('PILEUP_HOME', join_path(self.prefix.bin, 'pileup_v0.5')) + env.set('ICORN_HOME', self.prefix.icorn) + env.set('SNPOMATIC_HOME', self.prefix.bin) + env.set('RATT_HOME', self.prefix.RATT) + env.set('RATT_CONFIG', join_path(self.prefix.RATT, 'RATT_config')) + env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5', + 'ssaha2')) + env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5')) + env.prepend_path('PATH', self.prefix.IMAGE) + env.prepend_path('PATH', self.prefix.ABACAS) + env.prepend_path('PATH', self.prefix.ICORN) + env.prepend_path('PATH', self.prefix.RATT) + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index e19039caa5..0ca4ef375f 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -93,7 +93,7 @@ class Paraview(CMakePackage, CudaPackage): depends_on('libpng') depends_on('libtiff') depends_on('libxml2') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('expat') # depends_on('netcdf-cxx') # depends_on('protobuf') # version mismatches? @@ -127,7 +127,7 @@ class Paraview(CMakePackage, CudaPackage): """The paraview subdirectory name as paraview-major.minor""" return 'paraview-{0}'.format(self.spec.version.up_to(2)) - def setup_dependent_build_environment(self, env): + def setup_dependent_build_environment(self, env, dependent_spec): if os.path.isdir(self.prefix.lib64): lib_dir = self.prefix.lib64 else: diff --git a/var/spack/repos/builtin/packages/parquet-cpp/package.py b/var/spack/repos/builtin/packages/parquet-cpp/package.py new file mode 100644 index 0000000000..de6559dc5e --- /dev/null +++ b/var/spack/repos/builtin/packages/parquet-cpp/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 ParquetCpp(CMakePackage): + """C++ bindings for the Apache Parquet columnar data format. + """ + + homepage = "https://github.com/apache/parquet-cpp" + url = "https://github.com/apache/parquet-cpp/archive/apache-parquet-cpp-1.4.0.tar.gz" + + version('1.4.0', sha256='52899be6c9dc49a14976d4ad84597243696c3fa2882e5c802b56e912bfbcc7ce') + + depends_on('arrow') + depends_on('boost') + depends_on('cmake@3.2.0:', type='build') + depends_on('pkgconfig', type='build') + depends_on('thrift+pic') + + variant('pic', default=True, + description='Build position independent code') + variant('build_type', default='Release', + description='CMake build type', + values=('Debug', 'FastDebug', 'Release')) + + def cmake_args(self): + args = ['-DPARQUET_USE_SSE=OFF', '-DPARQUET_BUILD_TESTS=OFF'] + for dep in ('arrow', 'thrift'): + args.append("-D{0}_HOME={1}".format(dep.upper(), + self.spec[dep].prefix)) + return args + + def flag_handler(self, name, flags): + flags = list(flags) + if '+pic' in self.spec and name in ('cflags', 'cxxflags'): + flags.append(self.compiler.pic_flag) + return (None, None, flags) diff --git a/var/spack/repos/builtin/packages/parquet/package.py b/var/spack/repos/builtin/packages/parquet/package.py deleted file mode 100644 index ac130b359f..0000000000 --- a/var/spack/repos/builtin/packages/parquet/package.py +++ /dev/null @@ -1,41 +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 Parquet(CMakePackage): - """C++ bindings for the Apache Parquet columnar data format. - """ - - homepage = "https://github.com/apache/parquet-cpp" - url = "https://github.com/apache/parquet-cpp/archive/apache-parquet-cpp-1.4.0.tar.gz" - - version('1.4.0', sha256='52899be6c9dc49a14976d4ad84597243696c3fa2882e5c802b56e912bfbcc7ce') - - depends_on('arrow') - depends_on('boost') - depends_on('cmake@3.2.0:', type='build') - depends_on('pkgconfig', type='build') - depends_on('thrift+pic') - - variant('pic', default=True, - description='Build position independent code') - variant('build_type', default='Release', - description='CMake build type', - values=('Debug', 'FastDebug', 'Release')) - - def cmake_args(self): - args = ['-DPARQUET_USE_SSE=OFF', '-DPARQUET_BUILD_TESTS=OFF'] - for dep in ('arrow', 'thrift'): - args.append("-D{0}_HOME={1}".format(dep.upper(), - self.spec[dep].prefix)) - return args - - def flag_handler(self, name, flags): - flags = list(flags) - if '+pic' in self.spec and name in ('cflags', 'cxxflags'): - flags.append(self.compiler.pic_flag) - return (None, None, flags) diff --git a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py index 98c0a488d9..0c299e06b4 100644 --- a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py +++ b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py @@ -10,7 +10,7 @@ class PerlAlienLibxml2(PerlPackage): """This module provides libxml2 for other modules to use.""" homepage = "https://metacpan.org/pod/Alien::Libxml2" - url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.09.tar.gz" + url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.10_01.tar.gz" version('0.10_01', sha256='2f45b308b33503292f48bf46a75fe1e653d6b209ba5caf0628d8cc103f8d61ac') diff --git a/var/spack/repos/builtin/packages/perl-bio-perl/package.py b/var/spack/repos/builtin/packages/perl-bio-perl/package.py deleted file mode 100644 index a8680d8b2e..0000000000 --- a/var/spack/repos/builtin/packages/perl-bio-perl/package.py +++ /dev/null @@ -1,110 +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 * -import inspect - - -class PerlBioPerl(PerlPackage): - """BioPerl is the product of a community effort to produce Perl code which - is useful in biology. Examples include Sequence objects, Alignment objects - and database searching objects. These objects not only do what they are - advertised to do in the documentation, but they also interact - Alignment - objects are made from the Sequence objects, Sequence objects have access to - Annotation and SeqFeature objects and databases, Blast objects can be - converted to Alignment objects, and so on. This means that the objects - provide a coordinated and extensible framework to do computational biology. - - BioPerl development focuses on Perl classes, or code that is used to create - objects representing biological entities. There are scripts provided in the - scripts/ and examples/ directories but scripts are not the main focus of - the BioPerl developers. Of course, as the objects do most of the hard work - for you, all you have to do is combine a number of objects together - sensibly to make useful scripts. - - The intent of the BioPerl development effort is to make reusable tools that - aid people in creating their own sites or job-specific applications. - - The BioPerl website at http://bioperl.org also attempts to maintain links - and archives of standalone bio-related Perl tools that are not affiliated - or related to the core BioPerl effort. Check the site for useful code ideas - and contribute your own if possible.""" - - homepage = "https://metacpan.org/pod/BioPerl" - url = "https://cpan.metacpan.org/authors/id/C/CD/CDRAUG/BioPerl-1.7.6.tar.gz" - - version('1.7.6', sha256='df2a3efc991b9b5d7cc9d038a1452c6dac910c9ad2a0e47e408dd692c111688d') - version('1.7.2', sha256='17aa3aaab2f381bbcaffdc370002eaf28f2c341b538068d6586b2276a76464a1', - url="http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.007002.tar.gz") - - # According to cpandeps.grinnz.com Module-Build is both a build and run - # time dependency for BioPerl - depends_on('perl-module-build', type=('build', 'run')) - depends_on('perl-uri', type=('build', 'run')) - depends_on('perl-io-string', type=('build', 'run')) - depends_on('perl-data-stag', type=('build', 'run')) - depends_on('perl-test-most', type=('build', 'run')) - depends_on('perl-error', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-graph', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-http-message', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-io-stringy', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-ipc-run', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-list-moreutils', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-set-scalar', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-test-requiresinternet', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-dom', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-dom-xpath', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-libxml', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-sax', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-sax-base', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-sax-writer', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-twig', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-xml-writer', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-yaml', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-libwww-perl', when='@1.7.6:', type=('build', 'run')) - depends_on('perl-libxml-perl', when='@1.7.6:', type=('build', 'run')) - - @when('@1.7.2') - def configure(self, spec, prefix): - # Overriding default configure method in order to cater to interactive - # Build.pl - self.build_method = 'Build.PL' - self.build_executable = Executable( - join_path(self.stage.source_path, 'Build')) - - # Config questions consist of: - # Do you want to run the Bio::DB::GFF or Bio::DB::SeqFeature::Store - # live database tests? y/n [n] - # - # Install [a]ll BioPerl scripts, [n]one, or choose groups - # [i]nteractively? [a] - # - # Do you want to run tests that require connection to servers across - # the internet (likely to cause some failures)? y/n [n] - # - # Eventually, someone can add capability for the other options, but - # the current answers are the most practical for a spack install. - - config_answers = ['n\n', 'a\n', 'n\n'] - config_answers_filename = 'spack-config.in' - - with open(config_answers_filename, 'w') as f: - f.writelines(config_answers) - - with open(config_answers_filename, 'r') as f: - inspect.getmodule(self).perl('Build.PL', '--install_base=%s' % - self.prefix, input=f) - - # Need to also override the build and install methods to make sure that the - # Build script is run through perl and not use the shebang, as it might be - # too long. This is needed because this does not pick up the - # `@run_after(configure)` step defined in `PerlPackage`. - @when('@1.7.2') - def build(self, spec, prefix): - inspect.getmodule(self).perl('Build') - - @when('@1.7.2') - def install(self, spec, prefix): - inspect.getmodule(self).perl('Build', 'install') diff --git a/var/spack/repos/builtin/packages/perl-bioperl/package.py b/var/spack/repos/builtin/packages/perl-bioperl/package.py new file mode 100644 index 0000000000..8f585b376e --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-bioperl/package.py @@ -0,0 +1,109 @@ +# 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 * +import inspect + + +class PerlBioperl(PerlPackage): + """BioPerl is the product of a community effort to produce Perl code which + is useful in biology. Examples include Sequence objects, Alignment objects + and database searching objects. These objects not only do what they are + advertised to do in the documentation, but they also interact - Alignment + objects are made from the Sequence objects, Sequence objects have access to + Annotation and SeqFeature objects and databases, Blast objects can be + converted to Alignment objects, and so on. This means that the objects + provide a coordinated and extensible framework to do computational biology. + + BioPerl development focuses on Perl classes, or code that is used to create + objects representing biological entities. There are scripts provided in the + scripts/ and examples/ directories but scripts are not the main focus of + the BioPerl developers. Of course, as the objects do most of the hard work + for you, all you have to do is combine a number of objects together + sensibly to make useful scripts. + + The intent of the BioPerl development effort is to make reusable tools that + aid people in creating their own sites or job-specific applications. + + The BioPerl website at http://bioperl.org also attempts to maintain links + and archives of standalone bio-related Perl tools that are not affiliated + or related to the core BioPerl effort. Check the site for useful code ideas + and contribute your own if possible.""" + + homepage = "https://metacpan.org/pod/BioPerl" + url = "https://cpan.metacpan.org/authors/id/C/CD/CDRAUG/BioPerl-1.7.6.tar.gz" + + version('1.7.6', sha256='df2a3efc991b9b5d7cc9d038a1452c6dac910c9ad2a0e47e408dd692c111688d') + version('1.007002', sha256='17aa3aaab2f381bbcaffdc370002eaf28f2c341b538068d6586b2276a76464a1') + + # According to cpandeps.grinnz.com Module-Build is both a build and run + # time dependency for BioPerl + depends_on('perl-module-build', type=('build', 'run')) + depends_on('perl-uri', type=('build', 'run')) + depends_on('perl-io-string', type=('build', 'run')) + depends_on('perl-data-stag', type=('build', 'run')) + depends_on('perl-test-most', type=('build', 'run')) + depends_on('perl-error', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-graph', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-http-message', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-io-stringy', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-ipc-run', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-list-moreutils', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-set-scalar', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-test-requiresinternet', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-dom', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-dom-xpath', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-libxml', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-sax', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-sax-base', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-sax-writer', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-twig', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-xml-writer', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-yaml', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-libwww-perl', when='@1.7.6:', type=('build', 'run')) + depends_on('perl-libxml-perl', when='@1.7.6:', type=('build', 'run')) + + @when('@1.7.2') + def configure(self, spec, prefix): + # Overriding default configure method in order to cater to interactive + # Build.pl + self.build_method = 'Build.PL' + self.build_executable = Executable( + join_path(self.stage.source_path, 'Build')) + + # Config questions consist of: + # Do you want to run the Bio::DB::GFF or Bio::DB::SeqFeature::Store + # live database tests? y/n [n] + # + # Install [a]ll BioPerl scripts, [n]one, or choose groups + # [i]nteractively? [a] + # + # Do you want to run tests that require connection to servers across + # the internet (likely to cause some failures)? y/n [n] + # + # Eventually, someone can add capability for the other options, but + # the current answers are the most practical for a spack install. + + config_answers = ['n\n', 'a\n', 'n\n'] + config_answers_filename = 'spack-config.in' + + with open(config_answers_filename, 'w') as f: + f.writelines(config_answers) + + with open(config_answers_filename, 'r') as f: + inspect.getmodule(self).perl('Build.PL', '--install_base=%s' % + self.prefix, input=f) + + # Need to also override the build and install methods to make sure that the + # Build script is run through perl and not use the shebang, as it might be + # too long. This is needed because this does not pick up the + # `@run_after(configure)` step defined in `PerlPackage`. + @when('@1.7.2') + def build(self, spec, prefix): + inspect.getmodule(self).perl('Build') + + @when('@1.7.2') + def install(self, spec, prefix): + inspect.getmodule(self).perl('Build', 'install') diff --git a/var/spack/repos/builtin/packages/perl-db-file/package.py b/var/spack/repos/builtin/packages/perl-db-file/package.py new file mode 100644 index 0000000000..ff7263517f --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-db-file/package.py @@ -0,0 +1,27 @@ +# 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 PerlDbFile(PerlPackage): + """DB_File is a module which allows Perl programs to make use of the + facilities provided by Berkeley DB version 1.x (if you have a newer version + of DB, see "Using DB_File with Berkeley DB version 2 or greater"). + It is assumed that you have a copy of the Berkeley DB manual pages at hand + when reading this documentation. The interface defined here mirrors the + Berkeley DB interface closely.""" + + homepage = "https://metacpan.org/pod/DB_File" + url = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/DB_File-1.840.tar.gz" + + version('1.840', sha256='b7864707fad0f2d1488c748c4fa08f1fb8bcfd3da247c36909fd42f20bfab2c4') + + depends_on('perl-extutils-makemaker', type='build') + depends_on('berkeley-db', type='build') + + def patch(self): + filter_file('/usr/local/BerkeleyDB', + self.spec['berkeley-db'].prefix, 'config.in') diff --git a/var/spack/repos/builtin/packages/perl-dbfile/package.py b/var/spack/repos/builtin/packages/perl-dbfile/package.py deleted file mode 100644 index 19cc9410c1..0000000000 --- a/var/spack/repos/builtin/packages/perl-dbfile/package.py +++ /dev/null @@ -1,27 +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 PerlDbfile(PerlPackage): - """DB_File is a module which allows Perl programs to make use of the - facilities provided by Berkeley DB version 1.x (if you have a newer version - of DB, see "Using DB_File with Berkeley DB version 2 or greater"). - It is assumed that you have a copy of the Berkeley DB manual pages at hand - when reading this documentation. The interface defined here mirrors the - Berkeley DB interface closely.""" - - homepage = "https://metacpan.org/pod/DB_File" - url = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/DB_File-1.840.tar.gz" - - version('1.840', sha256='b7864707fad0f2d1488c748c4fa08f1fb8bcfd3da247c36909fd42f20bfab2c4') - - depends_on('perl-extutils-makemaker', type='build') - depends_on('berkeley-db', type='build') - - def patch(self): - filter_file('/usr/local/BerkeleyDB', - self.spec['berkeley-db'].prefix, 'config.in') diff --git a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py index 9dfdc5ae98..386add30e4 100644 --- a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py @@ -10,6 +10,6 @@ class PerlDevelSymdump(PerlPackage): """Devel::Symdump - dump symbol names or the symbol table""" homepage = "https://metacpan.org/pod/Devel::Symdump" - url = "https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz" + url = "https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.0604.tar.gz" version('2.0604', sha256='1f9eaa557733f775ccaa852e846566274c017e6fee380aeb8d08e425cfa86d3e') diff --git a/var/spack/repos/builtin/packages/perl-file-chdir/package.py b/var/spack/repos/builtin/packages/perl-file-chdir/package.py index b628ca12e5..e26adb298f 100644 --- a/var/spack/repos/builtin/packages/perl-file-chdir/package.py +++ b/var/spack/repos/builtin/packages/perl-file-chdir/package.py @@ -18,6 +18,6 @@ class PerlFileChdir(PerlPackage): combine all the power of chdir(), File::Spec and Cwd.""" homepage = "https://metacpan.org/pod/File::chdir" - url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1010.tar.gz" + url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz" version('0.1011', sha256='31ebf912df48d5d681def74b9880d78b1f3aca4351a0ed1fe3570b8e03af6c79') diff --git a/var/spack/repos/builtin/packages/perl-gd-graph/package.py b/var/spack/repos/builtin/packages/perl-gd-graph/package.py deleted file mode 100644 index a4c83eefc4..0000000000 --- a/var/spack/repos/builtin/packages/perl-gd-graph/package.py +++ /dev/null @@ -1,20 +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 PerlGdGraph(PerlPackage): - """Graph Plotting Module for Perl 5""" - - homepage = "http://search.cpan.org/~bwarfield/GDGraph/Graph.pm" - url = "http://search.cpan.org/CPAN/authors/id/B/BW/BWARFIELD/GDGraph-1.4308.tar.gz" - - version('1.4308', sha256='75b3c7e280431404ed096c6e120d552cc39052a8610787149515e94b9ba237cb') - - depends_on('perl-capture-tiny', type=('build', 'run')) - depends_on('perl-test-exception', type=('build', 'run')) - depends_on('perl-gd-text', type=('build', 'run')) - depends_on('perl-gd', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-gd-text/package.py b/var/spack/repos/builtin/packages/perl-gd-text/package.py deleted file mode 100644 index 1988eeaf70..0000000000 --- a/var/spack/repos/builtin/packages/perl-gd-text/package.py +++ /dev/null @@ -1,17 +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 PerlGdText(PerlPackage): - """Text utilities for use with GD""" - - homepage = "http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm" - url = "http://search.cpan.org/CPAN/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz" - - version('0.86', sha256='886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc') - - depends_on('perl-gd', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-gdgraph/package.py b/var/spack/repos/builtin/packages/perl-gdgraph/package.py new file mode 100644 index 0000000000..98f015db35 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-gdgraph/package.py @@ -0,0 +1,20 @@ +# 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 PerlGdgraph(PerlPackage): + """Graph Plotting Module for Perl 5""" + + homepage = "http://search.cpan.org/~bwarfield/GDGraph/Graph.pm" + url = "http://search.cpan.org/CPAN/authors/id/B/BW/BWARFIELD/GDGraph-1.4308.tar.gz" + + version('1.4308', sha256='75b3c7e280431404ed096c6e120d552cc39052a8610787149515e94b9ba237cb') + + depends_on('perl-capture-tiny', type=('build', 'run')) + depends_on('perl-test-exception', type=('build', 'run')) + depends_on('perl-gdtextutil', type=('build', 'run')) + depends_on('perl-gd', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-gdtextutil/package.py b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py new file mode 100644 index 0000000000..929ac0e34e --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py @@ -0,0 +1,17 @@ +# 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 PerlGdtextutil(PerlPackage): + """Text utilities for use with GD""" + + homepage = "http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm" + url = "http://search.cpan.org/CPAN/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz" + + version('0.86', sha256='886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc') + + depends_on('perl-gd', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-intervaltree/package.py b/var/spack/repos/builtin/packages/perl-intervaltree/package.py deleted file mode 100644 index 5f875cdd6e..0000000000 --- a/var/spack/repos/builtin/packages/perl-intervaltree/package.py +++ /dev/null @@ -1,18 +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 PerlIntervaltree(PerlPackage): - """Set::IntervalTree uses Interval Trees to store and efficiently look up - ranges using a range-based lookup.""" - - homepage = "https://metacpan.org/release/Set-IntervalTree" - url = "https://cpan.metacpan.org/authors/id/B/BE/BENBOOTH/Set-IntervalTree-0.10.tar.gz" - - version('0.10', sha256='e3bd9ccf0d074b5f879eef1ed88254983697bf83d02744fce62150ee46553ebc') - - depends_on('perl-extutils-makemaker', type='build') diff --git a/var/spack/repos/builtin/packages/perl-io-prompt/package.py b/var/spack/repos/builtin/packages/perl-io-prompt/package.py index 2bf4144990..4734a3bc55 100644 --- a/var/spack/repos/builtin/packages/perl-io-prompt/package.py +++ b/var/spack/repos/builtin/packages/perl-io-prompt/package.py @@ -31,5 +31,5 @@ class PerlIoPrompt(PerlPackage): depends_on('perl-module-build', type='build') - depends_on('perl-term-readkey', type=('build', 'run')) + depends_on('perl-termreadkey', type=('build', 'run')) depends_on('perl-want', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-io-tty/package.py b/var/spack/repos/builtin/packages/perl-io-tty/package.py index 217b4fb71b..332a09e2f4 100644 --- a/var/spack/repos/builtin/packages/perl-io-tty/package.py +++ b/var/spack/repos/builtin/packages/perl-io-tty/package.py @@ -12,6 +12,6 @@ class PerlIoTty(PerlPackage): For a list of importable constants, see IO::Tty::Constant.""" homepage = "https://metacpan.org/pod/IO::Tty" - url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.12.tar.gz" + url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.13_01.tar.gz" version('1.13_01', sha256='89798eba7c31d9c169ef2f38ff49490aa769b1d9a68033de365595cfaf9cc258') diff --git a/var/spack/repos/builtin/packages/perl-libwww-perl/package.py b/var/spack/repos/builtin/packages/perl-libwww-perl/package.py index 63a36a0e65..b57ee53bbd 100644 --- a/var/spack/repos/builtin/packages/perl-libwww-perl/package.py +++ b/var/spack/repos/builtin/packages/perl-libwww-perl/package.py @@ -16,6 +16,7 @@ class PerlLibwwwPerl(PerlPackage): url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.33.tar.gz" version('6.33', sha256='97417386f11f007ae129fe155b82fd8969473ce396a971a664c8ae6850c69b99') + version('6.29', sha256='4c6f2697999d2d0e6436b584116b12b30dc39990ec0622751c1a6cec2c0e6662') depends_on('perl-encode-locale', type=('build', 'run')) depends_on('perl-file-listing', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py index ef7faad32c..9b1db2e856 100644 --- a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py +++ b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py @@ -10,6 +10,6 @@ class PerlLogLog4perl(PerlPackage): """Log4j implementation for Perl""" homepage = "http://search.cpan.org/~mschilli/Log-Log4perl-1.44/lib/Log/Log4perl.pm" - url = "https://github.com/mschilli/log4perl/archive/rel_146.tar.gz" + url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.46.tar.gz" - version('146', sha256='a361e483095795753b97f8a506b40c24c753cf73828bb8697665499ef8596402') + version('1.46', sha256='31011a17c04e78016e73eaa4865d0481d2ffc3dc22813c61065d90ad73c64e6f') diff --git a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py index 0974a00bc7..5567f6fbd2 100644 --- a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py +++ b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py @@ -18,4 +18,4 @@ class PerlLwpProtocolHttps(PerlPackage): depends_on('perl-io-socket-ssl', type=('build', 'run')) depends_on('perl-net-http', type=('build', 'run')) depends_on('perl-mozilla-ca', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-lwp/package.py b/var/spack/repos/builtin/packages/perl-lwp/package.py deleted file mode 100644 index 4cbe00854e..0000000000 --- a/var/spack/repos/builtin/packages/perl-lwp/package.py +++ /dev/null @@ -1,26 +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 PerlLwp(PerlPackage): - """The World-Wide Web library for Perl""" - - homepage = "http://search.cpan.org/~oalders/libwww-perl-6.29/lib/LWP.pm" - url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.29.tar.gz" - - version('6.29', sha256='4c6f2697999d2d0e6436b584116b12b30dc39990ec0622751c1a6cec2c0e6662') - - depends_on('perl-test-requiresinternet', type=('build', 'run')) - depends_on('perl-http-message', type=('build', 'run')) - depends_on('perl-file-listing', type=('build', 'run')) - depends_on('perl-http-daemon', type=('build', 'run')) - depends_on('perl-html-parser', type=('build', 'run')) - depends_on('perl-http-cookies', type=('build', 'run')) - depends_on('perl-www-robotrules', type=('build', 'run')) - depends_on('perl-test-fatal', type=('build', 'run')) - depends_on('perl-http-negotiate', type=('build', 'run')) - depends_on('perl-net-http', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-perl-version/package.py b/var/spack/repos/builtin/packages/perl-perl-version/package.py new file mode 100644 index 0000000000..68155b87e8 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-perl-version/package.py @@ -0,0 +1,17 @@ +# 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 PerlPerlVersion(PerlPackage): + """Parse and manipulate Perl version strings""" + + homepage = "http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm" + url = "http://search.cpan.org/CPAN/authors/id/B/BD/BDFOY/Perl-Version-1.013_03.tar.gz" + + version('1.013_03', sha256='6b5978f598dcdf8a304500c1b7bcdce967ca05e7b38673cebfdb4237531c2ff9') + + depends_on('perl-file-slurp-tiny', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py new file mode 100644 index 0000000000..96ed744908 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py @@ -0,0 +1,18 @@ +# 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 PerlSetIntervaltree(PerlPackage): + """Set::IntervalTree uses Interval Trees to store and efficiently look up + ranges using a range-based lookup.""" + + homepage = "https://metacpan.org/release/Set-IntervalTree" + url = "https://cpan.metacpan.org/authors/id/B/BE/BENBOOTH/Set-IntervalTree-0.10.tar.gz" + + version('0.10', sha256='e3bd9ccf0d074b5f879eef1ed88254983697bf83d02744fce62150ee46553ebc') + + depends_on('perl-extutils-makemaker', type='build') diff --git a/var/spack/repos/builtin/packages/perl-star-fusion/package.py b/var/spack/repos/builtin/packages/perl-star-fusion/package.py index ccab3095ad..625546c9c8 100644 --- a/var/spack/repos/builtin/packages/perl-star-fusion/package.py +++ b/var/spack/repos/builtin/packages/perl-star-fusion/package.py @@ -23,9 +23,9 @@ class PerlStarFusion(Package): depends_on('star', type=('build', 'run')) depends_on('perl', type=('build', 'run')) - depends_on('perl-intervaltree', type=('build', 'run')) + depends_on('perl-set-intervaltree', type=('build', 'run')) depends_on('perl-dbi', type=('build', 'run')) - depends_on('perl-dbfile', type=('build', 'run')) + depends_on('perl-db-file', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/perl-term-readkey/package.py b/var/spack/repos/builtin/packages/perl-term-readkey/package.py deleted file mode 100644 index 0e89420d33..0000000000 --- a/var/spack/repos/builtin/packages/perl-term-readkey/package.py +++ /dev/null @@ -1,22 +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 PerlTermReadkey(PerlPackage): - """Term::ReadKey is a compiled perl module dedicated to providing simple - control over terminal driver modes (cbreak, raw, cooked, etc.,) support - for non-blocking reads, if the architecture allows, and some generalized - handy functions for working with terminals. One of the main goals is to - have the functions as portable as possible, so you can just plug in - "use Term::ReadKey" on any architecture and have a good likelihood of it - working.""" - - homepage = "http://search.cpan.org/perldoc/Term::ReadKey" - url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz" - - version('2.38', sha256='5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290') - version('2.37', sha256='4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241') diff --git a/var/spack/repos/builtin/packages/perl-termreadkey/package.py b/var/spack/repos/builtin/packages/perl-termreadkey/package.py new file mode 100644 index 0000000000..f764964d29 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-termreadkey/package.py @@ -0,0 +1,22 @@ +# 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 PerlTermreadkey(PerlPackage): + """Term::ReadKey is a compiled perl module dedicated to providing simple + control over terminal driver modes (cbreak, raw, cooked, etc.,) support + for non-blocking reads, if the architecture allows, and some generalized + handy functions for working with terminals. One of the main goals is to + have the functions as portable as possible, so you can just plug in + "use Term::ReadKey" on any architecture and have a good likelihood of it + working.""" + + homepage = "http://search.cpan.org/perldoc/Term::ReadKey" + url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz" + + version('2.38', sha256='5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290') + version('2.37', sha256='4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241') diff --git a/var/spack/repos/builtin/packages/perl-version/package.py b/var/spack/repos/builtin/packages/perl-version/package.py deleted file mode 100644 index a1413c0c37..0000000000 --- a/var/spack/repos/builtin/packages/perl-version/package.py +++ /dev/null @@ -1,17 +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 PerlVersion(PerlPackage): - """Parse and manipulate Perl version strings""" - - homepage = "http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm" - url = "http://search.cpan.org/CPAN/authors/id/B/BD/BDFOY/Perl-Version-1.013_03.tar.gz" - - version('1.013_03', sha256='6b5978f598dcdf8a304500c1b7bcdce967ca05e7b38673cebfdb4237531c2ff9') - - depends_on('perl-file-slurp-tiny', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py index cb7e58bcd1..ef816a95e8 100644 --- a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py +++ b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py @@ -12,6 +12,6 @@ class PerlXmlNamespacesupport(PerlPackage): prefix to namespace URI map, and provides a number of basic checks.""" homepage = "https://metacpan.org/pod/XML::NamespaceSupport" - url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz" + url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12_9.tar.gz" version('1.12_9', sha256='2e84a057f0a8c845a612d212742cb94fca4fc8a433150b5721bd448f77d1e4a9') diff --git a/var/spack/repos/builtin/packages/pism/package.py b/var/spack/repos/builtin/packages/pism/package.py index 10bc658dff..356b726cb4 100644 --- a/var/spack/repos/builtin/packages/pism/package.py +++ b/var/spack/repos/builtin/packages/pism/package.py @@ -10,7 +10,7 @@ class Pism(CMakePackage): """Parallel Ice Sheet Model""" homepage = "http://pism-docs.org/wiki/doku.php:=" - url = "https://github.com/pism/pism/archive/v0.7.3.tar.gz" + url = "https://github.com/pism/pism/archive/v1.1.4.tar.gz" git = "https://github.com/pism/pism.git" maintainers = ['citibeth'] @@ -73,9 +73,9 @@ class Pism(CMakePackage): depends_on('fftw') depends_on('gsl') depends_on('mpi') - depends_on('netcdf') # Only the C interface is used, no netcdf-cxx4 + depends_on('netcdf-c') # Only the C interface is used, no netcdf-cxx4 depends_on('petsc') - depends_on('udunits2') + depends_on('udunits') depends_on('proj@:4') depends_on('everytrace', when='+everytrace') @@ -116,7 +116,7 @@ class Pism(CMakePackage): '-DPism_USE_EVERYTRACE=%s' % ('YES' if '+everytrace' in spec else 'NO')] - def setup_environment(self, spack_env, env): + def setup_run_environment(self, env): env.set('PISM_PREFIX', self.prefix) env.set('PISM_BIN', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/prank/package.py b/var/spack/repos/builtin/packages/prank/package.py index 0eb0050d34..d45eadb028 100644 --- a/var/spack/repos/builtin/packages/prank/package.py +++ b/var/spack/repos/builtin/packages/prank/package.py @@ -10,7 +10,7 @@ class Prank(Package): """A powerful multiple sequence alignment browser.""" homepage = "http://wasabiapp.org/software/prank/" - url = "http://wasabiapp.org/download/prank/prank.source.150803.tgz" + url = "http://wasabiapp.org/download/prank/prank.source.170427.tgz" version('170427', sha256='623eb5e9b5cb0be1f49c3bf715e5fabceb1059b21168437264bdcd5c587a8859') diff --git a/var/spack/repos/builtin/packages/ps-lite/package.py b/var/spack/repos/builtin/packages/ps-lite/package.py index 92a0b7ff88..9d20d09d55 100644 --- a/var/spack/repos/builtin/packages/ps-lite/package.py +++ b/var/spack/repos/builtin/packages/ps-lite/package.py @@ -17,6 +17,6 @@ class PsLite(CMakePackage): version('20170328', commit='acdb698fa3bb80929ef83bb37c705f025e119b82') depends_on('protobuf@3:') - depends_on('zeromq') + depends_on('libzmq') patch('cmake.patch') diff --git a/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py b/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py index 029745dec1..5d949c053a 100644 --- a/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py +++ b/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py @@ -10,9 +10,9 @@ class PyAvroJsonSerializer(PythonPackage): """Serializes data into a JSON format using AVRO schema.""" homepage = "https://github.com/linkedin/python-avro-json-serializer" - url = "https://github.com/linkedin/python-avro-json-serializer/archive/0.4.tar.gz" + url = "https://pypi.io/packages/source/a/avro_json_serializer/avro_json_serializer-0.4.tar.gz" - version('0.4', sha256='58df57e6c85b1b453668eb0bff2b049efcfd83d6e5dfa72cee1df220f330820d') + version('0.4', sha256='f9dac2dac92036c5dd5aba8c716545fc0a0630cc365a51ab15bc2ac47eac28f1') depends_on('py-setuptools', type='build') depends_on('py-simplejson', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py index 5ebb9f85bc..0d79bb5c5e 100644 --- a/var/spack/repos/builtin/packages/py-brian2/package.py +++ b/var/spack/repos/builtin/packages/py-brian2/package.py @@ -24,6 +24,6 @@ class PyBrian2(PythonPackage): depends_on('py-sympy@0.7.6:', type=('build', 'run')) depends_on('py-pyparsing', type=('build', 'run')) depends_on('py-jinja2@2.7:', type=('build', 'run')) - depends_on('py-cpuinfo@0.1.6:', type=('build', 'run')) + depends_on('py-py-cpuinfo@0.1.6:', type=('build', 'run')) depends_on('py-sphinx@1.4.2:', type=('build', 'run'), when='+docs') depends_on('py-nosetests@1.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-cdat-lite/package.py b/var/spack/repos/builtin/packages/py-cdat-lite/package.py index facb14a43f..19614e5cba 100644 --- a/var/spack/repos/builtin/packages/py-cdat-lite/package.py +++ b/var/spack/repos/builtin/packages/py-cdat-lite/package.py @@ -17,7 +17,7 @@ class PyCdatLite(PythonPackage): version('6.0.1', sha256='092ae4ff1fb03dee00096e8dd595b769b422759ce972d96525950adf8e1c9374') - depends_on("netcdf") + depends_on("netcdf-c") depends_on("python@2.5:2.8", type=('build', 'run')) depends_on("py-numpy", type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-cf-units/package.py b/var/spack/repos/builtin/packages/py-cf-units/package.py index aaa2505d10..ea7634afbb 100644 --- a/var/spack/repos/builtin/packages/py-cf-units/package.py +++ b/var/spack/repos/builtin/packages/py-cf-units/package.py @@ -26,4 +26,4 @@ class PyCfUnits(PythonPackage): depends_on('py-numpy', type=('build', 'run')) depends_on('py-antlr4-python3-runtime', type=('build', 'run')) depends_on('py-pytest-runner', type=('build')) - depends_on('udunits2') + depends_on('udunits') diff --git a/var/spack/repos/builtin/packages/py-cpuinfo/package.py b/var/spack/repos/builtin/packages/py-cpuinfo/package.py deleted file mode 100644 index e9f4db3142..0000000000 --- a/var/spack/repos/builtin/packages/py-cpuinfo/package.py +++ /dev/null @@ -1,17 +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 PyCpuinfo(PythonPackage): - """Get CPU info with pure Python 2 & 3""" - - homepage = "https://github.com/workhorsy/py-cpuinfo" - url = "https://pypi.io/packages/source/p/py-cpuinfo/py-cpuinfo-0.2.3.tar.gz" - - version('0.2.3', sha256='f6a016fdbc4e7fadf2d519090fcb4fa9d0831bad4e85245d938e5c2fe7623ca6') - - depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-espressopp/package.py b/var/spack/repos/builtin/packages/py-espressopp/package.py index 95bf54a8e9..8111ba1e80 100644 --- a/var/spack/repos/builtin/packages/py-espressopp/package.py +++ b/var/spack/repos/builtin/packages/py-espressopp/package.py @@ -14,7 +14,7 @@ class PyEspressopp(CMakePackage): atomistic or bead-spring models as they are used in soft matter research """ homepage = "https://espressopp.github.io" - url = "https://github.com/espressopp/espressopp/tarball/v1.9.4.1" + url = "https://github.com/espressopp/espressopp/tarball/v2.0.2" git = "https://github.com/espressopp/espressopp.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/py-exodus-bundler/package.py b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py new file mode 100644 index 0000000000..42cf282cdf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py @@ -0,0 +1,20 @@ +# 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 PyExodusBundler(PythonPackage): + """Exodus is a tool that makes it easy to successfully relocate Linux + ELF binaries from one system to another.""" + + homepage = "https://github.com/intoli/exodus" + url = "https://pypi.org/packages/source/e/exodus-bundler/exodus-bundler-2.0.2.tar.gz" + + version('2.0.2', sha256='4e896a2034b94cf7b4fb33d86a68e29a7d3b08e57541e444db34dddc6ac1ef68') + + depends_on('musl', type='run', when='%clang') + depends_on('musl', type='run', when='%gcc') + depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-exodus/package.py b/var/spack/repos/builtin/packages/py-exodus/package.py deleted file mode 100644 index 5794a146a6..0000000000 --- a/var/spack/repos/builtin/packages/py-exodus/package.py +++ /dev/null @@ -1,20 +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 PyExodus(PythonPackage): - """Exodus is a tool that makes it easy to successfully relocate Linux - ELF binaries from one system to another.""" - - homepage = "https://github.com/intoli/exodus" - url = "https://pypi.org/packages/source/e/exodus-bundler/exodus-bundler-2.0.2.tar.gz" - - version('2.0.2', sha256='4e896a2034b94cf7b4fb33d86a68e29a7d3b08e57541e444db34dddc6ac1ef68') - - depends_on('musl', type='run', when='%clang') - depends_on('musl', type='run', when='%gcc') - depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-filelock/package.py b/var/spack/repos/builtin/packages/py-filelock/package.py index b82459a256..89d0a7b37c 100644 --- a/var/spack/repos/builtin/packages/py-filelock/package.py +++ b/var/spack/repos/builtin/packages/py-filelock/package.py @@ -12,15 +12,14 @@ class PyFilelock(PythonPackage): inter-process communication""" homepage = "https://github.com/benediktschmitt/py-filelock" - url = "https://github.com/benediktschmitt/py-filelock/archive/v3.0.4.tar.gz" + url = "https://pypi.io/packages/source/f/filelock/filelock-3.0.4.tar.gz" - version('3.0.4', sha256='8521523f3eafb7bbbdd0a5a7a15ddb8076ea6f106385bbfc4c9d055db2585214') - version('3.0.3', sha256='8e1b1ad91de70e091de381ab8705b37e41d240c211d8d888dcf1d0e31d6274bb') - version('3.0.1', sha256='533107ab60de691030b7e90105ab38c8b0d60d52de382fe5302819cba95561f8') - version('3.0.0', sha256='f41bed24b280b2fd11b2f12fecdfd2a21e5f9babc4e89929b316946288fa195c') - version('2.0.13', sha256='85e2a001693c2995854e42783a8c11994d143f8ba9c92d31f573476a22a5b3b3') - version('2.0.12', sha256='3b67cddd8c405c27b9118a1383d5257b5b6e066d3a9a30ab03d42b4dc6828cbb') - version('2.0.11', sha256='97c36de6e0c2eaed6638a9575a96d176e4ec2820b888f3da3194bbb852f86c5e') - version('2.0.10', sha256='f15d99cfa3e89072d7709bf3b5d354cf1c9096cffdb1127c4dbff1ca4a89cb84') - version('2.0.9', sha256='86d8e95afe77bc92a94c2e0db2b452c067b453b017fd78edfbb679b199dadbd5') - version('2.0.8', sha256='4f69474338ebf6ead2e0c2e91c5f94a25af8125d307f539db10886a19e2e2628') + version('3.0.4', sha256='011327d4ed939693a5b28c0fdf2fd9bda1f68614c1d6d0643a89382ce9843a71') + version('3.0.3', sha256='7d8a86350736aa0efea0730e6a7f774195cbb1c2d61134c15f6be576399e87ff') + version('3.0.0', sha256='b3ad481724adfb2280773edd95ce501e497e88fa4489c6e41e637ab3fd9a456c') + version('2.0.13', sha256='d05079e7d7cae7576e192749d3461999ca6b0843d35b0f79f1fa956b0f6fc7d8') + version('2.0.12', sha256='eb4314a9a032707a914b037433ce866d4ed363fce8605d45f0c9d2cd6ac52f98') + version('2.0.11', sha256='e9e370efe86c30b19a2c8c36dd9fcce8e5ce294ef4ed6ac86664b666eaf852ca') + version('2.0.10', sha256='c73bf706d8a0c5722de0b745495fed9cda0e46c0eabb44eb18ee3f00520fa85f') + version('2.0.9', sha256='0f91dce339c9f25d6f2e0733a17e4f9a47b139dffda52619a0e61e013e5c6782') + version('2.0.8', sha256='7e48e4906de3c9a5d64d8f235eb3ae1050dfefa63fd65eaf318cc915c935212b') diff --git a/var/spack/repos/builtin/packages/py-fn-py/package.py b/var/spack/repos/builtin/packages/py-fn-py/package.py new file mode 100644 index 0000000000..0d4888be3a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fn-py/package.py @@ -0,0 +1,18 @@ +# 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 PyFnPy(PythonPackage): + """Functional programming in Python: implementation of missing features + to enjoy FP.""" + + homepage = "https://github.com/fnpy/fn.py" + url = "https://github.com/fnpy/fn.py/archive/v0.5.2.tar.gz" + + version('0.5.2', sha256='fda2253d792867a79514496932630622df9340f214a2f4b2d597b60a8cc3d96b') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-fn/package.py b/var/spack/repos/builtin/packages/py-fn/package.py deleted file mode 100644 index 95cf3d4adf..0000000000 --- a/var/spack/repos/builtin/packages/py-fn/package.py +++ /dev/null @@ -1,18 +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 PyFn(PythonPackage): - """Functional programming in Python: implementation of missing features - to enjoy FP.""" - - homepage = "https://github.com/fnpy/fn.py" - url = "https://github.com/fnpy/fn.py/archive/v0.5.2.tar.gz" - - version('0.5.2', sha256='fda2253d792867a79514496932630622df9340f214a2f4b2d597b60a8cc3d96b') - - depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py index 7d7372f66a..4e774360f0 100644 --- a/var/spack/repos/builtin/packages/py-fsspec/package.py +++ b/var/spack/repos/builtin/packages/py-fsspec/package.py @@ -10,9 +10,9 @@ class PyFsspec(PythonPackage): """A specification for pythonic filesystems.""" homepage = "https://github.com/intake/filesystem_spec" - url = "https://github.com/intake/filesystem_spec/archive/0.4.4.tar.gz" + url = "https://pypi.io/packages/source/f/fsspec/fsspec-0.4.4.tar.gz" - version('0.4.4', sha256='27dfc3dab37d5c037683c7a3eaf7acd8b24ee56e4ce3edb14af54bdb43973d43') + version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63') depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-git2/package.py b/var/spack/repos/builtin/packages/py-git2/package.py deleted file mode 100644 index a4c6404ef1..0000000000 --- a/var/spack/repos/builtin/packages/py-git2/package.py +++ /dev/null @@ -1,31 +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 PyGit2(PythonPackage): - """Pygit2 is a set of Python bindings to the libgit2 shared library, - libgit2 implements the core of Git. - """ - - homepage = "http://www.pygit2.org/" - url = "https://pypi.io/packages/source/p/pygit2/pygit2-0.24.1.tar.gz" - - version('0.24.1', sha256='4d1d0196b38d6012faf0a7c45e235c208315672b6035da504566c605ba494064') - - extends('python') - depends_on('py-setuptools', type='build') - # Version must match with libgit2 - # See: http://www.pygit2.org/install.html - depends_on('libgit2@0.24:', when='@0.24:') - depends_on('py-six', type=('build', 'run')) - depends_on('py-cffi', type=('build', 'run')) - - def setup_environment(self, spack_env, run_env): - spec = self.spec - # http://www.pygit2.org/install.html - spack_env.set('LIBGIT2', spec['libgit2'].prefix) - spack_env.set('LIBGIT2_LIB', spec['libgit2'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/py-hpccm/package.py b/var/spack/repos/builtin/packages/py-hpccm/package.py index fee945d1ed..31d8074470 100644 --- a/var/spack/repos/builtin/packages/py-hpccm/package.py +++ b/var/spack/repos/builtin/packages/py-hpccm/package.py @@ -11,9 +11,9 @@ class PyHpccm(PythonPackage): tool to make it easier to generate container specification files.""" homepage = "https://github.com/NVIDIA/hpc-container-maker" - url = "https://github.com/NVIDIA/hpc-container-maker/archive/v19.2.0.tar.gz" + url = "https://pypi.io/packages/source/h/hpccm/hpccm-19.2.0.tar.gz" - version('19.2.0', sha256='99eb0f48cfbdfb29815aed8bcd0fa8c5a857fd912a2bb9658b217b0712ca4af5') + version('19.2.0', sha256='c60eec914a802b0a76596cfd5fdf7122d3f8665fcef06ef928323f5dfb5219a6') depends_on('py-setuptools', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-igraph/package.py b/var/spack/repos/builtin/packages/py-igraph/package.py deleted file mode 100644 index e6f6ccdf20..0000000000 --- a/var/spack/repos/builtin/packages/py-igraph/package.py +++ /dev/null @@ -1,19 +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 PyIgraph(PythonPackage): - """igraph is a collection of network analysis tools with the emphasis on - efficiency, portability and ease of use.""" - - homepage = "http://igraph.org/" - url = "http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz" - - version('0.7.0', sha256='64ac270e80a92066d489407be1900a329df8e26844430f941ecc88771188c471') - - depends_on('py-setuptools', type='build') - depends_on('igraph') diff --git a/var/spack/repos/builtin/packages/py-jpype/package.py b/var/spack/repos/builtin/packages/py-jpype/package.py deleted file mode 100644 index f8292f4132..0000000000 --- a/var/spack/repos/builtin/packages/py-jpype/package.py +++ /dev/null @@ -1,25 +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 PyJpype(PythonPackage): - """JPype is an effort to allow python programs full access to java class - libraries.""" - - homepage = "https://github.com/originell/jpype" - url = "https://pypi.io/packages/source/J/JPype1/JPype1-0.6.2.tar.gz" - - version('0.6.2', sha256='99206412d80b9d5a81a7cc205267ca63554403eb57f13420302e2f39bfad7f25') - version('0.6.1', sha256='0d366228b7b37b0266184161cc7ea1ce58f60199f6ec9451985149ea873774be') - version('0.6.0', sha256='f5d783520cb4c30595c3bc509065e30fc292ec7cfb57045141eae77c518bcdb0') - - depends_on('python@2.6:') - - depends_on('py-setuptools', type='build') - depends_on('java', type=('build', 'run')) - # extra requirements - # depends_on('py-numpy@1.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jpype1/package.py b/var/spack/repos/builtin/packages/py-jpype1/package.py new file mode 100644 index 0000000000..0d8ccd7e97 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jpype1/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 PyJpype1(PythonPackage): + """JPype is an effort to allow python programs full access to java class + libraries.""" + + homepage = "https://github.com/originell/jpype" + url = "https://pypi.io/packages/source/J/JPype1/JPype1-0.6.2.tar.gz" + + version('0.6.2', sha256='99206412d80b9d5a81a7cc205267ca63554403eb57f13420302e2f39bfad7f25') + version('0.6.1', sha256='0d366228b7b37b0266184161cc7ea1ce58f60199f6ec9451985149ea873774be') + version('0.6.0', sha256='f5d783520cb4c30595c3bc509065e30fc292ec7cfb57045141eae77c518bcdb0') + + depends_on('python@2.6:') + + depends_on('py-setuptools', type='build') + depends_on('java', type=('build', 'run')) + # extra requirements + # depends_on('py-numpy@1.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jsonpatch/package.py b/var/spack/repos/builtin/packages/py-jsonpatch/package.py index b9e60c9a88..6c374ac169 100644 --- a/var/spack/repos/builtin/packages/py-jsonpatch/package.py +++ b/var/spack/repos/builtin/packages/py-jsonpatch/package.py @@ -10,9 +10,9 @@ class PyJsonpatch(PythonPackage): """Library to apply JSON Patches according to RFC 6902""" homepage = "https://github.com/stefankoegl/python-json-patch" - url = "https://github.com/stefankoegl/python-json-patch/archive/v1.23.tar.gz" + url = "https://pypi.io/packages/source/j/jsonpatch/jsonpatch-1.23.tar.gz" - version('1.23', sha256='0af03651204ea3049bc4aedaa42b591e134a4ee16e421f9c5f3ac4e9092885ad') + version('1.23', sha256='49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9') depends_on('py-setuptools', type='build') depends_on('py-jsonpointer@1.9', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jsonpointer/package.py b/var/spack/repos/builtin/packages/py-jsonpointer/package.py index 9e33b53b0d..99bd34913b 100644 --- a/var/spack/repos/builtin/packages/py-jsonpointer/package.py +++ b/var/spack/repos/builtin/packages/py-jsonpointer/package.py @@ -10,8 +10,8 @@ class PyJsonpointer(PythonPackage): """Library to resolve JSON Pointers according to RFC 6901""" homepage = "https://github.com/stefankoegl/python-json-pointer" - url = "https://github.com/stefankoegl/python-json-pointer/archive/v2.0.tar.gz" + url = "https://pypi.io/packages/source/j/jsonpointer/jsonpointer-2.0.tar.gz" - version('2.0', sha256='9594b7574a3216c9994181e9db7566a5cafb4ab24956e554f2dba1bb39edecb2') + version('2.0', sha256='c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jupyter-client/package.py b/var/spack/repos/builtin/packages/py-jupyter-client/package.py index 1b69aa1e4e..ef66494661 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-client/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-client/package.py @@ -24,4 +24,4 @@ class PyJupyterClient(PythonPackage): depends_on('python@2.7:2.8,3.3:') depends_on('py-traitlets', type=('build', 'run')) depends_on('py-jupyter-core', type=('build', 'run')) - depends_on('py-zmq@13:', type=('build', 'run')) + depends_on('py-pyzmq@13:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py b/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py deleted file mode 100644 index 55c2f0f256..0000000000 --- a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py +++ /dev/null @@ -1,39 +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 PyJupyterNotebook(PythonPackage): - """Jupyter Interactive Notebook""" - - homepage = "https://github.com/jupyter/notebook" - url = "https://pypi.io/packages/source/n/notebook/notebook-4.2.3.tar.gz" - - version('4.2.3', sha256='39a9603d3fe88b60de2903680c965cf643acf2c16fb2c6bac1d905e1042b5851') - version('4.2.2', sha256='418ba230c9b2e7e739940cae9fb4625e10a63f038e9c95cf1a9b7a244256ba38') - version('4.2.1', sha256='a49de524dabb99f214bdf2a58f26c7892650251a23a3669c6492fb180492e197') - version('4.2.0', sha256='e10c4916c77b48394796b5b1440d61d7b210f9941194048fe20ef88948016d84') - version('4.1.0', sha256='b597437ba33538221008e21fea71cd01eda9da1515ca3963d7c74e44f4b03d90') - version('4.0.6', sha256='f62e7a6afbc00bab3615b927595d27b1874cff3218bddcbab62f97f6dae567c3') - version('4.0.4', sha256='a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648') - version('4.0.2', sha256='8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a') - - variant('terminal', default=False, description="Enable terminal functionality") - - depends_on('python@2.7:2.8,3.3:') - depends_on('py-jinja2', type=('build', 'run')) - depends_on('py-tornado@4:', type=('build', 'run')) - depends_on('py-ipython-genutils', type=('build', 'run')) - depends_on('py-traitlets', type=('build', 'run')) - depends_on('py-jupyter-core', type=('build', 'run')) - depends_on('py-jupyter-client', type=('build', 'run')) - depends_on('py-jupyter-console', type=('build', 'run')) - depends_on('py-nbformat', type=('build', 'run')) - depends_on('py-nbconvert', type=('build', 'run')) - depends_on('py-ipykernel', type=('build', 'run')) - depends_on('py-ipykernel@5.1.0:', when='@4.2.0:', type=('build', 'run')) - depends_on('py-terminado@0.3.3:', when="+terminal", type=('build', 'run')) - depends_on('py-ipywidgets', when="+terminal", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyterhub/package.py b/var/spack/repos/builtin/packages/py-jupyterhub/package.py index 2b3e39a389..0ada619352 100644 --- a/var/spack/repos/builtin/packages/py-jupyterhub/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterhub/package.py @@ -31,5 +31,5 @@ class PyJupyterhub(PythonPackage): depends_on('py-oauthlib@3.0:', when='@1.0.0:', type=('build', 'run')) depends_on('py-python-oauth2@1.0:', when='@:9.4', type=('build', 'run')) depends_on('py-pamela', type=('build', 'run')) - depends_on('py-jupyter-notebook', type=('build', 'run')) + depends_on('py-notebook', type=('build', 'run')) depends_on('py-prometheus-client@0.0.21:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-lru-dict/package.py b/var/spack/repos/builtin/packages/py-lru-dict/package.py new file mode 100644 index 0000000000..a3bd6c023f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-lru-dict/package.py @@ -0,0 +1,19 @@ +# 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 PyLruDict(PythonPackage): + """A fast LRU cache""" + + homepage = "https://github.com/amitdev/lru-dict" + url = "https://pypi.io/packages/source/l/lru-dict/lru-dict-1.1.6.tar.gz" + + version('1.1.6', sha256='365457660e3d05b76f1aba3e0f7fedbfcd6528e97c5115a351ddd0db488354cc') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type=('build')) diff --git a/var/spack/repos/builtin/packages/py-lrudict/package.py b/var/spack/repos/builtin/packages/py-lrudict/package.py deleted file mode 100644 index 79c3550219..0000000000 --- a/var/spack/repos/builtin/packages/py-lrudict/package.py +++ /dev/null @@ -1,19 +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 PyLrudict(PythonPackage): - """ A fast LRU cache""" - - homepage = "https://github.com/amitdev/lru-dict" - url = "https://pypi.io/packages/source/l/lru-dict/lru-dict-1.1.6.tar.gz" - - version('1.1.6', sha256='365457660e3d05b76f1aba3e0f7fedbfcd6528e97c5115a351ddd0db488354cc') - - depends_on('python@2.7:') - depends_on('py-setuptools', type=('build')) diff --git a/var/spack/repos/builtin/packages/py-macholib/package.py b/var/spack/repos/builtin/packages/py-macholib/package.py index 4f730733c8..368aba2ec1 100644 --- a/var/spack/repos/builtin/packages/py-macholib/package.py +++ b/var/spack/repos/builtin/packages/py-macholib/package.py @@ -10,7 +10,7 @@ class PyMacholib(PythonPackage): """Python package for Mach-O header analysis and editing""" homepage = "https://pypi.python.org/pypi/macholib" - url = "https://pypi.io/packages/source/m/macholib/macholib-1.8.tar.gz" + url = "https://pypi.io/packages/source/m/macholib/macholib-1.11.tar.gz" version('1.11', 'c4180ffc6f909bf8db6cd81cff4b6f601d575568f4d5dee148c830e9851eb9db') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index a53c2c892b..dfefbf0175 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -113,7 +113,7 @@ class PyMatplotlib(PythonPackage): # Optional dependencies depends_on('ffmpeg', when='+movies') # depends_on('libav', when='+movies') - depends_on('image-magick', when='+animation') + depends_on('imagemagick', when='+animation') depends_on('py-pillow@3.4:', when='+image', type=('build', 'run')) depends_on('texlive', when='+latex', type='run') depends_on('ghostscript@0.9:', when='+latex', type='run') diff --git a/var/spack/repos/builtin/packages/py-meep/package.py b/var/spack/repos/builtin/packages/py-meep/package.py deleted file mode 100644 index 81a219145f..0000000000 --- a/var/spack/repos/builtin/packages/py-meep/package.py +++ /dev/null @@ -1,73 +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 PyMeep(PythonPackage): - """Python-meep is a wrapper around libmeep. It allows the scripting of - Meep-simulations with Python""" - - homepage = "https://launchpad.net/python-meep" - url = "https://launchpad.net/python-meep/1.4/1.4/+download/python-meep-1.4.2.tar" - - version('1.4.2', sha256='d91428aa4727c308383cea31ca9cdacee409320c686e9a8368769933e56c8762') - - variant('mpi', default=True, description='Enable MPI support') - - depends_on('py-numpy', type=('build', 'run')) - depends_on('py-scipy', type=('build', 'run')) - depends_on('py-matplotlib', type=('build', 'run')) - - depends_on('mpi', when='+mpi') - depends_on('meep~mpi', when='~mpi') - depends_on('meep+mpi', when='+mpi') - - # As of SWIG 3.0.3, Python-style comments are now treated as - # pre-processor directives. Use older SWIG. But not too old, - # or else it can't handle newer C++ compilers and flags. - depends_on('swig@1.3.39:3.0.2') - - phases = ['clean', 'build_ext', 'install', 'bdist'] - - def setup_file(self): - return 'setup-mpi.py' if '+mpi' in self.spec else 'setup.py' - - def common_args(self, spec, prefix): - include_dirs = [ - spec['meep'].prefix.include, - os.path.join( - spec['py-numpy'].prefix, - spec['python'].package.python_include_dir - ) - ] - - library_dirs = [ - spec['meep'].prefix.lib - ] - - if '+mpi' in spec: - include_dirs.append(spec['mpi'].prefix.include) - library_dirs.append(spec['mpi'].prefix.lib) - - include_flags = '-I{0}'.format(','.join(include_dirs)) - library_flags = '-L{0}'.format(','.join(library_dirs)) - - # FIXME: For some reason, this stopped working. - # The -I and -L are no longer being properly forwarded to setup.py: - # meep_common.i:87: Error: Unable to find 'meep/mympi.hpp' - # meep_common.i:88: Error: Unable to find 'meep/vec.hpp' - # meep_common.i:89: Error: Unable to find 'meep.hpp' - - return [include_flags, library_flags] - - def clean_args(self, spec, prefix): - return ['--all'] - - def build_ext_args(self, spec, prefix): - return self.common_args(spec, prefix) - - def bdist_args(self, spec, prefix): - return self.common_args(spec, prefix) diff --git a/var/spack/repos/builtin/packages/py-methylcode/package.py b/var/spack/repos/builtin/packages/py-methylcode/package.py index 512d1f2d01..53b9292edf 100644 --- a/var/spack/repos/builtin/packages/py-methylcode/package.py +++ b/var/spack/repos/builtin/packages/py-methylcode/package.py @@ -11,15 +11,13 @@ class PyMethylcode(PythonPackage): reads and outputs per-base methylation data. """ homepage = "https://github.com/brentp/methylcode" - url = "https://github.com/brentp/methylcode/archive/master.zip" + git = "https://github.com/brentp/methylcode.git" - version('1.0.0', sha256='30f707a690a887e3161c8debba3c322bd313865df40212275b02203c52a416ae') + version('master', branch='master') - depends_on('python@2.7.0:2.7.999') - depends_on('py-six') - depends_on('py-setuptools') + depends_on('python@2.6:2.8', type=('build', 'run')) + depends_on('py-setuptools', type='build') depends_on('py-numpy') - depends_on('py-pyparsing') depends_on('py-pyfasta') depends_on('py-bsddb3') depends_on('bowtie') diff --git a/var/spack/repos/builtin/packages/py-mongo/package.py b/var/spack/repos/builtin/packages/py-mongo/package.py deleted file mode 100644 index 117c59cf70..0000000000 --- a/var/spack/repos/builtin/packages/py-mongo/package.py +++ /dev/null @@ -1,20 +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 PyMongo(PythonPackage): - """Python driver for MongoDB """ - - homepage = "http://github.com/mongodb/mongo-python-driver" - url = "https://pypi.io/packages/source/p/pymongo/pymongo-3.6.0.tar.gz" - - version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8') - version('3.3.0', sha256='3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e') - - depends_on('python@2.6:2.8,3.3:') - - depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py new file mode 100644 index 0000000000..07000af952 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py @@ -0,0 +1,26 @@ +# 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 PyMysqlConnectorPython(PythonPackage): + """MySQL Connector/Python is implementing the MySQL Client/Server + protocol completely in Python. No MySQL libraries are needed, and + no compilation is necessary to run this Python DB API v2.0 + compliant driver.""" + + homepage = "https://github.com/mysql/mysql-connector-python" + url = "https://github.com/mysql/mysql-connector-python/archive/8.0.13.tar.gz" + git = "https://github.com/mysql/mysql-connector-python.git" + + version('8.0.13', sha256='d4c0834c583cdb90c0aeae90b1917d58355a4bf9b0266c16fd58874a5607f9d4') + + # Fix `error: option --single-version-externally-managed not recognized` + # https://github.com/mysql/mysql-connector-python/pull/9 + patch('single-version.patch') + + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-protobuf@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch b/var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch new file mode 100644 index 0000000000..27cf5e5d22 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch @@ -0,0 +1,22 @@ +diff --git a/lib/cpy_distutils.py b/lib/cpy_distutils.py +index a9132e5..3cffee6 100644 +--- a/lib/cpy_distutils.py ++++ b/lib/cpy_distutils.py +@@ -29,9 +29,14 @@ + """Implements the DistUtils command 'build_ext' + """ + +-from distutils.command.build_ext import build_ext +-from distutils.command.install import install +-from distutils.command.install_lib import install_lib ++try: ++ from setuptools.command.build_ext import build_ext ++ from setuptools.command.install import install ++ from setuptools.command.install_lib import install_lib ++except ImportError: ++ from distutils.command.build_ext import build_ext ++ from distutils.command.install import install ++ from distutils.command.install_lib import install_lib + from distutils.errors import DistutilsExecError + from distutils.util import get_platform + from distutils.version import LooseVersion diff --git a/var/spack/repos/builtin/packages/py-mysql-connector/package.py b/var/spack/repos/builtin/packages/py-mysql-connector/package.py deleted file mode 100644 index e3e04280c4..0000000000 --- a/var/spack/repos/builtin/packages/py-mysql-connector/package.py +++ /dev/null @@ -1,26 +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 PyMysqlConnector(PythonPackage): - """MySQL Connector/Python is implementing the MySQL Client/Server - protocol completely in Python. No MySQL libraries are needed, and - no compilation is necessary to run this Python DB API v2.0 - compliant driver.""" - - homepage = "https://github.com/mysql/mysql-connector-python" - url = "https://github.com/mysql/mysql-connector-python/archive/8.0.13.tar.gz" - git = "https://github.com/mysql/mysql-connector-python.git" - - version('8.0.13', sha256='d4c0834c583cdb90c0aeae90b1917d58355a4bf9b0266c16fd58874a5607f9d4') - - # Fix `error: option --single-version-externally-managed not recognized` - # https://github.com/mysql/mysql-connector-python/pull/9 - patch('single-version.patch') - - depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-protobuf@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch b/var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch deleted file mode 100644 index 27cf5e5d22..0000000000 --- a/var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/lib/cpy_distutils.py b/lib/cpy_distutils.py -index a9132e5..3cffee6 100644 ---- a/lib/cpy_distutils.py -+++ b/lib/cpy_distutils.py -@@ -29,9 +29,14 @@ - """Implements the DistUtils command 'build_ext' - """ - --from distutils.command.build_ext import build_ext --from distutils.command.install import install --from distutils.command.install_lib import install_lib -+try: -+ from setuptools.command.build_ext import build_ext -+ from setuptools.command.install import install -+ from setuptools.command.install_lib import install_lib -+except ImportError: -+ from distutils.command.build_ext import build_ext -+ from distutils.command.install import install -+ from distutils.command.install_lib import install_lib - from distutils.errors import DistutilsExecError - from distutils.util import get_platform - from distutils.version import LooseVersion diff --git a/var/spack/repos/builtin/packages/py-netcdf4/package.py b/var/spack/repos/builtin/packages/py-netcdf4/package.py index ef9bbafad1..f76b6067b6 100644 --- a/var/spack/repos/builtin/packages/py-netcdf4/package.py +++ b/var/spack/repos/builtin/packages/py-netcdf4/package.py @@ -22,15 +22,15 @@ class PyNetcdf4(PythonPackage): depends_on('py-numpy@1.7:', type=('build', 'run')) depends_on('py-cftime', type=('build', 'run')) - depends_on('netcdf') + depends_on('netcdf-c') depends_on('hdf5@1.8.0:+hl') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): """Ensure installed netcdf and hdf5 libraries are used""" # Explicitly set these variables so setup.py won't erroneously pick up # system versions - spack_env.set('USE_SETUPCFG', '0') - spack_env.set('HDF5_INCDIR', self.spec['hdf5'].prefix.include) - spack_env.set('HDF5_LIBDIR', self.spec['hdf5'].prefix.lib) - spack_env.set('NETCDF4_INCDIR', self.spec['netcdf'].prefix.include) - spack_env.set('NETCDF4_LIBDIR', self.spec['netcdf'].prefix.lib) + env.set('USE_SETUPCFG', '0') + env.set('HDF5_INCDIR', self.spec['hdf5'].prefix.include) + env.set('HDF5_LIBDIR', self.spec['hdf5'].prefix.lib) + env.set('NETCDF4_INCDIR', self.spec['netcdf-c'].prefix.include) + env.set('NETCDF4_LIBDIR', self.spec['netcdf-c'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/py-notebook/package.py b/var/spack/repos/builtin/packages/py-notebook/package.py new file mode 100644 index 0000000000..4eb62b3ac8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-notebook/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 PyNotebook(PythonPackage): + """Jupyter Interactive Notebook""" + + homepage = "https://github.com/jupyter/notebook" + url = "https://pypi.io/packages/source/n/notebook/notebook-4.2.3.tar.gz" + + version('4.2.3', sha256='39a9603d3fe88b60de2903680c965cf643acf2c16fb2c6bac1d905e1042b5851') + version('4.2.2', sha256='418ba230c9b2e7e739940cae9fb4625e10a63f038e9c95cf1a9b7a244256ba38') + version('4.2.1', sha256='a49de524dabb99f214bdf2a58f26c7892650251a23a3669c6492fb180492e197') + version('4.2.0', sha256='e10c4916c77b48394796b5b1440d61d7b210f9941194048fe20ef88948016d84') + version('4.1.0', sha256='b597437ba33538221008e21fea71cd01eda9da1515ca3963d7c74e44f4b03d90') + version('4.0.6', sha256='f62e7a6afbc00bab3615b927595d27b1874cff3218bddcbab62f97f6dae567c3') + version('4.0.4', sha256='a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648') + version('4.0.2', sha256='8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a') + + variant('terminal', default=False, description="Enable terminal functionality") + + depends_on('python@2.7:2.8,3.3:') + depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-tornado@4:', type=('build', 'run')) + depends_on('py-ipython-genutils', type=('build', 'run')) + depends_on('py-traitlets', type=('build', 'run')) + depends_on('py-jupyter-core', type=('build', 'run')) + depends_on('py-jupyter-client', type=('build', 'run')) + depends_on('py-jupyter-console', type=('build', 'run')) + depends_on('py-nbformat', type=('build', 'run')) + depends_on('py-nbconvert', type=('build', 'run')) + depends_on('py-ipykernel', type=('build', 'run')) + depends_on('py-ipykernel@5.1.0:', when='@4.2.0:', type=('build', 'run')) + depends_on('py-terminado@0.3.3:', when="+terminal", type=('build', 'run')) + depends_on('py-ipywidgets', when="+terminal", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-opentuner/package.py b/var/spack/repos/builtin/packages/py-opentuner/package.py index 5c34fbfab7..f8f2347692 100644 --- a/var/spack/repos/builtin/packages/py-opentuner/package.py +++ b/var/spack/repos/builtin/packages/py-opentuner/package.py @@ -18,7 +18,7 @@ class PyOpentuner(PythonPackage): depends_on('python@2.7:2.8', type=('build', 'run')) depends_on('py-argparse@1.2.1:', type=('build', 'run')) - depends_on('py-fn@0.2.12:', type=('build', 'run')) + depends_on('py-fn-py@0.2.12:', type=('build', 'run')) depends_on('py-numpy@1.8.0:', type=('build', 'run')) depends_on('py-pysqlite@2.6.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-perf/package.py b/var/spack/repos/builtin/packages/py-perf/package.py deleted file mode 100644 index 2d2c025691..0000000000 --- a/var/spack/repos/builtin/packages/py-perf/package.py +++ /dev/null @@ -1,20 +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 PyPerf(PythonPackage): - """The Python perf module is a toolkit to write, run and - analyze benchmarks. - """ - - homepage = "https://pypi.python.org/pypi/pyperf" - url = "https://github.com/vstinner/pyperf/archive/1.5.1.tar.gz" - - version('1.5.1', sha256='9c271862bc2911be8eb01031a4a86cbc3f5bb615971514383802d3dcf46f18ed') - - depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-performance/package.py b/var/spack/repos/builtin/packages/py-performance/package.py index 9abc3c4d48..0be0b0b5ba 100644 --- a/var/spack/repos/builtin/packages/py-performance/package.py +++ b/var/spack/repos/builtin/packages/py-performance/package.py @@ -22,4 +22,4 @@ class PyPerformance(PythonPackage): depends_on('py-setuptools', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - depends_on('py-perf', type=('build', 'run')) + depends_on('py-pyperf', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-plotly/package.py b/var/spack/repos/builtin/packages/py-plotly/package.py index cd315180ed..6bf5ea9da0 100644 --- a/var/spack/repos/builtin/packages/py-plotly/package.py +++ b/var/spack/repos/builtin/packages/py-plotly/package.py @@ -10,9 +10,9 @@ class PyPlotly(PythonPackage): """An interactive, browser-based graphing library for Python""" homepage = "https://plot.ly/python/" - url = "https://github.com/plotly/plotly.py/archive/v2.2.0.tar.gz" + url = "https://pypi.io/packages/source/p/plotly/plotly-2.2.0.tar.gz" - version('2.2.0', sha256='dad2a49fe355dddb6ae159e96c10ac22413a33cbac513b4dbf3791e63ec33c1f') + version('2.2.0', sha256='ca668911ffb4d11fed6d7fbb12236f8ecc6a7209db192326bcb64bdb41451a58') depends_on('py-setuptools', type='build') depends_on('py-requests@2.3.0', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py new file mode 100644 index 0000000000..c4278bf678 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py @@ -0,0 +1,17 @@ +# 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 PyPyCpuinfo(PythonPackage): + """Get CPU info with pure Python 2 & 3""" + + homepage = "https://github.com/workhorsy/py-cpuinfo" + url = "https://pypi.io/packages/source/p/py-cpuinfo/py-cpuinfo-0.2.3.tar.gz" + + version('0.2.3', sha256='f6a016fdbc4e7fadf2d519090fcb4fa9d0831bad4e85245d938e5c2fe7623ca6') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pygit2/package.py b/var/spack/repos/builtin/packages/py-pygit2/package.py new file mode 100644 index 0000000000..216c61a74f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygit2/package.py @@ -0,0 +1,31 @@ +# 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 PyPygit2(PythonPackage): + """Pygit2 is a set of Python bindings to the libgit2 shared library, + libgit2 implements the core of Git. + """ + + homepage = "http://www.pygit2.org/" + url = "https://pypi.io/packages/source/p/pygit2/pygit2-0.24.1.tar.gz" + + version('0.24.1', sha256='4d1d0196b38d6012faf0a7c45e235c208315672b6035da504566c605ba494064') + + extends('python') + depends_on('py-setuptools', type='build') + # Version must match with libgit2 + # See: http://www.pygit2.org/install.html + depends_on('libgit2@0.24:', when='@0.24:') + depends_on('py-six', type=('build', 'run')) + depends_on('py-cffi', type=('build', 'run')) + + def setup_build_environment(self, env): + spec = self.spec + # http://www.pygit2.org/install.html + env.set('LIBGIT2', spec['libgit2'].prefix) + env.set('LIBGIT2_LIB', spec['libgit2'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/py-pygpu/package.py b/var/spack/repos/builtin/packages/py-pygpu/package.py index 3675482b08..84182e5a43 100644 --- a/var/spack/repos/builtin/packages/py-pygpu/package.py +++ b/var/spack/repos/builtin/packages/py-pygpu/package.py @@ -28,4 +28,4 @@ class PyPygpu(PythonPackage): depends_on('py-nose', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) depends_on('py-mako', type=('build', 'run')) - depends_on('libcheck') + depends_on('check') diff --git a/var/spack/repos/builtin/packages/py-pyke/package.py b/var/spack/repos/builtin/packages/py-pyke/package.py index e003dbc981..c2fdbe69f1 100644 --- a/var/spack/repos/builtin/packages/py-pyke/package.py +++ b/var/spack/repos/builtin/packages/py-pyke/package.py @@ -13,8 +13,8 @@ class PyPyke(PythonPackage): """ homepage = "http://sourceforge.net/projects/pyke" - url = "https://downloads.sourceforge.net/pyke/pyke3-1.1.1.zip" + url = "https://sourceforge.net/projects/pyke/files/pyke/1.1.1/pyke-1.1.1.zip" - version('1.1.1', sha256='b877b390e70a2eacc01d97c3a992fde947276afc2798ca3ac6c6f74c796cb6dc') + version('1.1.1', sha256='b0b294f435c6e6d2d4a80badf57d92cb66814dfe21e644a521901209e6a3f8ae') - depends_on('python@3:') + depends_on('python@3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pymongo/package.py b/var/spack/repos/builtin/packages/py-pymongo/package.py index 8e28001e4c..3f52238dfd 100644 --- a/var/spack/repos/builtin/packages/py-pymongo/package.py +++ b/var/spack/repos/builtin/packages/py-pymongo/package.py @@ -19,6 +19,8 @@ class PyPymongo(PythonPackage): url = "https://pypi.io/packages/source/p/pymongo/pymongo-3.9.0.tar.gz" version('3.9.0', sha256='4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3') + version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8') + version('3.3.0', sha256='3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pynio/package.py b/var/spack/repos/builtin/packages/py-pynio/package.py index d6d4076554..d1d489a1ba 100644 --- a/var/spack/repos/builtin/packages/py-pynio/package.py +++ b/var/spack/repos/builtin/packages/py-pynio/package.py @@ -27,7 +27,7 @@ class PyPynio(PythonPackage): # Spack does not currently have netcdf below 4.x, and 3.x is a # fundamentally different format. So, currently this is only providing # support for netcdf4. - depends_on('netcdf@3.6.0:') + depends_on('netcdf-c@3.6.0:') # Turning on the hdf (i.e. hdf4) dependency causes it not to build, with # compile errors that (weirdly) relate to the declarations of HDF5. @@ -50,22 +50,22 @@ class PyPynio(PythonPackage): depends_on('py-numpy', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): """ These environment variables are how the setup.py knows which options to turn on, and how to find them. """ - spack_env.set('F2CLIBS', 'gfortran') - spack_env.set('HAS_NETCDF4', '1') - spack_env.set('NETCDF4_PREFIX', self.spec['netcdf'].prefix) + env.set('F2CLIBS', 'gfortran') + env.set('HAS_NETCDF4', '1') + env.set('NETCDF4_PREFIX', self.spec['netcdf-c'].prefix) if '+hdf5' in self.spec: - spack_env.set('HAS_HDF5', '1') - spack_env.set('HDF5_PREFIX', self.spec['hdf5'].prefix) + env.set('HAS_HDF5', '1') + env.set('HDF5_PREFIX', self.spec['hdf5'].prefix) if '+gdal' in self.spec: - spack_env.set('HAS_GDAL', '1') - spack_env.set('GDAL_PREFIX', self.spec['gdal'].prefix) + env.set('HAS_GDAL', '1') + env.set('GDAL_PREFIX', self.spec['gdal'].prefix) # This one is trouble - see comments above. # if '+hdf4' in self.spec: -# spack_env.set('HAS_HDF4', '1') -# spack_env.set('HDF4_PREFIX', self.spec['hdf'].prefix) +# env.set('HAS_HDF4', '1') +# env.set('HDF4_PREFIX', self.spec['hdf'].prefix) diff --git a/var/spack/repos/builtin/packages/py-pyperf/package.py b/var/spack/repos/builtin/packages/py-pyperf/package.py new file mode 100644 index 0000000000..53106bb468 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyperf/package.py @@ -0,0 +1,20 @@ +# 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 PyPyperf(PythonPackage): + """The Python perf module is a toolkit to write, run and + analyze benchmarks. + """ + + homepage = "https://pypi.python.org/pypi/pyperf" + url = "https://github.com/vstinner/pyperf/archive/1.5.1.tar.gz" + + version('1.5.1', sha256='9c271862bc2911be8eb01031a4a86cbc3f5bb615971514383802d3dcf46f18ed') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-igraph/package.py b/var/spack/repos/builtin/packages/py-python-igraph/package.py new file mode 100644 index 0000000000..7812983c21 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-igraph/package.py @@ -0,0 +1,19 @@ +# 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 PyPythonIgraph(PythonPackage): + """igraph is a collection of network analysis tools with the emphasis on + efficiency, portability and ease of use.""" + + homepage = "http://igraph.org/" + url = "http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz" + + version('0.7.0', sha256='64ac270e80a92066d489407be1900a329df8e26844430f941ecc88771188c471') + + depends_on('py-setuptools', type='build') + depends_on('igraph') diff --git a/var/spack/repos/builtin/packages/py-python-meep/package.py b/var/spack/repos/builtin/packages/py-python-meep/package.py new file mode 100644 index 0000000000..4eedd1ef17 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-meep/package.py @@ -0,0 +1,73 @@ +# 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 PyPythonMeep(PythonPackage): + """Python-meep is a wrapper around libmeep. It allows the scripting of + Meep-simulations with Python""" + + homepage = "https://launchpad.net/python-meep" + url = "https://launchpad.net/python-meep/1.4/1.4/+download/python-meep-1.4.2.tar" + + version('1.4.2', sha256='d91428aa4727c308383cea31ca9cdacee409320c686e9a8368769933e56c8762') + + variant('mpi', default=True, description='Enable MPI support') + + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-matplotlib', type=('build', 'run')) + + depends_on('mpi', when='+mpi') + depends_on('meep~mpi', when='~mpi') + depends_on('meep+mpi', when='+mpi') + + # As of SWIG 3.0.3, Python-style comments are now treated as + # pre-processor directives. Use older SWIG. But not too old, + # or else it can't handle newer C++ compilers and flags. + depends_on('swig@1.3.39:3.0.2') + + phases = ['clean', 'build_ext', 'install', 'bdist'] + + def setup_file(self): + return 'setup-mpi.py' if '+mpi' in self.spec else 'setup.py' + + def common_args(self, spec, prefix): + include_dirs = [ + spec['meep'].prefix.include, + os.path.join( + spec['py-numpy'].prefix, + spec['python'].package.python_include_dir + ) + ] + + library_dirs = [ + spec['meep'].prefix.lib + ] + + if '+mpi' in spec: + include_dirs.append(spec['mpi'].prefix.include) + library_dirs.append(spec['mpi'].prefix.lib) + + include_flags = '-I{0}'.format(','.join(include_dirs)) + library_flags = '-L{0}'.format(','.join(library_dirs)) + + # FIXME: For some reason, this stopped working. + # The -I and -L are no longer being properly forwarded to setup.py: + # meep_common.i:87: Error: Unable to find 'meep/mympi.hpp' + # meep_common.i:88: Error: Unable to find 'meep/vec.hpp' + # meep_common.i:89: Error: Unable to find 'meep.hpp' + + return [include_flags, library_flags] + + def clean_args(self, spec, prefix): + return ['--all'] + + def build_ext_args(self, spec, prefix): + return self.common_args(spec, prefix) + + def bdist_args(self, spec, prefix): + return self.common_args(spec, prefix) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 980d5fae51..39b5b7f516 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -8,8 +8,9 @@ from spack import * class PyPyyaml(PythonPackage): """PyYAML is a YAML parser and emitter for Python.""" + homepage = "http://pyyaml.org/wiki/PyYAML" - url = "http://pyyaml.org/download/pyyaml/PyYAML-5.1.2.tar.gz" + url = "https://pypi.io/packages/source/P/PyYAML/PyYAML-5.1.2.tar.gz" version('5.1.2', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') version('3.13', sha256='3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf') diff --git a/var/spack/repos/builtin/packages/py-pyzmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py new file mode 100644 index 0000000000..e3e3944e2d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyzmq/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 PyPyzmq(PythonPackage): + """PyZMQ: Python bindings for zeromq.""" + homepage = "https://github.com/zeromq/pyzmq" + url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz" + + version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45') + version('16.0.2', sha256='717dd902c3cf432b1c68e7b299ad028b0de0d0a823858e440b81d5f1baa2b1c1') + version('14.7.0', sha256='809a5fcc720d286c840f7f64696e60322b5b2544795a73db626f09b344d16a15') + + depends_on('py-cython@0.16:', type=('build', 'run')) + depends_on('py-py', type=('build', 'run')) + depends_on('py-cffi', type=('build', 'run')) + depends_on('libzmq') diff --git a/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py b/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py index c6e25d373e..875563f260 100644 --- a/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py +++ b/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py @@ -11,10 +11,10 @@ class PyRequestsToolbelt(PythonPackage): python-requests""" homepage = "https://toolbelt.readthedocs.org/" - url = "https://github.com/requests/toolbelt/archive/0.9.1.tar.gz" + url = "https://pypi.io/packages/source/r/requests-toolbelt/requests-toolbelt-0.9.1.tar.gz" - version('0.9.1', sha256='c8e68e537e87ae088e3a0eb6d80ed5b7cf5d6df503d0e843e0a5e47283db487b') - version('0.8.0', sha256='f151c07e88148dc05b6f31cc75dfb7a6770968e4a5c8e6690325eed4e79160a1') + version('0.9.1', sha256='968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0') + version('0.8.0', sha256='f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5') depends_on('py-setuptools', type='build') depends_on('py-requests@2.0.1:2.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-scoop/package.py b/var/spack/repos/builtin/packages/py-scoop/package.py index b26140c384..0c9cf81e3e 100644 --- a/var/spack/repos/builtin/packages/py-scoop/package.py +++ b/var/spack/repos/builtin/packages/py-scoop/package.py @@ -19,4 +19,4 @@ class PyScoop(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-greenlet@0.3.4:', type=('build', 'run')) - depends_on('py-zmq@13.1.0:', type=('build', 'run')) + depends_on('py-pyzmq@13.1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py index 0781ea59f3..34100e15d6 100644 --- a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py @@ -10,9 +10,9 @@ class PySphinxautomodapi(PythonPackage): """Provides Sphinx directives to autogenerate API documentation pages""" homepage = "https://sphinx-automodapi.readthedocs.io/en/latest/" - url = "https://github.com/astropy/sphinx-automodapi/archive/v0.9.tar.gz" + url = "https://pypi.io/packages/source/s/sphinx-automodapi/sphinx-automodapi-0.9.tar.gz" - version('0.9', sha256='017817812e9266319fdcfcc89ddfbe570935ca87a3bda62d61c8507cf1337aa8') + version('0.9', sha256='71a69e1a7ab8d849f416d7431db854d7b1925f749ba6345bc7d88f288892871d') depends_on('py-setuptools', type='build') depends_on('py-sphinx@1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-spyder/package.py b/var/spack/repos/builtin/packages/py-spyder/package.py index 607a52393b..c8e48ec2a7 100644 --- a/var/spack/repos/builtin/packages/py-spyder/package.py +++ b/var/spack/repos/builtin/packages/py-spyder/package.py @@ -39,6 +39,6 @@ class PySpyder(PythonPackage): # to pick up webkit, but this is the easier solution (see #9207) depends_on('qt+webkit', type=('build', 'run')) depends_on('py-pickleshare', type=('build', 'run')) - depends_on('py-zmq', type=('build', 'run')) + depends_on('py-pyzmq', type=('build', 'run')) depends_on('py-chardet@2.0.0:', type=('build', 'run')) depends_on('py-numpydoc', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py index 3e3664f075..33953c4b9e 100644 --- a/var/spack/repos/builtin/packages/py-symengine/package.py +++ b/var/spack/repos/builtin/packages/py-symengine/package.py @@ -10,14 +10,14 @@ class PySymengine(PythonPackage): """Python wrappers for SymEngine, a symbolic manipulation library.""" homepage = "https://github.com/symengine/symengine.py" - url = "https://github.com/symengine/symengine.py/archive/v0.2.0.tar.gz" + url = "https://pypi.io/packages/source/s/symengine/symengine-0.2.0.tar.gz" git = "https://github.com/symengine/symengine.py.git" version('develop', branch='master') - version('0.2.0', sha256='8f6468137baa7f799e047dd0b9149c4017d8d32e755f1e0329209680879c1f8f') + version('0.2.0', sha256='78a14aea7aad5e7cbfb5cabe141581f9bba30e3c319690e5db8ad99fdf2d8885') # Build dependencies - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-cython@0.19.1:', type='build') depends_on('cmake@2.8.7:', type='build') diff --git a/var/spack/repos/builtin/packages/py-tables/package.py b/var/spack/repos/builtin/packages/py-tables/package.py index 2fcb494c6c..c6476692d8 100644 --- a/var/spack/repos/builtin/packages/py-tables/package.py +++ b/var/spack/repos/builtin/packages/py-tables/package.py @@ -11,18 +11,17 @@ class PyTables(PythonPackage): efficiently and easily cope with extremely large amounts of data.""" homepage = "http://www.pytables.org/" - url = "https://github.com/PyTables/PyTables/archive/v3.6.0.tar.gz" + url = "https://pypi.io/packages/source/t/tables/tables-3.6.0.tar.gz" import_modules = [ 'tables', 'tables.misc', 'tables.nodes', 'tables.scripts' ] - version('3.6.0', sha256='2dcd077f42b195f48aa00f5a720b79189ea92fba0d16ad35e2881e403ba6914e') - version('3.5.2', sha256='e4fc6f1194f02a8b10ff923e77364fb70710592f620d7de35f4d4e064dc70e91') - version('3.4.4', sha256='c9682c0f35d8175e12bbd38d925bdb606d47b7c8e358ba056a9dbf3b1f183114') - version('3.3.0', sha256='dceb15fef556a2775121bcc695561df4ff0e09248e0ce3a2d58f5244a9f61421') - version('3.2.2', sha256='2626e874caa6b3fcf2bfc28b9dd6a40a3f859c72e19ce0764a60a6d77e350008', - url='https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz') + version('3.6.0', sha256='db3488214864fb313a611fca68bf1c9019afe4e7877be54d0e61c84416603d4d') + version('3.5.2', sha256='b220e32262bab320aa41d33125a7851ff898be97c0de30b456247508e2cc33c2') + version('3.4.4', sha256='bdc5c073712af2a43babd139c4855fc99496bb2c3f3f5d1b4770a985e6f9ce29') + version('3.3.0', sha256='8383ccf02e041a5d55494a09fc5514140b4653055a2732c981b5fd0f7408822c') + version('3.2.2', sha256='3564b351a71ec1737b503b001eb7ceae1f65d5d6e3ffe1ea75aafba10f37fa84') variant('zlib', default=True, description='Support for zlib compression') variant('bzip2', default=False, description='Support for bzip2 compression') diff --git a/var/spack/repos/builtin/packages/py-tap-py/package.py b/var/spack/repos/builtin/packages/py-tap-py/package.py new file mode 100644 index 0000000000..c0ece59fd6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tap-py/package.py @@ -0,0 +1,22 @@ +# 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 PyTapPy(PythonPackage): + """Python TAP interface module for unit tests""" + + homepage = "https://github.com/mblayman/tappy" + url = "https://pypi.io/packages/source/t/tap.py/tap.py-1.6.tar.gz" + + version('1.6', sha256='3ee315567cd1cf444501c405b7f7146ffdb2e630bac58d0840d378a3b9a0dbe4') + + extends('python', ignore='bin/nosetests|bin/pygmentize') + + depends_on('python@2.6:2.8,3.2:3.4') + depends_on('py-nose', type=('build', 'run')) + depends_on('py-pygments', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py deleted file mode 100644 index 1c97e7a763..0000000000 --- a/var/spack/repos/builtin/packages/py-tappy/package.py +++ /dev/null @@ -1,22 +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 PyTappy(PythonPackage): - """Python TAP interface module for unit tests""" - homepage = "https://github.com/mblayman/tappy" - # base https://pypi.python.org/pypi/cffi - url = "https://pypi.io/packages/source/t/tap.py/tap.py-1.6.tar.gz" - - version('1.6', sha256='3ee315567cd1cf444501c405b7f7146ffdb2e630bac58d0840d378a3b9a0dbe4') - - extends('python', ignore='bin/nosetests|bin/pygmentize') - - depends_on('python@2.6:2.8,3.2:3.4') - depends_on('py-nose', type=('build', 'run')) - depends_on('py-pygments', type=('build', 'run')) - depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-udunits/package.py b/var/spack/repos/builtin/packages/py-udunits/package.py deleted file mode 100644 index b7fb343439..0000000000 --- a/var/spack/repos/builtin/packages/py-udunits/package.py +++ /dev/null @@ -1,50 +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 * -import os - - -class PyUdunits(PythonPackage): - """The MetOffice cf_units Python interface to the UDUNITS-2 Library.""" - homepage = "https://github.com/SciTools/cf_units" - url = "https://github.com/SciTools/cf_units/archive/v1.1.3.tar.gz" - - version('1.1.3', sha256='cc27f4f06c99d242c36beb8dc5c517e1b1124a8c65ca3f76f372b9674aa320ba') - - maintainers = ['citibeth'] - - depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) - depends_on('py-netcdf4', type=('build', 'run')) - depends_on('udunits2') - - # See: https://github.com/SciTools/cf_units/blob/master/cf_units/etc/site.cfg.template - # udunits2_path = /path/to/libudunits2.so - # udunits2_xml_path = /path/to/udunits2.xml - site_cfg_template = """[System] -udunits2_path = %s -udunits2_xml_path = %s -""" - - @run_after('install') - def configure_template(self): - spec = self.spec - - cfg_templates = find(spec.prefix, ['site.cfg.template']) - if len(cfg_templates) != 1: - tty.die( - 'Found %d instances of site.cfg.template, wanted 1' % - len(cfg_templates)) - cfg_template = cfg_templates[0] - - cfg = os.path.join(os.path.split(cfg_template)[0], 'site.cfg') - - udunits2_xml_path = os.path.join( - spec['udunits2'].prefix, 'share', 'udunits', 'udunits2.xml') - - with open(cfg, 'w') as fout: - fout.write(self.site_cfg_template % - (spec['udunits2'].libs, udunits2_xml_path)) diff --git a/var/spack/repos/builtin/packages/py-wand/package.py b/var/spack/repos/builtin/packages/py-wand/package.py index ac4f82fd5b..fcecd5e663 100644 --- a/var/spack/repos/builtin/packages/py-wand/package.py +++ b/var/spack/repos/builtin/packages/py-wand/package.py @@ -20,7 +20,7 @@ class PyWand(PythonPackage): depends_on('py-setuptools', type='build') # provides libmagickwand - depends_on('image-magick') + depends_on('imagemagick') depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-sphinx@1:', type='build', when='+docs') diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py index 589e733c77..9ce05b1c35 100644 --- a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py +++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py @@ -16,4 +16,4 @@ class PyWidgetsnbextension(PythonPackage): depends_on('py-setuptools', type='build') depends_on('python@2.7:2.8,3.3:') - depends_on('py-jupyter-notebook@4.2.0:', type=('build', 'run')) + depends_on('py-notebook@4.2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-xdot/package.py b/var/spack/repos/builtin/packages/py-xdot/package.py index ecdc47e494..3f09fc6b32 100644 --- a/var/spack/repos/builtin/packages/py-xdot/package.py +++ b/var/spack/repos/builtin/packages/py-xdot/package.py @@ -11,12 +11,12 @@ class PyXdot(PythonPackage): dot language.""" homepage = "https://github.com/jrfonseca/xdot.py" - url = "https://github.com/jrfonseca/xdot.py/archive/0.9.tar.gz" + url = "https://pypi.io/packages/source/x/xdot/xdot-1.0.tar.gz" git = "https://github.com/jrfonseca/xdot.py.git" - version('master', branch="master") - version('1.0', sha256='a8594f94f43f938e01e42ff6015c7e00e3ee1a00c7f06d6287d8c939ffa94f76') - version('0.9', sha256='df7790db573d7a5512e6fa618d9051508c43cf64ca432d97c2207c87b6f20dbd') + version('master', branch='master') + version('1.0', sha256='7e067896d729af82f1fd0758e265f129944d469c30f550e3f15dbdb751cc42a1') + version('0.9', sha256='a33701664ecfefe7c7313a120a587e87334f3a566409bc451538fcde5edd6907') # setuptools is required at runtime to avoid: # No module named 'pkg_resources' @@ -46,17 +46,17 @@ class PyXdot(PythonPackage): python3 = spec['python'].command python3('-m', 'compileall', dst) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): spec = self.spec - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['pango'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['atk'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['gdk-pixbuf'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['gtkplus'].prefix.lib, - 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['pango'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['atk'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['gdk-pixbuf'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['gtkplus'].prefix.lib, + 'girepository-1.0')) diff --git a/var/spack/repos/builtin/packages/py-zmq/package.py b/var/spack/repos/builtin/packages/py-zmq/package.py deleted file mode 100644 index 7d2d783a7a..0000000000 --- a/var/spack/repos/builtin/packages/py-zmq/package.py +++ /dev/null @@ -1,21 +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 PyZmq(PythonPackage): - """PyZMQ: Python bindings for zeromq.""" - homepage = "https://github.com/zeromq/pyzmq" - url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz" - - version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45') - version('16.0.2', sha256='717dd902c3cf432b1c68e7b299ad028b0de0d0a823858e440b81d5f1baa2b1c1') - version('14.7.0', sha256='809a5fcc720d286c840f7f64696e60322b5b2544795a73db626f09b344d16a15') - - depends_on('py-cython@0.16:', type=('build', 'run')) - depends_on('py-py', type=('build', 'run')) - depends_on('py-cffi', type=('build', 'run')) - depends_on('zeromq') diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py index 9b23300a65..1aae1353b6 100644 --- a/var/spack/repos/builtin/packages/qt-creator/package.py +++ b/var/spack/repos/builtin/packages/qt-creator/package.py @@ -9,7 +9,7 @@ from spack import * class QtCreator(QMakePackage): """The Qt Creator IDE.""" homepage = 'https://www.qt.io/ide/' - url = 'http://download.qt.io/official_releases/qtcreator/4.3/4.3.1/qt-creator-opensource-src-4.3.1.tar.gz' + url = 'http://download.qt.io/official_releases/qtcreator/4.8/4.8.0/qt-creator-opensource-src-4.8.0.tar.gz' list_url = 'http://download.qt.io/official_releases/qtcreator/' list_depth = 2 @@ -32,8 +32,8 @@ class QtCreator(QMakePackage): url = 'http://download.qt.io/official_releases/qtcreator/{0}/{1}/qt-creator-opensource-src-{1}.tar.gz' return url.format(version.up_to(2), version) - def setup_environment(self, spack_env, run_env): - spack_env.set('INSTALL_ROOT', self.prefix) + def setup_build_environment(self, env): + env.set('INSTALL_ROOT', self.prefix) def qmake_args(self): return ['-r'] diff --git a/var/spack/repos/builtin/packages/r-animation/package.py b/var/spack/repos/builtin/packages/r-animation/package.py index 69426a1cd7..7883e4c8e3 100644 --- a/var/spack/repos/builtin/packages/r-animation/package.py +++ b/var/spack/repos/builtin/packages/r-animation/package.py @@ -22,7 +22,7 @@ class RAnimation(RPackage): depends_on('r@2.14:', type=('build', 'run')) depends_on('r-magick', when='@2.6:', type=('build', 'run')) - depends_on('image-magick') + depends_on('imagemagick') depends_on('ffmpeg') depends_on('swftools') depends_on('texlive') diff --git a/var/spack/repos/builtin/packages/r-checkpoint/package.py b/var/spack/repos/builtin/packages/r-checkpoint/package.py index c212794956..08656458f4 100644 --- a/var/spack/repos/builtin/packages/r-checkpoint/package.py +++ b/var/spack/repos/builtin/packages/r-checkpoint/package.py @@ -13,7 +13,7 @@ class RCheckpoint(RPackage): date as if you had a CRAN time machine.""" homepage = "https://cloud.r-project.org/package=checkpoint" - url = "https://cloud.r-project.org/src/contrib/checkpoint_0.3.18.tar.gz" + url = "https://cloud.r-project.org/src/contrib/checkpoint_0.4.6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/checkpoint" version('0.4.6', sha256='fd1a5edb5cb1a40d7ed26bb196de566110fe2ef62e70b4e947c003576a03ebb2') diff --git a/var/spack/repos/builtin/packages/r-magick/package.py b/var/spack/repos/builtin/packages/r-magick/package.py index 66ae049615..858b92174f 100644 --- a/var/spack/repos/builtin/packages/r-magick/package.py +++ b/var/spack/repos/builtin/packages/r-magick/package.py @@ -27,4 +27,4 @@ class RMagick(RPackage): depends_on('r-rcpp@0.12.12:', type=('build', 'run')) depends_on('r-magrittr', type=('build', 'run')) depends_on('r-curl', type=('build', 'run')) - depends_on('image-magick') + depends_on('imagemagick') diff --git a/var/spack/repos/builtin/packages/r-mzr/package.py b/var/spack/repos/builtin/packages/r-mzr/package.py index 5ccf4dd6cd..4ff0958eea 100644 --- a/var/spack/repos/builtin/packages/r-mzr/package.py +++ b/var/spack/repos/builtin/packages/r-mzr/package.py @@ -24,5 +24,5 @@ class RMzr(RPackage): depends_on('r-protgenerics', type=('build', 'run')) depends_on('r-rcpp', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('netcdf') + depends_on('netcdf-c') depends_on('r@3.4.0:3.4.9', when='@2.10.0') diff --git a/var/spack/repos/builtin/packages/r-ncdf4/package.py b/var/spack/repos/builtin/packages/r-ncdf4/package.py index 14e1273381..1a837ded21 100644 --- a/var/spack/repos/builtin/packages/r-ncdf4/package.py +++ b/var/spack/repos/builtin/packages/r-ncdf4/package.py @@ -30,4 +30,4 @@ class RNcdf4(RPackage): version('1.16', sha256='edd5731a805bbece3a8f6132c87c356deafc272351e1dd07256ca00574949253') version('1.15', sha256='d58298f4317c6c80a041a70216126492fd09ba8ecde9da09d5145ae26f324d4d') - depends_on('netcdf@4.1:') + depends_on('netcdf-c@4.1:') diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py index 95346b8290..d89d20ef02 100644 --- a/var/spack/repos/builtin/packages/r-nmf/package.py +++ b/var/spack/repos/builtin/packages/r-nmf/package.py @@ -15,7 +15,7 @@ class RNmf(RPackage): computations on multicore machines..""" homepage = "http://renozao.github.io/NMF" - url = "https://cloud.r-project.org/src/contrib/NMF_0.20.6.tar.gz" + url = "https://cloud.r-project.org/src/contrib/NMF_0.21.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/NMF" version('0.21.0', sha256='3b30c81c66066fab4a63c5611a0313418b840d8b63414db31ef0e932872d02e3') diff --git a/var/spack/repos/builtin/packages/r-pbdzmq/package.py b/var/spack/repos/builtin/packages/r-pbdzmq/package.py index 4ec6ee9055..7e44f3b9e8 100644 --- a/var/spack/repos/builtin/packages/r-pbdzmq/package.py +++ b/var/spack/repos/builtin/packages/r-pbdzmq/package.py @@ -27,4 +27,4 @@ class RPbdzmq(RPackage): depends_on('r@3.0.0:', when='@:0.2-5', type=('build', 'run')) depends_on('r@3.2.0:', when='@0.2-6:', type=('build', 'run')) depends_on('r-r6', when='@:0.2-6', type=('build', 'run')) - depends_on('zeromq@4.0.4:') + depends_on('libzmq@4.0.4:') diff --git a/var/spack/repos/builtin/packages/r-pkgmaker/package.py b/var/spack/repos/builtin/packages/r-pkgmaker/package.py index e400f1228f..d2c2843f3a 100644 --- a/var/spack/repos/builtin/packages/r-pkgmaker/package.py +++ b/var/spack/repos/builtin/packages/r-pkgmaker/package.py @@ -16,7 +16,7 @@ class RPkgmaker(RPackage): changes in the interface(s) are more than likely to happen.""" homepage = "https://renozao.github.io/pkgmaker" - url = "https://cloud.r-project.org/src/contrib/pkgmaker_0.22.tar.gz" + url = "https://cloud.r-project.org/src/contrib/pkgmaker_0.27.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/pkgmaker" version('0.27', sha256='17a289d8f596ba5637b07077b3bff22411a2c2263c0b7de59fe848666555ec6a') diff --git a/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py b/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py index f8420eebb0..f3d5e951f9 100644 --- a/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py +++ b/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py @@ -13,7 +13,7 @@ class RRandomfieldsutils(RPackage): Furthermore, it includes the Struve functions.""" homepage = "https://cloud.r-project.org/package=RandomFieldsUtils" - url = "https://cloud.r-project.org/src/contrib/RandomFieldsUtils_0.3.25.tar.gz" + url = "https://cloud.r-project.org/src/contrib/RandomFieldsUtils_0.5.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RandomFieldsUtils" version('0.5.3', sha256='ea823cba2e254a9f534efb4b772c0aeef2039ee9ef99744e077b969a87f8031d') diff --git a/var/spack/repos/builtin/packages/r-rngtools/package.py b/var/spack/repos/builtin/packages/r-rngtools/package.py index c4b52c3437..30762d7464 100644 --- a/var/spack/repos/builtin/packages/r-rngtools/package.py +++ b/var/spack/repos/builtin/packages/r-rngtools/package.py @@ -14,7 +14,7 @@ class RRngtools(RPackage): the way current RNG settings can be changed.""" homepage = "https://renozao.github.io/rngtools" - url = "https://cloud.r-project.org/src/contrib/rngtools_1.2.4.tar.gz" + url = "https://cloud.r-project.org/src/contrib/rngtools_1.4.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rngtools" version('1.4', sha256='3aa92366e5d0500537964302f5754a750aff6b169a27611725e7d84552913bce') diff --git a/var/spack/repos/builtin/packages/r-rzmq/package.py b/var/spack/repos/builtin/packages/r-rzmq/package.py index aeaa990a45..862ebcf066 100644 --- a/var/spack/repos/builtin/packages/r-rzmq/package.py +++ b/var/spack/repos/builtin/packages/r-rzmq/package.py @@ -19,4 +19,4 @@ class RRzmq(RPackage): version('0.7.7', sha256='bdbaf77a0e04c5b6d6ce79ab2747848a5044355eed2e2c4d39c4ba16f97dc83d') depends_on('r@3.1.0:', when='@0.9.0:', type=('build', 'run')) - depends_on('zeromq@3.0.0:') + depends_on('libzmq@3.0.0:') diff --git a/var/spack/repos/builtin/packages/r-udunits2/package.py b/var/spack/repos/builtin/packages/r-udunits2/package.py index 551455471f..120895ec77 100644 --- a/var/spack/repos/builtin/packages/r-udunits2/package.py +++ b/var/spack/repos/builtin/packages/r-udunits2/package.py @@ -16,4 +16,4 @@ class RUdunits2(RPackage): version('0.13', sha256='d155d3c07f6202b65dec4075ffd1e1c3f4f35f5fdece8cfb319d39256a3e5b79') depends_on('r@2.10.0:', type=('build', 'run')) - depends_on('udunits2') + depends_on('udunits') diff --git a/var/spack/repos/builtin/packages/r-units/package.py b/var/spack/repos/builtin/packages/r-units/package.py index c6b4ce8f19..936a4a695c 100644 --- a/var/spack/repos/builtin/packages/r-units/package.py +++ b/var/spack/repos/builtin/packages/r-units/package.py @@ -25,4 +25,4 @@ class RUnits(RPackage): depends_on('r@3.0.2:', type=('build', 'run')) depends_on('r-udunits2@0.13:', when='@:0.5-1', type=('build', 'run')) depends_on('r-rcpp@0.12.10:', type=('build', 'run')) - depends_on('udunits2', when='@0.6-0:') + depends_on('udunits', when='@0.6-0:') diff --git a/var/spack/repos/builtin/packages/r-wgcna/package.py b/var/spack/repos/builtin/packages/r-wgcna/package.py index 7b21e756ed..426116c677 100644 --- a/var/spack/repos/builtin/packages/r-wgcna/package.py +++ b/var/spack/repos/builtin/packages/r-wgcna/package.py @@ -10,7 +10,7 @@ class RWgcna(RPackage): """WGCNA: Weighted Correlation Network Analysis""" homepage = "https://cloud.r-project.org/package=WGCNA" - url = "https://cloud.r-project.org/src/contrib/WGCNA_1.66.tar.gz" + url = "https://cloud.r-project.org/src/contrib/WGCNA_1.68.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/WGCNA/" version('1.68', sha256='0a04f15a20817f9260ae1896eda3be83a7f4855a27a348df85c7f4d376f1efe8') diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py index ee0f934447..2f575b9cfa 100644 --- a/var/spack/repos/builtin/packages/r-xlsx/package.py +++ b/var/spack/repos/builtin/packages/r-xlsx/package.py @@ -11,7 +11,7 @@ class RXlsx(RPackage): 97/2000/XP/2003 file formats.""" homepage = "http://code.google.com/p/rexcel/" - url = "https://cloud.r-project.org/src/contrib/xlsx_0.5.7.tar.gz" + url = "https://cloud.r-project.org/src/contrib/xlsx_0.6.1.tar.gz" listurl = "https://cloud.r-project.org/src/contrib/Archive/xlsx" version('0.6.1', sha256='a580bd16b5477c1c185bf681c12c1ffff4088089f97b6a37997913d93ec5a8b4') diff --git a/var/spack/repos/builtin/packages/r3d/package.py b/var/spack/repos/builtin/packages/r3d/package.py index 6e2984253c..6704e05419 100644 --- a/var/spack/repos/builtin/packages/r3d/package.py +++ b/var/spack/repos/builtin/packages/r3d/package.py @@ -11,11 +11,11 @@ class R3d(MakefilePackage): conservative voxelization.""" homepage = "https://github.com/devonmpowell/r3d" - url = "https://github.com/devonmpowell/r3d.git" + git = "https://github.com/devonmpowell/r3d.git" - version('2019-04-24', git=url, commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22') - version('2018-12-19', git=url, commit='47308f68c782ed3227d3dab1eff24d41f6421f21') - version('2018-01-07', git=url, commit='d6799a582256a120ef3bd7e18959e96cba0e5495') + version('2019-04-24', commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22') + version('2018-12-19', commit='47308f68c782ed3227d3dab1eff24d41f6421f21') + version('2018-01-07', commit='d6799a582256a120ef3bd7e18959e96cba0e5495') variant("test", default=False, description="Build R3D regression tests") diff --git a/var/spack/repos/builtin/packages/rankstr/package.py b/var/spack/repos/builtin/packages/rankstr/package.py index c72c46b54a..d56b9211ad 100644 --- a/var/spack/repos/builtin/packages/rankstr/package.py +++ b/var/spack/repos/builtin/packages/rankstr/package.py @@ -10,7 +10,7 @@ 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.1.zip" + 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 d875c1ddfc..c439bdd10e 100644 --- a/var/spack/repos/builtin/packages/redset/package.py +++ b/var/spack/repos/builtin/packages/redset/package.py @@ -10,7 +10,7 @@ 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.2.zip" + 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/regcm/package.py b/var/spack/repos/builtin/packages/regcm/package.py index fc80deb4d0..136c270359 100644 --- a/var/spack/repos/builtin/packages/regcm/package.py +++ b/var/spack/repos/builtin/packages/regcm/package.py @@ -45,11 +45,11 @@ class Regcm(AutotoolsPackage): description='Build NetCDF using the high performance parallel ' 'NetCDF implementation.') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') depends_on('hdf5') depends_on('mpi') - depends_on('netcdf +parallel-netcdf', when='+pnetcdf') + depends_on('netcdf-c +parallel-netcdf', when='+pnetcdf') intel_msg = ('Intel compiler not working with this specific version of ' 'RegCM (generates a bug at runtime): please install a newer ' diff --git a/var/spack/repos/builtin/packages/repeatmodeler/package.py b/var/spack/repos/builtin/packages/repeatmodeler/package.py index fa395f4109..f068fb2600 100644 --- a/var/spack/repos/builtin/packages/repeatmodeler/package.py +++ b/var/spack/repos/builtin/packages/repeatmodeler/package.py @@ -18,7 +18,7 @@ class Repeatmodeler(Package): depends_on('perl', type=('build', 'run')) depends_on('perl-json', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) depends_on('repeatmasker', type='run') depends_on('recon+repeatmasker', type='run') diff --git a/var/spack/repos/builtin/packages/rose/package.py b/var/spack/repos/builtin/packages/rose/package.py index 23b497a2e7..90b6d0d6dd 100644 --- a/var/spack/repos/builtin/packages/rose/package.py +++ b/var/spack/repos/builtin/packages/rose/package.py @@ -16,8 +16,7 @@ class Rose(AutotoolsPackage): (Developed at Lawrence Livermore National Lab)""" homepage = "http://rosecompiler.org/" - # url = "https://github.com/rose-compiler/rose-develop/archive/v0.9.7.0.tar.gz" - url = "https://github.com/rose-compiler/rose-develop/archive/v0.9.9.104.zip" + url = "https://github.com/rose-compiler/rose-develop/archive/v0.9.10.0.zip" git = "https://github.com/rose-compiler/rose-develop.git" # -------------------------------------------------------------------------- @@ -212,9 +211,9 @@ class Rose(AutotoolsPackage): return args - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if "+codethorn" in self.spec: - spack_env.set("CXXFLAGS", "-std=c++11") + env.set("CXXFLAGS", "-std=c++11") def build(self, spec, prefix): # Spack will automatically pass ncpus as the number of make jobs. diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index f02cb9b09e..f4c145d243 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -71,8 +71,8 @@ class Seacas(CMakePackage): # Everything should be compiled position independent (-fpic) - depends_on('netcdf@4.6.2:+mpi+parallel-netcdf', when='+mpi') - depends_on('netcdf@4.6.2:~mpi', when='~mpi') + depends_on('netcdf-c@4.6.2:+mpi+parallel-netcdf', when='+mpi') + depends_on('netcdf-c@4.6.2:~mpi', when='~mpi') depends_on('cgns@develop+mpi+scoping', when='+cgns +mpi') depends_on('cgns@develop~mpi+scoping', when='+cgns ~mpi') depends_on('adios2@develop~mpi', when='+adios2 ~mpi') @@ -198,10 +198,10 @@ class Seacas(CMakePackage): ]) # ##################### Dependencies ########################## - # Always need NetCDF + # Always need NetCDF-C options.extend([ '-DTPL_ENABLE_Netcdf:BOOL=ON', - '-DNetCDF_ROOT:PATH=%s' % spec['netcdf'].prefix, + '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, ]) if '+metis' in spec: diff --git a/var/spack/repos/builtin/packages/shuffile/package.py b/var/spack/repos/builtin/packages/shuffile/package.py index 13ba8b96b4..bfd6defb23 100644 --- a/var/spack/repos/builtin/packages/shuffile/package.py +++ b/var/spack/repos/builtin/packages/shuffile/package.py @@ -10,7 +10,7 @@ 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.2.zip" + 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/siesta/package.py b/var/spack/repos/builtin/packages/siesta/package.py index 70d52a2607..1733585274 100644 --- a/var/spack/repos/builtin/packages/siesta/package.py +++ b/var/spack/repos/builtin/packages/siesta/package.py @@ -23,7 +23,7 @@ class Siesta(Package): depends_on('blas') depends_on('lapack') depends_on('scalapack') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') phases = ['configure', 'build', 'install'] @@ -40,7 +40,7 @@ class Siesta(Package): spec['blas'].libs), '--with-scalapack=%s' % spec['scalapack'].libs, '--with-netcdf=%s' % (spec['netcdf-fortran'].libs + - spec['netcdf'].libs), + spec['netcdf-c'].libs), # need to specify MPIFC explicitly below, otherwise # Intel's mpiifort is not found 'MPIFC=%s' % spec['mpi'].mpifc diff --git a/var/spack/repos/builtin/packages/simulationio/package.py b/var/spack/repos/builtin/packages/simulationio/package.py index 51b43719d8..d209f702f7 100644 --- a/var/spack/repos/builtin/packages/simulationio/package.py +++ b/var/spack/repos/builtin/packages/simulationio/package.py @@ -11,7 +11,7 @@ class Simulationio(CMakePackage): """SimulationIO: Efficient and convenient I/O for large PDE simulations""" homepage = "https://github.com/eschnett/SimulationIO" - url = "https://github.com/eschnett/SimulationIO/archive/version/0.1.0.tar.gz" + url = "https://github.com/eschnett/SimulationIO/archive/version/9.0.1.tar.gz" git = "https://github.com/eschnett/SimulationIO.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/squid/package.py b/var/spack/repos/builtin/packages/squid/package.py index a039bbedc5..bce6f19590 100644 --- a/var/spack/repos/builtin/packages/squid/package.py +++ b/var/spack/repos/builtin/packages/squid/package.py @@ -10,5 +10,6 @@ class Squid(AutotoolsPackage): """C function library for sequence analysis.""" homepage = "http://eddylab.org/software.html" + url = "http://eddylab.org/software/squid/squid-1.9g.tar.gz" - version('1.9g', sha256='302f42e8794aa4dbcfa0996c14fb7a70a7c4397fc45c2bbd2748055460d8dca7', url='http://eddylab.org/software/squid/squid.tar.gz') + version('1.9g', sha256='302f42e8794aa4dbcfa0996c14fb7a70a7c4397fc45c2bbd2748055460d8dca7') diff --git a/var/spack/repos/builtin/packages/sra-toolkit/package.py b/var/spack/repos/builtin/packages/sra-toolkit/package.py deleted file mode 100644 index 972f4d8a70..0000000000 --- a/var/spack/repos/builtin/packages/sra-toolkit/package.py +++ /dev/null @@ -1,28 +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 SraToolkit(Package): - """The NCBI SRA Toolkit enables reading ("dumping") of sequencing files - from the SRA database and writing ("loading") files into the .sra - format.""" - - homepage = "https://trace.ncbi.nlm.nih.gov/Traces/sra" - url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2-1/sratoolkit.2.8.2-1-centos_linux64.tar.gz" - - version('2.9.6', sha256='faab687c822d0c02956f73f35e04875dde420ce9f602b88bbf3f2e8d79a17155') - version('2.9.2', sha256='17dbe13aa1ed7955d31e1e76e8b62786e80a77e9ed9d396631162dc3ad8b716d') - version('2.8.2-1', sha256='b053061aae7c6d00162fe0f514be4128a60365b4b2b5b36e7f4798b348b55cf5') - - def url_for_version(self, version): - url = 'https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/{0}/sratoolkit.{0}-centos_linux64.tar.gz' - return url.format(version) - - def install(self, spec, prefix): - install_tree('bin', prefix.bin, symlinks=True) - install_tree('example', prefix.example) - install_tree('schema', prefix.schema) diff --git a/var/spack/repos/builtin/packages/sratoolkit/package.py b/var/spack/repos/builtin/packages/sratoolkit/package.py new file mode 100644 index 0000000000..a8cf5d9b6c --- /dev/null +++ b/var/spack/repos/builtin/packages/sratoolkit/package.py @@ -0,0 +1,24 @@ +# 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 Sratoolkit(Package): + """The NCBI SRA Toolkit enables reading ("dumping") of sequencing files + from the SRA database and writing ("loading") files into the .sra + format.""" + + homepage = "https://trace.ncbi.nlm.nih.gov/Traces/sra" + url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2-1/sratoolkit.2.8.2-1-centos_linux64.tar.gz" + + version('2.9.6', sha256='faab687c822d0c02956f73f35e04875dde420ce9f602b88bbf3f2e8d79a17155') + version('2.9.2', sha256='17dbe13aa1ed7955d31e1e76e8b62786e80a77e9ed9d396631162dc3ad8b716d') + version('2.8.2-1', sha256='b053061aae7c6d00162fe0f514be4128a60365b4b2b5b36e7f4798b348b55cf5') + + def install(self, spec, prefix): + install_tree('bin', prefix.bin, symlinks=True) + install_tree('example', prefix.example) + install_tree('schema', prefix.schema) diff --git a/var/spack/repos/builtin/packages/stc/package.py b/var/spack/repos/builtin/packages/stc/package.py index ce52a418f2..631d7647e7 100644 --- a/var/spack/repos/builtin/packages/stc/package.py +++ b/var/spack/repos/builtin/packages/stc/package.py @@ -11,7 +11,7 @@ class Stc(AutotoolsPackage): """STC: The Swift-Turbine Compiler""" homepage = 'http://swift-lang.org/Swift-T' - url = 'http://swift-lang.github.io/swift-t-downloads/spack/stc-0.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/stc-0.8.3.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index de26e0dece..ba621061fd 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -34,7 +34,7 @@ class Subversion(AutotoolsPackage): extends('perl', when='+perl') depends_on('swig@1.3.24:3.0.0', when='+perl') - depends_on('perl-term-readkey', when='+perl') + depends_on('perl-termreadkey', when='+perl') # Installation has race cases. parallel = False diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py index 0644ed1fea..098de9bacd 100644 --- a/var/spack/repos/builtin/packages/thrift/package.py +++ b/var/spack/repos/builtin/packages/thrift/package.py @@ -17,7 +17,7 @@ class Thrift(Package): """ homepage = "http://thrift.apache.org" - url = "http://apache.mirrors.ionfish.org/thrift/0.9.2/thrift-0.9.2.tar.gz" + url = "http://apache.mirrors.ionfish.org/thrift/0.11.0/thrift-0.11.0.tar.gz" version('0.11.0', sha256='c4ad38b6cb4a3498310d405a91fef37b9a8e79a50cd0968148ee2524d2fa60c2') version('0.10.0', sha256='2289d02de6e8db04cbbabb921aeb62bfe3098c4c83f36eec6c31194301efa10b') @@ -47,10 +47,10 @@ class Thrift(Package): depends_on('zlib', when='+c') depends_on('libevent', when='+c') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '+pic' in self.spec: - spack_env.append_flags('CFLAGS', self.compiler.pic_flag) - spack_env.append_flags('CXXFLAGS', self.compiler.pic_flag) + env.append_flags('CFLAGS', self.compiler.pic_flag) + env.append_flags('CXXFLAGS', self.compiler.pic_flag) def install(self, spec, prefix): env['PY_PREFIX'] = prefix diff --git a/var/spack/repos/builtin/packages/transabyss/package.py b/var/spack/repos/builtin/packages/transabyss/package.py index 85cf56bd85..a77fcbd621 100644 --- a/var/spack/repos/builtin/packages/transabyss/package.py +++ b/var/spack/repos/builtin/packages/transabyss/package.py @@ -16,7 +16,7 @@ class Transabyss(Package): depends_on('abyss@1.5.2') depends_on('python@2.7.6:', type=('build', 'run')) - depends_on('py-igraph@0.7.0:', type=('build', 'run')) + depends_on('py-python-igraph@0.7.0:', type=('build', 'run')) depends_on('blat') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py b/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py index f1bc186dcf..0826b8d00c 100644 --- a/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py +++ b/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py @@ -10,7 +10,6 @@ class TrilinosCatalystIossAdapter(CMakePackage): """Adapter for Trilinos Seacas Ioss and Paraview Catalyst""" homepage = "https://trilinos.org/" - url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" version('develop', branch='develop') @@ -20,17 +19,17 @@ class TrilinosCatalystIossAdapter(CMakePackage): depends_on('flex', type='build') depends_on('paraview+mpi+python+osmesa') depends_on('py-numpy', type=('build', 'run')) - # Here we avoid paraview trying to use netcdf~parallel-netcdf - # which is netcdf's default, even though paraview depends on 'netcdf' + # Here we avoid paraview trying to use netcdf-c~parallel-netcdf + # which is netcdf-c's default, even though paraview depends on 'netcdf-c' # without any variants. Concretizer bug? - depends_on('netcdf+parallel-netcdf') + depends_on('netcdf-c+parallel-netcdf') root_cmakelists_dir = join_path('packages', 'seacas', 'libraries', 'ioss', 'src', 'visualization', 'ParaViewCatalystIossAdapter') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PYTHONPATH', self.prefix.python) + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix.python) def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 47e1fb1936..db6621ed6b 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -297,8 +297,8 @@ class Trilinos(CMakePackage): # MPI related dependencies depends_on('mpi') - depends_on('netcdf+mpi', when="~pnetcdf") - depends_on('netcdf+mpi+parallel-netcdf', when="+pnetcdf@master,12.12.1:") + 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('parmetis', when='+metis') depends_on('cgns', when='+cgns') @@ -505,7 +505,7 @@ class Trilinos(CMakePackage): '-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'].prefix, + '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, '-DTPL_ENABLE_X11:BOOL=%s' % ( 'ON' if '+x11' in spec else 'OFF'), '-DTrilinos_ENABLE_Gtest:BOOL=%s' % ( diff --git a/var/spack/repos/builtin/packages/trinity/package.py b/var/spack/repos/builtin/packages/trinity/package.py index 997e36c0ef..68b8c7b98c 100644 --- a/var/spack/repos/builtin/packages/trinity/package.py +++ b/var/spack/repos/builtin/packages/trinity/package.py @@ -52,7 +52,7 @@ class Trinity(MakefilePackage): depends_on("samtools", type="run") depends_on("py-numpy", type="run") depends_on("express", type="run") - depends_on("perl-dbfile", type="run") + depends_on("perl-db-file", type="run") depends_on("perl-uri", type="run") depends_on("r-fastcluster", type="run") depends_on("r-ctc", type="run") @@ -85,7 +85,9 @@ class Trinity(MakefilePackage): force_remove(join_path(prefix.bin, 'trinity-plugins', 'slclust', 'bin', '.hidden')) - def setup_environment(self, spack_env, run_env): - run_env.set('TRINITY_HOME', self.prefix.bin) - run_env.prepend_path('PATH', self.prefix.bin.util) - spack_env.append_flags('CXXFLAGS', self.compiler.openmp_flag) + def setup_build_environment(self, env): + env.append_flags('CXXFLAGS', self.compiler.openmp_flag) + + def setup_run_environment(self, env): + env.set('TRINITY_HOME', self.prefix.bin) + env.prepend_path('PATH', self.prefix.bin.util) diff --git a/var/spack/repos/builtin/packages/turbine/package.py b/var/spack/repos/builtin/packages/turbine/package.py index 4788efd070..902cae7a94 100644 --- a/var/spack/repos/builtin/packages/turbine/package.py +++ b/var/spack/repos/builtin/packages/turbine/package.py @@ -13,7 +13,7 @@ class Turbine(AutotoolsPackage): """Turbine: The Swift/T runtime""" homepage = 'http://swift-lang.org/Swift-T' - url = 'http://swift-lang.github.io/swift-t-downloads/spack/turbine-0.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/turbine-1.2.3.tar.gz' git = "https://github.com/swift-lang/swift-t.git" configure_directory = 'turbine/code' @@ -44,12 +44,12 @@ class Turbine(AutotoolsPackage): depends_on('libtool', type='build', when='@master') depends_on('m4', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) @property def configure_directory(self): diff --git a/var/spack/repos/builtin/packages/udunits/package.py b/var/spack/repos/builtin/packages/udunits/package.py new file mode 100644 index 0000000000..e3e31bee5c --- /dev/null +++ b/var/spack/repos/builtin/packages/udunits/package.py @@ -0,0 +1,19 @@ +# 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 Udunits(AutotoolsPackage): + """Automated units conversion""" + + homepage = "http://www.unidata.ucar.edu/software/udunits" + url = "https://www.gfd-dennou.org/arch/ucar/unidata/pub/udunits/udunits-2.2.24.tar.gz" + + version('2.2.24', sha256='20bac512f2656f056385429a0e44902fdf02fc7fe01c14d56f3c724336177f95') + version('2.2.23', sha256='b745ae10753fe82cdc7cc834e6ce471ca7c25ba2662e6ff93be147cb3d4fd380') + version('2.2.21', sha256='a154d1f8428c24e92723f9e50bdb5cc00827e3f5ff9cba64d33e5409f5c03455') + + depends_on('expat') diff --git a/var/spack/repos/builtin/packages/udunits2/package.py b/var/spack/repos/builtin/packages/udunits2/package.py deleted file mode 100644 index c5704d6a5e..0000000000 --- a/var/spack/repos/builtin/packages/udunits2/package.py +++ /dev/null @@ -1,19 +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 Udunits2(AutotoolsPackage): - """Automated units conversion""" - - homepage = "http://www.unidata.ucar.edu/software/udunits" - url = "https://www.gfd-dennou.org/arch/ucar/unidata/pub/udunits/udunits-2.2.24.tar.gz" - - version('2.2.24', sha256='20bac512f2656f056385429a0e44902fdf02fc7fe01c14d56f3c724336177f95') - version('2.2.23', sha256='b745ae10753fe82cdc7cc834e6ce471ca7c25ba2662e6ff93be147cb3d4fd380') - version('2.2.21', sha256='a154d1f8428c24e92723f9e50bdb5cc00827e3f5ff9cba64d33e5409f5c03455') - - depends_on('expat') diff --git a/var/spack/repos/builtin/packages/vmatch/package.py b/var/spack/repos/builtin/packages/vmatch/package.py index 3cedce4ede..b4433f6174 100644 --- a/var/spack/repos/builtin/packages/vmatch/package.py +++ b/var/spack/repos/builtin/packages/vmatch/package.py @@ -15,9 +15,5 @@ class Vmatch(Package): version('2.3.0', sha256='5e18d0dddf04e86dad193fcdde6e48f3901365932634125602d8808f35acf979') - def url_for_version(self, version): - url = 'http://www.vmatch.de/distributions/vmatch-{0}-Linux_x86_64-64bit.tar.gz' - return url.format(version) - def install(self, spec, prefix): install_tree(self.stage.source_path, prefix.bin) diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py new file mode 100644 index 0000000000..e3c1bd4031 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-h/package.py @@ -0,0 +1,256 @@ +# 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 * + +import sys +import os +import socket + + +import llnl.util.tty as tty +from os import environ as env + + +def cmake_cache_entry(name, value, vtype=None): + """ + Helper that creates CMake cache entry strings used in + 'host-config' files. + """ + if vtype is None: + if value == "ON" or value == "OFF": + vtype = "BOOL" + else: + vtype = "PATH" + return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) + + +class VtkH(Package): + """VTK-h is a toolkit of scientific visualization algorithms for emerging + processor architectures. VTK-h brings together several projects like VTK-m + and DIY2 to provide a toolkit with hybrid parallel capabilities.""" + + homepage = "https://github.com/Alpine-DAV/vtk-h" + git = "https://github.com/Alpine-DAV/vtk-h.git" + maintainers = ['cyrush'] + + version('develop', branch='develop', submodules=True) + version('0.1.0', branch='develop', tag='v0.1.0', submodules=True) + + variant("shared", default=True, description="Build vtk-h as shared libs") + variant("mpi", default=True, description="build mpi support") + variant("tbb", default=False, description="build tbb support") + variant("cuda", default=False, description="build cuda support") + variant("openmp", default=(sys.platform != 'darwin'), + description="build openmp support") + + depends_on("cmake@3.8.2:", type='build') + + depends_on("mpi", when="+mpi") + depends_on("intel-tbb", when="@0.1.0+tbb") + depends_on("cuda", when="+cuda") + + depends_on("vtk-m@1.2.0", when="@0.1.0") + depends_on("vtk-m@1.2.0+tbb", when="@0.1.0+tbb") + depends_on("vtk-m@1.2.0+cuda", when="@0.1.0+cuda") + depends_on("vtk-m@1.2.0~shared", when="@0.1.0~shared") + + depends_on("vtk-m@master~tbb+openmp", when="@develop+openmp") + depends_on("vtk-m@master~tbb~openmp", when="@develop~openmp") + + depends_on("vtk-m@master+cuda~tbb+openmp", when="@develop+cuda+openmp") + depends_on("vtk-m@master+cuda~tbb~openmp", when="@develop+cuda~openmp") + + depends_on("vtk-m@master~tbb+openmp~shared", when="@develop+openmp~shared") + depends_on("vtk-m@master~tbb~openmp~shared", when="@develop~openmp~shared") + + depends_on("vtk-m@master+cuda~tbb+openmp~shared", when="@develop+cuda+openmp~shared") + depends_on("vtk-m@master+cuda~tbb~openmp~shared", when="@develop+cuda~openmp~shared") + + patch('vtkm_lagrange_cuda_fix.patch') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake_args = ["../src", + "-DVTKM_DIR={0}".format(spec["vtk-m"].prefix), + "-DENABLE_TESTS=OFF", + "-DBUILD_TESTING=OFF"] + + # shared vs static libs + if "+shared" in spec: + cmake_args.append('-DBUILD_SHARED_LIBS=ON') + else: + cmake_args.append('-DBUILD_SHARED_LIBS=OFF') + + # mpi support + if "+mpi" in spec: + mpicc = spec['mpi'].mpicc + mpicxx = spec['mpi'].mpicxx + cmake_args.extend(["-DMPI_C_COMPILER={0}".format(mpicc), + "-DMPI_CXX_COMPILER={0}".format(mpicxx)]) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + cmake_args.append("-DMPIEXEC={0}".format(mpiexe_bin)) + # tbb support + if "+tbb" in spec: + cmake_args.append("-DTBB_DIR={0}".format(spec["tbb"].prefix)) + + # openmp support + if "+openmp" in spec: + cmake_args.append("-DENABLE_OPENMP=ON") + + # cuda support + if "+cuda" in spec: + cmake_args.append("-DENABLE_CUDA=ON") + # this fix is necessary if compiling platform has cuda, but + # no devices (this common for front end nodes on hpc clusters) + # we choose kepler as a lowest common denominator + cmake_args.append("-DVTKm_CUDA_Architecture=kepler") + + # use release, instead of release with debug symbols b/c vtkh libs + # can overwhelm compilers with too many symbols + for arg in std_cmake_args: + if arg.count("CMAKE_BUILD_TYPE") == 0: + cmake_args.extend(std_cmake_args) + cmake_args.append("-DCMAKE_BUILD_TYPE=Release") + cmake(*cmake_args) + if "+cuda" in spec: + # avoid issues with make -j and FindCuda deps + # likely a ordering issue that needs to be resolved + # in vtk-h + make(parallel=False) + else: + make() + make("install") + + def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): + """ + This method creates a 'host-config' file that specifies + all of the options used to configure and build vtkh. + """ + + ####################### + # Compiler Info + ####################### + c_compiler = env["SPACK_CC"] + cpp_compiler = env["SPACK_CXX"] + + ####################################################################### + # By directly fetching the names of the actual compilers we appear + # to doing something evil here, but this is necessary to create a + # 'host config' file that works outside of the spack install env. + ####################################################################### + + sys_type = spec.architecture + # if on llnl systems, we can use the SYS_TYPE + if "SYS_TYPE" in env: + sys_type = env["SYS_TYPE"] + + ############################################## + # Find and record what CMake is used + ############################################## + + cmake_exe = spec['cmake'].command.path + + host_cfg_fname = "%s-%s-%s-vtkh.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) + + cfg = open(host_cfg_fname, "w") + cfg.write("##################################\n") + cfg.write("# spack generated host-config\n") + cfg.write("##################################\n") + cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) + cfg.write("##################################\n\n") + + # Include path to cmake for reference + cfg.write("# cmake from spack \n") + cfg.write("# cmake executable path: %s\n\n" % cmake_exe) + + ####################### + # Compiler Settings + ####################### + + cfg.write("#######\n") + cfg.write("# using %s compiler spec\n" % spec.compiler) + cfg.write("#######\n\n") + cfg.write("# c compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) + cfg.write("# cpp compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) + + # shared vs static libs + if "+shared" in spec: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) + else: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) + + ####################################################################### + # Core Dependencies + ####################################################################### + + ####################### + # VTK-h (and deps) + ####################### + + cfg.write("# vtk-m support \n") + + if "+openmp" in spec: + cfg.write("# enable openmp support\n") + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) + + cfg.write("# vtk-m from spack\n") + cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtk-m'].prefix)) + + ####################################################################### + # Optional Dependencies + ####################################################################### + + ####################### + # MPI + ####################### + + cfg.write("# MPI Support\n") + + if "+mpi" in spec: + cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", + spec['mpi'].mpicxx)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", + spec['mpi'].mpifc)) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE + # vs the older versions which expect MPIEXEC + if self.spec["cmake"].satisfies('@3.10:'): + cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("MPIEXEC", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + + ####################### + # CUDA + ####################### + + cfg.write("# CUDA Support\n") + + if "+cuda" in spec: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) + + cfg.write("##################################\n") + cfg.write("# end spack generated host-config\n") + cfg.write("##################################\n") + cfg.close() + + host_cfg_fname = os.path.abspath(host_cfg_fname) + tty.info("spack generated conduit host-config file: " + host_cfg_fname) + return host_cfg_fname diff --git a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch new file mode 100644 index 0000000000..2f90477e76 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch @@ -0,0 +1,16 @@ +diff --git a/src/vtkh/filters/CMakeLists.txt b/src/vtkh/filters/CMakeLists.txt +index 4a42d61..f586155 100644 +--- a/src/vtkh/filters/CMakeLists.txt ++++ b/src/vtkh/filters/CMakeLists.txt +@@ -41,6 +41,11 @@ set(vtkh_filters_deps vtkh_core vtkh_utils ) + if(CUDA_FOUND) + # triggers cuda compile + list(APPEND vtkh_filters_deps cuda) ++ ++ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 10.0.0) ++ set(particle_cuda_src "${CMAKE_CURRENT_SOURCE_DIR}/Lagrangian.cpp") ++ set_source_files_properties(${particle_cuda_src} PROPERTIES COMPILE_FLAGS "-Xptxas --opt-level=0") ++ endif() + endif() + + diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py new file mode 100644 index 0000000000..317343bc82 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -0,0 +1,139 @@ +# 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 * +import os +import sys + + +class VtkM(CMakePackage, CudaPackage): + """VTK-m is a toolkit of scientific visualization algorithms for emerging + processor architectures. VTK-m supports the fine-grained concurrency for + data analysis and visualization algorithms required to drive extreme scale + computing by providing abstract models for data and execution that can be + applied to a variety of algorithms across many different processor + architectures.""" + + homepage = "https://m.vtk.org/" + url = "https://gitlab.kitware.com/api/v4/projects/vtk%2Fvtk-m/repository/archive.tar.gz?sha=v1.3.0" + git = "https://gitlab.kitware.com/vtk/vtk-m.git" + + version('master', branch='master') + version('1.4.0', sha256="60e1ce73a8c6beda8aed5f2d3ae670b6b0c78c068c6eff4ece769e6d719d5065") + version('1.3.0', sha256="72c2c8525a77a456fe0b6a1af0328dad6b9a688f402a3d3ebfa8942e0b5dba1a") + version('1.2.0', sha256="9103d954284661f6f03e5b18be6d7bc94254603e6abc8fce67f617f4ad325a0e") + version('1.1.0', sha256="a1746b1547d6fb901ea7d7ed50834e8832d6d41ddd497c84d02e1481100d43bc") + + # use release, instead of release with debug symbols b/c vtkm libs + # can overwhelm compilers with too many symbols + variant('build_type', default='Release', description='CMake build type', + values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')) + variant("shared", default=False, description="build shared libs") + variant("cuda", default=False, description="build cuda support") + variant("doubleprecision", default=True, + description='enable double precision') + variant("logging", default=True, description="build logging support") + variant("mpi", default=False, description="build mpi support") + variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") + variant("rendering", default=True, description="build rendering support") + variant("tbb", default=(sys.platform == 'darwin'), description="build TBB support") + variant("64bitids", default=False, + description="enable 64 bits ids") + + depends_on("cmake") + depends_on("tbb", when="+tbb") + depends_on("cuda", when="+cuda") + depends_on("mpi", when="+mpi") + + conflicts("~shared", when="~pic") + + def cmake_args(self): + spec = self.spec + options = [] + gpu_name_table = {'20': 'fermi', + '30': 'kepler', '32': 'kepler', '35': 'kepler', + '50': 'maxwell', '52': 'maxwell', '53': 'maxwell', + '60': 'pascal', '61': 'pascal', '62': 'pascal', + '70': 'turing', '72': 'turing', '75': 'turing'} + with working_dir('spack-build', create=True): + options = ["-DVTKm_ENABLE_TESTING:BOOL=OFF"] + # shared vs static libs + if "+shared" in spec: + options.append('-DBUILD_SHARED_LIBS=ON') + else: + options.append('-DBUILD_SHARED_LIBS=OFF') + # cuda support + if "+cuda" in spec: + options.append("-DVTKm_ENABLE_CUDA:BOOL=ON") + if 'cuda_arch' in spec.variants: + cuda_value = spec.variants['cuda_arch'].value + name = gpu_name_table[cuda_value[0]] + options.append( + '-DVTKm_CUDA_Architecture={0}'.format(name)) + else: + # this fix is necessary if compiling platform has cuda, but + # no devices (this's common for front end nodes on hpc clus + # ters) + # we choose kepler as a lowest common denominator + options.append("-DVTKm_CUDA_Architecture=kepler") + else: + options.append("-DVTKm_ENABLE_CUDA:BOOL=OFF") + + # double precision + if "+doubleprecision" in spec: + options.append("-DVTKm_USE_DOUBLE_PRECISION:BOOL=ON") + else: + options.append("-DVTKm_USE_DOUBLE_PRECISION:BOOL=OFF") + + # logging support + if "+logging" in spec: + if spec.satisfies('@:1.2.0'): + raise InstallError('logging is not supported for\ + vtkm version lower than 1.3') + options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON") + else: + options.append("-DVTKm_ENABLE_LOGGING:BOOL=OFF") + + # mpi support + if "+mpi" in spec: + if spec.satisfies('@:1.2.0'): + raise InstallError('mpi is not supported for\ + vtkm version lower than 1.3') + options.append("-DVTKm_ENABLE_MPI:BOOL=ON") + else: + options.append("-DVTKm_ENABLE_MPI:BOOL=OFF") + + # openmp support + if "+openmp" in spec: + # openmp is added since version 1.3.0 + if spec.satisfies('@:1.2.0'): + raise InstallError('OpenMP is not supported for\ + vtkm version lower than 1.3') + options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON") + else: + options.append("-DVTKm_ENABLE_OPENMP:BOOL=OFF") + + # rendering support + if "+rendering" in spec: + options.append("-DVTKm_ENABLE_RENDERING:BOOL=ON") + else: + options.append("-DVTKm_ENABLE_RENDERING:BOOL=OFF") + + # tbb support + if "+tbb" in spec: + # vtk-m detectes tbb via TBB_ROOT env var + os.environ["TBB_ROOT"] = spec["tbb"].prefix + options.append("-DVTKm_ENABLE_TBB:BOOL=ON") + else: + options.append("-DVTKm_ENABLE_TBB:BOOL=OFF") + + # 64 bit ids + if "+64bitids" in spec: + options.append("-DVTKm_USE_64BIT_IDS:BOOL=ON") + print("64 bit ids enabled") + else: + options.append("-DVTKm_USE_64BIT_IDS:BOOL=OFF") + return options diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 3d9d108ae4..8ed305c53f 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -86,7 +86,7 @@ class Vtk(CMakePackage): depends_on('jsoncpp') depends_on('libxml2') depends_on('lz4') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-cxx') depends_on('libpng') depends_on('libtiff') @@ -96,10 +96,10 @@ class Vtk(CMakePackage): url = "http://www.vtk.org/files/release/{0}/VTK-{1}.tar.gz" return url.format(version.up_to(2), version) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # VTK has some trouble finding freetype unless it is set in # the environment - spack_env.set('FREETYPE_DIR', self.spec['freetype'].prefix) + env.set('FREETYPE_DIR', self.spec['freetype'].prefix) def cmake_args(self): spec = self.spec @@ -120,8 +120,8 @@ class Vtk(CMakePackage): '-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF', '-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=OFF', - '-DNETCDF_DIR={0}'.format(spec['netcdf'].prefix), - '-DNETCDF_C_ROOT={0}'.format(spec['netcdf'].prefix), + '-DNETCDF_DIR={0}'.format(spec['netcdf-c'].prefix), + '-DNETCDF_C_ROOT={0}'.format(spec['netcdf-c'].prefix), '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix), # Allow downstream codes (e.g. VisIt) to override VTK's classes diff --git a/var/spack/repos/builtin/packages/vtkh/package.py b/var/spack/repos/builtin/packages/vtkh/package.py deleted file mode 100644 index 3d60ee9a50..0000000000 --- a/var/spack/repos/builtin/packages/vtkh/package.py +++ /dev/null @@ -1,256 +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 * - -import sys -import os -import socket - - -import llnl.util.tty as tty -from os import environ as env - - -def cmake_cache_entry(name, value, vtype=None): - """ - Helper that creates CMake cache entry strings used in - 'host-config' files. - """ - if vtype is None: - if value == "ON" or value == "OFF": - vtype = "BOOL" - else: - vtype = "PATH" - return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) - - -class Vtkh(Package): - """VTK-h is a toolkit of scientific visualization algorithms for emerging - processor architectures. VTK-h brings together several projects like VTK-m - and DIY2 to provide a toolkit with hybrid parallel capabilities.""" - - homepage = "https://github.com/Alpine-DAV/vtk-h" - git = "https://github.com/Alpine-DAV/vtk-h.git" - maintainers = ['cyrush'] - - version('develop', branch='develop', submodules=True) - version('0.1.0', branch='develop', tag='v0.1.0', submodules=True) - - variant("shared", default=True, description="Build vtk-h as shared libs") - variant("mpi", default=True, description="build mpi support") - variant("tbb", default=False, description="build tbb support") - variant("cuda", default=False, description="build cuda support") - variant("openmp", default=(sys.platform != 'darwin'), - description="build openmp support") - - depends_on("cmake@3.8.2:", type='build') - - depends_on("mpi", when="+mpi") - depends_on("intel-tbb", when="@0.1.0+tbb") - depends_on("cuda", when="+cuda") - - depends_on("vtkm@1.2.0", when="@0.1.0") - depends_on("vtkm@1.2.0+tbb", when="@0.1.0+tbb") - depends_on("vtkm@1.2.0+cuda", when="@0.1.0+cuda") - depends_on("vtkm@1.2.0~shared", when="@0.1.0~shared") - - depends_on("vtkm@master~tbb+openmp", when="@develop+openmp") - depends_on("vtkm@master~tbb~openmp", when="@develop~openmp") - - depends_on("vtkm@master+cuda~tbb+openmp", when="@develop+cuda+openmp") - depends_on("vtkm@master+cuda~tbb~openmp", when="@develop+cuda~openmp") - - depends_on("vtkm@master~tbb+openmp~shared", when="@develop+openmp~shared") - depends_on("vtkm@master~tbb~openmp~shared", when="@develop~openmp~shared") - - depends_on("vtkm@master+cuda~tbb+openmp~shared", when="@develop+cuda+openmp~shared") - depends_on("vtkm@master+cuda~tbb~openmp~shared", when="@develop+cuda~openmp~shared") - - patch('vtkm_lagrange_cuda_fix.patch') - - def install(self, spec, prefix): - with working_dir('spack-build', create=True): - cmake_args = ["../src", - "-DVTKM_DIR={0}".format(spec["vtkm"].prefix), - "-DENABLE_TESTS=OFF", - "-DBUILD_TESTING=OFF"] - - # shared vs static libs - if "+shared" in spec: - cmake_args.append('-DBUILD_SHARED_LIBS=ON') - else: - cmake_args.append('-DBUILD_SHARED_LIBS=OFF') - - # mpi support - if "+mpi" in spec: - mpicc = spec['mpi'].mpicc - mpicxx = spec['mpi'].mpicxx - cmake_args.extend(["-DMPI_C_COMPILER={0}".format(mpicc), - "-DMPI_CXX_COMPILER={0}".format(mpicxx)]) - mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') - if os.path.isfile(mpiexe_bin): - cmake_args.append("-DMPIEXEC={0}".format(mpiexe_bin)) - # tbb support - if "+tbb" in spec: - cmake_args.append("-DTBB_DIR={0}".format(spec["tbb"].prefix)) - - # openmp support - if "+openmp" in spec: - cmake_args.append("-DENABLE_OPENMP=ON") - - # cuda support - if "+cuda" in spec: - cmake_args.append("-DENABLE_CUDA=ON") - # this fix is necessary if compiling platform has cuda, but - # no devices (this common for front end nodes on hpc clusters) - # we choose kepler as a lowest common denominator - cmake_args.append("-DVTKm_CUDA_Architecture=kepler") - - # use release, instead of release with debug symbols b/c vtkh libs - # can overwhelm compilers with too many symbols - for arg in std_cmake_args: - if arg.count("CMAKE_BUILD_TYPE") == 0: - cmake_args.extend(std_cmake_args) - cmake_args.append("-DCMAKE_BUILD_TYPE=Release") - cmake(*cmake_args) - if "+cuda" in spec: - # avoid issues with make -j and FindCuda deps - # likely a ordering issue that needs to be resolved - # in vtk-h - make(parallel=False) - else: - make() - make("install") - - def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): - """ - This method creates a 'host-config' file that specifies - all of the options used to configure and build vtkh. - """ - - ####################### - # Compiler Info - ####################### - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - - ####################################################################### - # By directly fetching the names of the actual compilers we appear - # to doing something evil here, but this is necessary to create a - # 'host config' file that works outside of the spack install env. - ####################################################################### - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - - ############################################## - # Find and record what CMake is used - ############################################## - - cmake_exe = spec['cmake'].command.path - - host_cfg_fname = "%s-%s-%s-vtkh.cmake" % (socket.gethostname(), - sys_type, - spec.compiler) - - cfg = open(host_cfg_fname, "w") - cfg.write("##################################\n") - cfg.write("# spack generated host-config\n") - cfg.write("##################################\n") - cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) - cfg.write("##################################\n\n") - - # Include path to cmake for reference - cfg.write("# cmake from spack \n") - cfg.write("# cmake executable path: %s\n\n" % cmake_exe) - - ####################### - # Compiler Settings - ####################### - - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) - - # shared vs static libs - if "+shared" in spec: - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) - else: - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) - - ####################################################################### - # Core Dependencies - ####################################################################### - - ####################### - # VTK-h (and deps) - ####################### - - cfg.write("# vtk-m support \n") - - if "+openmp" in spec: - cfg.write("# enable openmp support\n") - cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) - - cfg.write("# vtk-m from spack\n") - cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtkm'].prefix)) - - ####################################################################### - # Optional Dependencies - ####################################################################### - - ####################### - # MPI - ####################### - - cfg.write("# MPI Support\n") - - if "+mpi" in spec: - cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", - spec['mpi'].mpicxx)) - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", - spec['mpi'].mpifc)) - mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') - if os.path.isfile(mpiexe_bin): - # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE - # vs the older versions which expect MPIEXEC - if self.spec["cmake"].satisfies('@3.10:'): - cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", - mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("MPIEXEC", - mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) - - ####################### - # CUDA - ####################### - - cfg.write("# CUDA Support\n") - - if "+cuda" in spec: - cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) - - cfg.write("##################################\n") - cfg.write("# end spack generated host-config\n") - cfg.write("##################################\n") - cfg.close() - - host_cfg_fname = os.path.abspath(host_cfg_fname) - tty.info("spack generated conduit host-config file: " + host_cfg_fname) - return host_cfg_fname diff --git a/var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch deleted file mode 100644 index 2f90477e76..0000000000 --- a/var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/vtkh/filters/CMakeLists.txt b/src/vtkh/filters/CMakeLists.txt -index 4a42d61..f586155 100644 ---- a/src/vtkh/filters/CMakeLists.txt -+++ b/src/vtkh/filters/CMakeLists.txt -@@ -41,6 +41,11 @@ set(vtkh_filters_deps vtkh_core vtkh_utils ) - if(CUDA_FOUND) - # triggers cuda compile - list(APPEND vtkh_filters_deps cuda) -+ -+ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 10.0.0) -+ set(particle_cuda_src "${CMAKE_CURRENT_SOURCE_DIR}/Lagrangian.cpp") -+ set_source_files_properties(${particle_cuda_src} PROPERTIES COMPILE_FLAGS "-Xptxas --opt-level=0") -+ endif() - endif() - - diff --git a/var/spack/repos/builtin/packages/vtkm/package.py b/var/spack/repos/builtin/packages/vtkm/package.py deleted file mode 100644 index eee37bf9af..0000000000 --- a/var/spack/repos/builtin/packages/vtkm/package.py +++ /dev/null @@ -1,142 +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 * -import os -import sys - - -class Vtkm(CMakePackage, CudaPackage): - """VTK-m is a toolkit of scientific visualization algorithms for emerging - processor architectures. VTK-m supports the fine-grained concurrency for - data analysis and visualization algorithms required to drive extreme scale - computing by providing abstract models for data and execution that can be - applied to a variety of algorithms across many different processor - architectures.""" - - homepage = "https://m.vtk.org/" - url = "https://gitlab.kitware.com/api/v4/projects/vtk%2Fvtk-m/repository/archive.tar.gz?sha=v1.3.0" - git = "https://gitlab.kitware.com/vtk/vtk-m.git" - - version('master', branch='master') - version('1.4.0', sha256="60e1ce73a8c6beda8aed5f2d3ae670b6b0c78c068c6eff4ece769e6d719d5065") - version('1.3.0', sha256="72c2c8525a77a456fe0b6a1af0328dad6b9a688f402a3d3ebfa8942e0b5dba1a") - version('1.2.0', sha256="9103d954284661f6f03e5b18be6d7bc94254603e6abc8fce67f617f4ad325a0e") - version('1.1.0', sha256="a1746b1547d6fb901ea7d7ed50834e8832d6d41ddd497c84d02e1481100d43bc") - - # use release, instead of release with debug symbols b/c vtkm libs - # can overwhelm compilers with too many symbols - variant('build_type', default='Release', description='CMake build type', - values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')) - variant("shared", default=False, description="build shared libs") - variant("cuda", default=False, description="build cuda support") - variant("doubleprecision", default=True, - description='enable double precision') - variant("logging", default=True, description="build logging support") - variant("mpi", default=False, description="build mpi support") - variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") - variant("rendering", default=True, description="build rendering support") - variant("tbb", default=(sys.platform == 'darwin'), description="build TBB support") - variant("64bitids", default=False, - description="enable 64 bits ids") - - depends_on("cmake") - depends_on("tbb", when="+tbb") - depends_on("cuda", when="+cuda") - depends_on("mpi", when="+mpi") - - conflicts("~shared", when="~pic") - - def cmake_args(self): - spec = self.spec - options = [] - gpu_name_table = {'20': 'fermi', - '30': 'kepler', '32': 'kepler', '35': 'kepler', - '50': 'maxwell', '52': 'maxwell', '53': 'maxwell', - '60': 'pascal', '61': 'pascal', '62': 'pascal', - '70': 'turing', '72': 'turing', '75': 'turing'} - with working_dir('spack-build', create=True): - options = ["-DVTKm_ENABLE_TESTING:BOOL=OFF"] - # shared vs static libs - if "+shared" in spec: - options.append('-DBUILD_SHARED_LIBS=ON') - else: - options.append('-DBUILD_SHARED_LIBS=OFF') - # cuda support - if "+cuda" in spec: - options.append("-DVTKm_ENABLE_CUDA:BOOL=ON") - if 'cuda_arch' in spec.variants: - cuda_value = spec.variants['cuda_arch'].value - name = gpu_name_table[cuda_value[0]] - options.append( - '-DVTKm_CUDA_Architecture={0}'.format(name)) - else: - # this fix is necessary if compiling platform has cuda, but - # no devices (this's common for front end nodes on hpc clus - # ters) - # we choose kepler as a lowest common denominator - options.append("-DVTKm_CUDA_Architecture=kepler") - else: - options.append("-DVTKm_ENABLE_CUDA:BOOL=OFF") - - # double precision - if "+doubleprecision" in spec: - options.append("-DVTKm_USE_DOUBLE_PRECISION:BOOL=ON") - else: - options.append("-DVTKm_USE_DOUBLE_PRECISION:BOOL=OFF") - - # logging support - if "+logging" in spec: - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': - raise InstallError('logging is not supported for\ - vtkm version lower than 1.3') - options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON") - else: - options.append("-DVTKm_ENABLE_LOGGING:BOOL=OFF") - - # mpi support - if "+mpi" in spec: - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': - raise InstallError('mpi is not supported for\ - vtkm version lower than 1.3') - options.append("-DVTKm_ENABLE_MPI:BOOL=ON") - else: - options.append("-DVTKm_ENABLE_MPI:BOOL=OFF") - - # openmp support - if "+openmp" in spec: - # openmp is added since version 1.3.0 - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': - raise InstallError('OpenMP is not supported for\ - vtkm version lower than 1.3') - options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON") - else: - options.append("-DVTKm_ENABLE_OPENMP:BOOL=OFF") - - # rendering support - if "+rendering" in spec: - options.append("-DVTKm_ENABLE_RENDERING:BOOL=ON") - else: - options.append("-DVTKm_ENABLE_RENDERING:BOOL=OFF") - - # tbb support - if "+tbb" in spec: - # vtk-m detectes tbb via TBB_ROOT env var - os.environ["TBB_ROOT"] = spec["tbb"].prefix - options.append("-DVTKm_ENABLE_TBB:BOOL=ON") - else: - options.append("-DVTKm_ENABLE_TBB:BOOL=OFF") - - # 64 bit ids - if "+64bitids" in spec: - options.append("-DVTKm_USE_64BIT_IDS:BOOL=ON") - print("64 bit ids enabled") - else: - options.append("-DVTKm_USE_64BIT_IDS:BOOL=OFF") - return options diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 015c38406b..89c0117d2e 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -16,10 +16,10 @@ class Warpx(MakefilePackage): """ homepage = "https://ecp-warpx.github.io/index.html" - url = "https://github.com/ECP-WarpX/WarpX" + git = "https://github.com/ECP-WarpX/WarpX.git" - version('master', git='https://github.com/ECP-WarpX/WarpX.git', tag='master') - version('dev', git='https://github.com/ECP-WarpX/WarpX.git', tag='dev') + version('master', tag='master') + version('dev', tag='dev') depends_on('mpi') @@ -94,11 +94,11 @@ class Warpx(MakefilePackage): 'TINY_PROFILE = {0}'.format(torf('+tprof'))) makefile.filter('EBASE .*', 'EBASE = warpx') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # --- Fool the compiler into using the "unknown" configuration. # --- With this, it will use the spack provided mpi. - spack_env.set('HOSTNAME', 'unknown') - spack_env.set('NERSC_HOST', 'unknown') + env.set('HOSTNAME', 'unknown') + env.set('NERSC_HOST', 'unknown') def install(self, spec, prefix): make('WarpxBinDir = {0}'.format(prefix.bin), 'all') diff --git a/var/spack/repos/builtin/packages/wireshark/package.py b/var/spack/repos/builtin/packages/wireshark/package.py index 5df47d773b..cd334ed76e 100644 --- a/var/spack/repos/builtin/packages/wireshark/package.py +++ b/var/spack/repos/builtin/packages/wireshark/package.py @@ -24,7 +24,7 @@ class Wireshark(CMakePackage): variant('headers', default=True, description='Install headers') depends_on('bison', type='build') - depends_on('cares') + depends_on('c-ares') depends_on('doxygen', type='build') depends_on('flex', type='build') depends_on('git', type='build') diff --git a/var/spack/repos/builtin/packages/xdmf3/package.py b/var/spack/repos/builtin/packages/xdmf3/package.py index 772135846c..8a245ddc2d 100644 --- a/var/spack/repos/builtin/packages/xdmf3/package.py +++ b/var/spack/repos/builtin/packages/xdmf3/package.py @@ -13,7 +13,6 @@ class Xdmf3(CMakePackage): """ homepage = "http://xdmf.org" - url = "https://gitlab.kitware.com/xdmf/xdmf/-/archive/master/xdmf-master.tar.bz2" git = "https://gitlab.kitware.com/xdmf/xdmf.git" # There is no official release of XDMF and development has largely ceased, diff --git a/var/spack/repos/builtin/packages/xeus/package.py b/var/spack/repos/builtin/packages/xeus/package.py index d67d32d188..1cca2c2cf5 100644 --- a/var/spack/repos/builtin/packages/xeus/package.py +++ b/var/spack/repos/builtin/packages/xeus/package.py @@ -23,7 +23,7 @@ class Xeus(CMakePackage): conflicts('%clang@:3.6') conflicts('%intel@:17') - depends_on('zeromq@4.2.5:-libsodium') + depends_on('libzmq@4.2.5:-libsodium') depends_on('cppzmq@4.3.0:') depends_on('cryptopp@7.0.0:') depends_on('xtl@0.4.0:') diff --git a/var/spack/repos/builtin/packages/xios/package.py b/var/spack/repos/builtin/packages/xios/package.py index 799bdc03d7..997e54ec57 100644 --- a/var/spack/repos/builtin/packages/xios/package.py +++ b/var/spack/repos/builtin/packages/xios/package.py @@ -21,7 +21,7 @@ class Xios(Package): description='Build for debugging, development or production') # NOTE: oasis coupler could be supported with a variant - # Use spack versions of blitz and netcdf for compatibility + # Use spack versions of blitz and netcdf-c for compatibility # with recent compilers and optimised platform libraries: patch('bld_extern_1.0.patch', when='@:1.0') patch('bld_extern_1.x.patch', when='@1.1:') @@ -30,7 +30,7 @@ class Xios(Package): # followed by a character is broken (e.g. duration '1d'): patch('llvm_bug_17782.patch', when='@1.1: %clang') - depends_on('netcdf+mpi') + depends_on('netcdf-c+mpi') depends_on('netcdf-fortran') depends_on('hdf5+mpi') depends_on('mpi') @@ -60,8 +60,8 @@ class Xios(Package): def xios_path(self): file = join_path('arch', 'arch-SPACK.path') spec = self.spec - paths = {'NETCDF_INC_DIR': spec['netcdf'].prefix.include, - 'NETCDF_LIB_DIR': spec['netcdf'].prefix.lib, + paths = {'NETCDF_INC_DIR': spec['netcdf-c'].prefix.include, + 'NETCDF_LIB_DIR': spec['netcdf-c'].prefix.lib, 'HDF5_INC_DIR': spec['hdf5'].prefix.include, 'HDF5_LIB_DIR': spec['hdf5'].prefix.lib} text = r""" diff --git a/var/spack/repos/builtin/packages/yambo/package.py b/var/spack/repos/builtin/packages/yambo/package.py index 29d84a20b7..e4c07cf679 100644 --- a/var/spack/repos/builtin/packages/yambo/package.py +++ b/var/spack/repos/builtin/packages/yambo/package.py @@ -45,20 +45,20 @@ class Yambo(AutotoolsPackage): # MPI dependencies are forced, until we have proper forwarding of variants # # Note that yambo is used as an application, and not linked as a library, - # thus there will be no case where another package pulls-in e.g. netcdf+mpi - # and wants to depend on yambo~mpi. + # thus there will be no case where another package pulls-in e.g. + # netcdf-c+mpi and wants to depend on yambo~mpi. depends_on('mpi', when='+mpi') - depends_on('netcdf+mpi', when='+mpi') + depends_on('netcdf-c+mpi', when='+mpi') depends_on('hdf5+mpi', when='+mpi') depends_on('fftw+mpi', when='+mpi') depends_on('scalapack', when='+mpi') - depends_on('netcdf~mpi', when='~mpi') + depends_on('netcdf-c~mpi', when='~mpi') depends_on('hdf5~mpi', when='~mpi') depends_on('fftw~mpi', when='~mpi') depends_on('hdf5+fortran') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') depends_on('libxc@2.0.3:') @@ -124,7 +124,7 @@ class Yambo(AutotoolsPackage): '--enable-netcdf-hdf5', '--enable-hdf5-compression', '--with-hdf5-libs={0}'.format(spec['hdf5'].libs), - '--with-netcdf-path={0}'.format(spec['netcdf'].prefix), + '--with-netcdf-path={0}'.format(spec['netcdf-c'].prefix), '--with-netcdff-path={0}'.format(spec['netcdf-fortran'].prefix) ]) diff --git a/var/spack/repos/builtin/packages/zeromq/package.py b/var/spack/repos/builtin/packages/zeromq/package.py deleted file mode 100644 index 7612bf5695..0000000000 --- a/var/spack/repos/builtin/packages/zeromq/package.py +++ /dev/null @@ -1,61 +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 Zeromq(AutotoolsPackage): - """The ZMQ networking/concurrency library and core API""" - - homepage = "http://zguide.zeromq.org/" - url = "https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.tar.gz" - git = "https://github.com/zeromq/libzmq.git" - - version('develop', branch='master') - version('4.3.2', sha256='ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763') - version('4.3.1', sha256='bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb') - version('4.3.0', sha256='8e9c3af6dc5a8540b356697081303be392ade3f014615028b3c896d0148397fd') - version('4.2.5', sha256='cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f') - version('4.2.2', sha256='5b23f4ca9ef545d5bd3af55d305765e3ee06b986263b31967435d285a3e6df6b') - version('4.1.4', sha256='e99f44fde25c2e4cb84ce440f87ca7d3fe3271c2b8cfbc67d55e4de25e6fe378') - version('4.1.2', sha256='f9162ead6d68521e5154d871bac304f88857308bb02366b81bb588497a345927') - version('4.1.1', sha256='43d61e5706b43946aad4a661400627bcde9c63cc25816d4749c67b64c3dab8db') - version('4.0.7', sha256='e00b2967e074990d0538361cc79084a0a92892df2c6e7585da34e4c61ee47b03') - version('4.0.6', sha256='28a2a9c9b77014c39087a498942449df18bb9885cdb63334833525a1d19f2894') - version('4.0.5', sha256='3bc93c5f67370341428364ce007d448f4bb58a0eaabd0a60697d8086bc43342b') - - variant("libsodium", default=True, - description="Build with message encryption support via libsodium") - - depends_on("libsodium", when='+libsodium') - depends_on("libsodium@:1.0.3", when='+libsodium@:4.1.2') - - depends_on('autoconf', type='build', when='@develop') - depends_on('automake', type='build', when='@develop') - depends_on('libtool', type='build', when='@develop') - depends_on('pkgconfig', type='build') - - conflicts('%gcc@8:', when='@:4.2.2') - - def url_for_version(self, version): - if version <= Version('4.1.4'): - url = "http://download.zeromq.org/zeromq-{0}.tar.gz" - else: - url = "https://github.com/zeromq/libzmq/releases/download/v{0}/zeromq-{0}.tar.gz" - return url.format(version) - - @when('@develop') - def autoreconf(self, spec, prefix): - bash = which('bash') - bash('./autogen.sh') - - def configure_args(self): - config_args = [] - if '+libsodium' in self.spec: - config_args.append('--with-libsodium') - if 'clang' in self.compiler.cc: - config_args.append("CFLAGS=-Wno-gnu") - config_args.append("CXXFLAGS=-Wno-gnu") - return config_args -- cgit v1.2.3-60-g2f50