summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2017-01-17 01:36:03 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2017-01-17 01:36:03 -0800
commit52a9e5d2a31b4a66ce51d0ff03ab709417dee6dc (patch)
treeef8216231785feaf7ee3f2d037f4240bdd115be8 /var
parent4f8167b7ed8fe156e1f350aaa37230ab07a27895 (diff)
parent18563177775509286e5b53744ea5924bc450d9c2 (diff)
downloadspack-0.10.0.tar.gz
spack-0.10.0.tar.bz2
spack-0.10.0.tar.xz
spack-0.10.0.zip
Merge branch 'releases/v0.10.0'v0.10.0
Diffstat (limited to 'var')
-rw-r--r--var/spack/mock_configs/site_spackconfig/compilers.yaml40
-rw-r--r--var/spack/repos/builtin.mock/packages/a/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/b/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/c/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/callpath/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake-client/package.py20
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/develop-test/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/direct-mpich/package.py (renamed from var/spack/repos/builtin.mock/packages/direct_mpich/package.py)1
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py36
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py38
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py38
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond/package.py39
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild1/package.py42
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild2/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild3/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink1/package.py39
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink2/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink3/package.py40
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink4/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink5/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun1/package.py40
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun2/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun3/package.py39
-rw-r--r--var/spack/repos/builtin.mock/packages/dttop/package.py41
-rw-r--r--var/spack/repos/builtin.mock/packages/dtuse/package.py39
-rw-r--r--var/spack/repos/builtin.mock/packages/dyninst/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/e/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/externalmodule/package.py38
-rw-r--r--var/spack/repos/builtin.mock/packages/externalprereq/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/externaltest/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/externaltool/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/externalvirtual/package.py5
-rw-r--r--var/spack/repos/builtin.mock/packages/failing-build/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/fake/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/git-test/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/hg-test/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/hypre/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/indirect-mpich/package.py (renamed from var/spack/repos/builtin.mock/packages/indirect_mpich/package.py)3
-rw-r--r--var/spack/repos/builtin.mock/packages/libdwarf/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/libelf/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/mpich/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/mpich2/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/mpileaks/package.py3
-rw-r--r--var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py51
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod/package.py39
-rw-r--r--var/spack/repos/builtin.mock/packages/netlib-blas/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/netlib-lapack/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/openblas/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/othervirtual/package.py37
-rw-r--r--var/spack/repos/builtin.mock/packages/python/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/simple-inheritance/package.py24
-rw-r--r--var/spack/repos/builtin.mock/packages/svn-test/package.py1
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py (renamed from var/spack/repos/builtin.mock/packages/trivial_install_test_package/package.py)1
-rw-r--r--var/spack/repos/builtin.mock/packages/zmpi/package.py1
-rw-r--r--var/spack/repos/builtin/packages/ImageMagick/package.py63
-rw-r--r--var/spack/repos/builtin/packages/R/package.py130
-rw-r--r--var/spack/repos/builtin/packages/abinit/package.py175
-rw-r--r--var/spack/repos/builtin/packages/ack/package.py51
-rw-r--r--var/spack/repos/builtin/packages/activeharmony/package.py7
-rw-r--r--var/spack/repos/builtin/packages/adept-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/adios/adios_1100.patch29
-rw-r--r--var/spack/repos/builtin/packages/adios/package.py131
-rw-r--r--var/spack/repos/builtin/packages/adol-c/openmp_exam_261.patch (renamed from var/spack/repos/builtin/packages/adol-c/openmp_exam.patch)0
-rw-r--r--var/spack/repos/builtin/packages/adol-c/package.py63
-rw-r--r--var/spack/repos/builtin/packages/ant/package.py44
-rw-r--r--var/spack/repos/builtin/packages/antlr/package.py51
-rw-r--r--var/spack/repos/builtin/packages/ape/package.py62
-rw-r--r--var/spack/repos/builtin/packages/apex/package.py19
-rw-r--r--var/spack/repos/builtin/packages/applewmproto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/appres/package.py50
-rw-r--r--var/spack/repos/builtin/packages/apr-util/package.py1
-rw-r--r--var/spack/repos/builtin/packages/apr/package.py1
-rw-r--r--var/spack/repos/builtin/packages/armadillo/package.py72
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/make_install.patch24
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/package.py90
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/parpack_cmake.patch18
-rw-r--r--var/spack/repos/builtin/packages/arpack/package.py40
-rw-r--r--var/spack/repos/builtin/packages/asciidoc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/astra/package.py41
-rw-r--r--var/spack/repos/builtin/packages/astyle/package.py34
-rw-r--r--var/spack/repos/builtin/packages/atk/package.py10
-rw-r--r--var/spack/repos/builtin/packages/atlas/package.py96
-rw-r--r--var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c49
-rw-r--r--var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output12
-rw-r--r--var/spack/repos/builtin/packages/atompaw/package.py63
-rw-r--r--var/spack/repos/builtin/packages/atop/package.py3
-rw-r--r--var/spack/repos/builtin/packages/autoconf/package.py30
-rw-r--r--var/spack/repos/builtin/packages/automaded/package.py2
-rw-r--r--var/spack/repos/builtin/packages/automake/package.py22
-rw-r--r--var/spack/repos/builtin/packages/bamtools/package.py45
-rw-r--r--var/spack/repos/builtin/packages/bash-completion/package.py64
-rw-r--r--var/spack/repos/builtin/packages/bash/package.py1
-rw-r--r--var/spack/repos/builtin/packages/bazel/cc_configure.patch28
-rw-r--r--var/spack/repos/builtin/packages/bazel/fix_env_handling.patch119
-rw-r--r--var/spack/repos/builtin/packages/bazel/link.patch133
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py89
-rw-r--r--var/spack/repos/builtin/packages/bbcp/package.py13
-rw-r--r--var/spack/repos/builtin/packages/bcftools/package.py43
-rw-r--r--var/spack/repos/builtin/packages/bdftopcf/package.py50
-rw-r--r--var/spack/repos/builtin/packages/bdw-gc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/bear/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bedtools2/package.py43
-rw-r--r--var/spack/repos/builtin/packages/beforelight/package.py50
-rw-r--r--var/spack/repos/builtin/packages/bertini/package.py50
-rw-r--r--var/spack/repos/builtin/packages/bib2xhtml/package.py3
-rw-r--r--var/spack/repos/builtin/packages/bigreqsproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py19
-rw-r--r--var/spack/repos/builtin/packages/binutils/update_symbol-2.26.patch104
-rw-r--r--var/spack/repos/builtin/packages/bison/package.py7
-rw-r--r--var/spack/repos/builtin/packages/bitmap/package.py51
-rw-r--r--var/spack/repos/builtin/packages/bliss/Makefile.spack.patch62
-rw-r--r--var/spack/repos/builtin/packages/bliss/package.py50
-rw-r--r--var/spack/repos/builtin/packages/blitz/package.py14
-rw-r--r--var/spack/repos/builtin/packages/boost/boost_10125.patch51
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py182
-rw-r--r--var/spack/repos/builtin/packages/bowtie2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/boxlib/package.py29
-rw-r--r--var/spack/repos/builtin/packages/bpp-core/package.py41
-rw-r--r--var/spack/repos/builtin/packages/bpp-phyl/package.py43
-rw-r--r--var/spack/repos/builtin/packages/bpp-seq/package.py42
-rw-r--r--var/spack/repos/builtin/packages/bpp-suite/package.py46
-rw-r--r--var/spack/repos/builtin/packages/bwa/package.py52
-rw-r--r--var/spack/repos/builtin/packages/bzip2/package.py61
-rw-r--r--var/spack/repos/builtin/packages/c-blosc/package.py52
-rw-r--r--var/spack/repos/builtin/packages/cairo/package.py31
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py17
-rw-r--r--var/spack/repos/builtin/packages/callpath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py202
-rw-r--r--var/spack/repos/builtin/packages/cask/package.py55
-rw-r--r--var/spack/repos/builtin/packages/catch/package.py40
-rw-r--r--var/spack/repos/builtin/packages/cblas/package.py11
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis/package.py121
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py247
-rw-r--r--var/spack/repos/builtin/packages/cbtf-lanl/package.py93
-rw-r--r--var/spack/repos/builtin/packages/cbtf/package.py151
-rw-r--r--var/spack/repos/builtin/packages/ccache/package.py44
-rw-r--r--var/spack/repos/builtin/packages/cdd/Makefile.spack.patch22
-rw-r--r--var/spack/repos/builtin/packages/cdd/package.py52
-rw-r--r--var/spack/repos/builtin/packages/cddlib/package.py58
-rw-r--r--var/spack/repos/builtin/packages/cdo/package.py117
-rw-r--r--var/spack/repos/builtin/packages/cereal/package.py14
-rw-r--r--var/spack/repos/builtin/packages/cfitsio/package.py10
-rw-r--r--var/spack/repos/builtin/packages/cgal/package.py94
-rw-r--r--var/spack/repos/builtin/packages/cgm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cgns/package.py73
-rw-r--r--var/spack/repos/builtin/packages/charm/mpi.patch19
-rw-r--r--var/spack/repos/builtin/packages/charm/package.py190
-rw-r--r--var/spack/repos/builtin/packages/charm/strictpass.patch16
-rw-r--r--var/spack/repos/builtin/packages/cityhash/package.py10
-rw-r--r--var/spack/repos/builtin/packages/cleverleaf/package.py18
-rw-r--r--var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch11
-rw-r--r--var/spack/repos/builtin/packages/clhep/package.py81
-rw-r--r--var/spack/repos/builtin/packages/cloog/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch23
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py71
-rw-r--r--var/spack/repos/builtin/packages/cmocka/package.py9
-rw-r--r--var/spack/repos/builtin/packages/cmor/package.py72
-rw-r--r--var/spack/repos/builtin/packages/cnmem/package.py7
-rw-r--r--var/spack/repos/builtin/packages/compiz/package.py63
-rw-r--r--var/spack/repos/builtin/packages/compositeproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/conduit/package.py313
-rw-r--r--var/spack/repos/builtin/packages/constype/package.py47
-rw-r--r--var/spack/repos/builtin/packages/converge/package.py69
-rw-r--r--var/spack/repos/builtin/packages/coreutils/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py208
-rw-r--r--var/spack/repos/builtin/packages/cppad/package.py48
-rw-r--r--var/spack/repos/builtin/packages/cppcheck/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cppunit/package.py34
-rw-r--r--var/spack/repos/builtin/packages/cram/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cryptopp/package.py20
-rw-r--r--var/spack/repos/builtin/packages/cscope/package.py12
-rw-r--r--var/spack/repos/builtin/packages/cube/package.py24
-rw-r--r--var/spack/repos/builtin/packages/cuda/package.py40
-rw-r--r--var/spack/repos/builtin/packages/curl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/czmq/package.py28
-rw-r--r--var/spack/repos/builtin/packages/daal/package.py52
-rw-r--r--var/spack/repos/builtin/packages/dakota/package.py39
-rw-r--r--var/spack/repos/builtin/packages/damageproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/damselfly/package.py12
-rw-r--r--var/spack/repos/builtin/packages/darshan-runtime/package.py75
-rw-r--r--var/spack/repos/builtin/packages/darshan-util/package.py51
-rw-r--r--var/spack/repos/builtin/packages/datamash/package.py44
-rw-r--r--var/spack/repos/builtin/packages/dbus/package.py1
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py315
-rw-r--r--var/spack/repos/builtin/packages/dia/package.py5
-rw-r--r--var/spack/repos/builtin/packages/dmxproto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/docbook-xml/package.py18
-rw-r--r--var/spack/repos/builtin/packages/docbook-xsl/package.py53
-rw-r--r--var/spack/repos/builtin/packages/doxygen/package.py12
-rw-r--r--var/spack/repos/builtin/packages/dri2proto/package.py20
-rw-r--r--var/spack/repos/builtin/packages/dri3proto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/dtcmp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dyninst/package.py52
-rw-r--r--var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch11
-rw-r--r--var/spack/repos/builtin/packages/dyninst/stat_dysect.patch96
-rw-r--r--var/spack/repos/builtin/packages/editres/package.py48
-rw-r--r--var/spack/repos/builtin/packages/eigen/package.py28
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/elk/package.py6
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py30
-rw-r--r--var/spack/repos/builtin/packages/emacs/package.py36
-rw-r--r--var/spack/repos/builtin/packages/encodings/package.py50
-rw-r--r--var/spack/repos/builtin/packages/environment-modules/package.py38
-rw-r--r--var/spack/repos/builtin/packages/espresso/package.py31
-rw-r--r--var/spack/repos/builtin/packages/espressopp/package.py82
-rw-r--r--var/spack/repos/builtin/packages/etsf-io/package.py67
-rw-r--r--var/spack/repos/builtin/packages/everytrace-example/package.py42
-rw-r--r--var/spack/repos/builtin/packages/everytrace/package.py51
-rw-r--r--var/spack/repos/builtin/packages/evieext/package.py45
-rw-r--r--var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch9
-rw-r--r--var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch12
-rw-r--r--var/spack/repos/builtin/packages/exodusii/package.py71
-rw-r--r--var/spack/repos/builtin/packages/exonerate/package.py45
-rw-r--r--var/spack/repos/builtin/packages/expat/package.py19
-rw-r--r--var/spack/repos/builtin/packages/extrae/package.py48
-rw-r--r--var/spack/repos/builtin/packages/exuberant-ctags/package.py1
-rw-r--r--var/spack/repos/builtin/packages/fastqc/fastqc.patch30
-rw-r--r--var/spack/repos/builtin/packages/fastqc/package.py60
-rw-r--r--var/spack/repos/builtin/packages/fastx-toolkit/package.py43
-rw-r--r--var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch11
-rw-r--r--var/spack/repos/builtin/packages/fenics/package.py198
-rw-r--r--var/spack/repos/builtin/packages/fenics/petsc-3.7.patch394
-rw-r--r--var/spack/repos/builtin/packages/fenics/petsc-version-detection.patch39
-rw-r--r--var/spack/repos/builtin/packages/ferret/package.py103
-rw-r--r--var/spack/repos/builtin/packages/fftw/package.py71
-rw-r--r--var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch865
-rw-r--r--var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch858
-rw-r--r--var/spack/repos/builtin/packages/fish/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fixesproto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/flex/package.py47
-rw-r--r--var/spack/repos/builtin/packages/flint/package.py66
-rw-r--r--var/spack/repos/builtin/packages/fltk/package.py18
-rw-r--r--var/spack/repos/builtin/packages/flux/package.py38
-rw-r--r--var/spack/repos/builtin/packages/foam-extend/package.py289
-rw-r--r--var/spack/repos/builtin/packages/font-adobe-100dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-adobe-75dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py51
-rw-r--r--var/spack/repos/builtin/packages/font-alias/package.py49
-rw-r--r--var/spack/repos/builtin/packages/font-arabic-misc/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-bh-100dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bh-75dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bh-ttf/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-bh-type1/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-bitstream-speedo/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-bitstream-type1/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-cursor-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-daewoo-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-dec-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-ibm-type1/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-isas-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-jis-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-micro-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-misc-cyrillic/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-misc-ethiopic/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-misc-meltho/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-misc-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-mutt-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-schumacher-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-screen-cyrillic/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-sony-misc/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-sun-misc/package.py52
-rw-r--r--var/spack/repos/builtin/packages/font-util/package.py43
-rw-r--r--var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py53
-rw-r--r--var/spack/repos/builtin/packages/font-xfree86-type1/package.py52
-rw-r--r--var/spack/repos/builtin/packages/fontcacheproto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/fontconfig/package.py19
-rw-r--r--var/spack/repos/builtin/packages/fontsproto/package.py42
-rw-r--r--var/spack/repos/builtin/packages/fonttosfnt/package.py47
-rw-r--r--var/spack/repos/builtin/packages/freetype/package.py25
-rw-r--r--var/spack/repos/builtin/packages/fslsfonts/package.py46
-rw-r--r--var/spack/repos/builtin/packages/fstobdf/package.py50
-rw-r--r--var/spack/repos/builtin/packages/gasnet/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gawk/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gbenchmark/package.py59
-rw-r--r--var/spack/repos/builtin/packages/gcc/gcc-backport.patch138
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py56
-rw-r--r--var/spack/repos/builtin/packages/gcc/piclibs.patch62
-rw-r--r--var/spack/repos/builtin/packages/gccmakedep/package.py42
-rw-r--r--var/spack/repos/builtin/packages/gconf/package.py51
-rw-r--r--var/spack/repos/builtin/packages/gdal/package.py13
-rw-r--r--var/spack/repos/builtin/packages/gdb/package.py21
-rw-r--r--var/spack/repos/builtin/packages/gdk-pixbuf/package.py3
-rw-r--r--var/spack/repos/builtin/packages/geant4/package.py85
-rw-r--r--var/spack/repos/builtin/packages/geos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gettext/package.py85
-rw-r--r--var/spack/repos/builtin/packages/gflags/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ghostscript-fonts/package.py43
-rw-r--r--var/spack/repos/builtin/packages/ghostscript/package.py14
-rw-r--r--var/spack/repos/builtin/packages/giflib/package.py41
-rw-r--r--var/spack/repos/builtin/packages/git-lfs/package.py53
-rw-r--r--var/spack/repos/builtin/packages/git/package.py53
-rw-r--r--var/spack/repos/builtin/packages/gl2ps/package.py1
-rw-r--r--var/spack/repos/builtin/packages/glew/package.py51
-rw-r--r--var/spack/repos/builtin/packages/glib/g_date_strftime.patch34
-rw-r--r--var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch16
-rw-r--r--var/spack/repos/builtin/packages/glib/package.py39
-rw-r--r--var/spack/repos/builtin/packages/glm/package.py11
-rw-r--r--var/spack/repos/builtin/packages/global/package.py2
-rw-r--r--var/spack/repos/builtin/packages/globus-toolkit/package.py40
-rw-r--r--var/spack/repos/builtin/packages/glog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glpk/package.py13
-rw-r--r--var/spack/repos/builtin/packages/glproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gmake/package.py42
-rw-r--r--var/spack/repos/builtin/packages/gmp/package.py30
-rw-r--r--var/spack/repos/builtin/packages/gmsh/package.py105
-rw-r--r--var/spack/repos/builtin/packages/gnu-prolog/package.py42
-rw-r--r--var/spack/repos/builtin/packages/gnuplot/package.py17
-rw-r--r--var/spack/repos/builtin/packages/gnutls/package.py1
-rw-r--r--var/spack/repos/builtin/packages/go-bootstrap/package.py67
-rw-r--r--var/spack/repos/builtin/packages/go/misc-cgo-testcshared.patch11
-rw-r--r--var/spack/repos/builtin/packages/go/package.py87
-rw-r--r--var/spack/repos/builtin/packages/go/time_test.patch18
-rw-r--r--var/spack/repos/builtin/packages/gobject-introspection/package.py51
-rw-r--r--var/spack/repos/builtin/packages/googletest/package.py10
-rw-r--r--var/spack/repos/builtin/packages/gource/package.py63
-rw-r--r--var/spack/repos/builtin/packages/gperf/package.py7
-rw-r--r--var/spack/repos/builtin/packages/gperftools/package.py14
-rw-r--r--var/spack/repos/builtin/packages/grackle/Make.mach.template71
-rw-r--r--var/spack/repos/builtin/packages/grackle/package.py89
-rw-r--r--var/spack/repos/builtin/packages/grandr/package.py45
-rw-r--r--var/spack/repos/builtin/packages/graphlib/package.py8
-rw-r--r--var/spack/repos/builtin/packages/graphviz/package.py25
-rw-r--r--var/spack/repos/builtin/packages/grib-api/package.py80
-rw-r--r--var/spack/repos/builtin/packages/gromacs/package.py55
-rw-r--r--var/spack/repos/builtin/packages/gsl/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gtkplus/package.py14
-rw-r--r--var/spack/repos/builtin/packages/gts/package.py53
-rw-r--r--var/spack/repos/builtin/packages/guile/package.py68
-rw-r--r--var/spack/repos/builtin/packages/h5hut/package.py75
-rw-r--r--var/spack/repos/builtin/packages/hadoop/package.py52
-rw-r--r--var/spack/repos/builtin/packages/harfbuzz/package.py6
-rw-r--r--var/spack/repos/builtin/packages/harminv/package.py54
-rw-r--r--var/spack/repos/builtin/packages/hdf/package.py36
-rw-r--r--var/spack/repos/builtin/packages/hdf5-blosc/package.py212
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py140
-rw-r--r--var/spack/repos/builtin/packages/help2man/package.py37
-rw-r--r--var/spack/repos/builtin/packages/hepmc/package.py55
-rw-r--r--var/spack/repos/builtin/packages/heppdt/package.py48
-rw-r--r--var/spack/repos/builtin/packages/hmmer/package.py76
-rw-r--r--var/spack/repos/builtin/packages/hoomd-blue/package.py13
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit-externals/package.py49
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py65
-rw-r--r--var/spack/repos/builtin/packages/hpl/package.py119
-rw-r--r--var/spack/repos/builtin/packages/hpx5/package.py6
-rw-r--r--var/spack/repos/builtin/packages/hsakmt/package.py41
-rw-r--r--var/spack/repos/builtin/packages/htop/package.py41
-rw-r--r--var/spack/repos/builtin/packages/htslib/package.py41
-rw-r--r--var/spack/repos/builtin/packages/hub/package.py24
-rw-r--r--var/spack/repos/builtin/packages/hwloc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hydra/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hypre/package.py50
-rw-r--r--var/spack/repos/builtin/packages/ibmisc/package.py78
-rw-r--r--var/spack/repos/builtin/packages/iceauth/package.py48
-rw-r--r--var/spack/repos/builtin/packages/icet/package.py46
-rw-r--r--var/spack/repos/builtin/packages/ico/package.py49
-rw-r--r--var/spack/repos/builtin/packages/icu4c/package.py25
-rw-r--r--var/spack/repos/builtin/packages/ilmbase/package.py42
-rw-r--r--var/spack/repos/builtin/packages/image-magick/package.py57
-rw-r--r--var/spack/repos/builtin/packages/imake/package.py43
-rw-r--r--var/spack/repos/builtin/packages/inputproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/intel-gpu-tools/package.py67
-rw-r--r--var/spack/repos/builtin/packages/intel-mkl/package.py99
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py362
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py176
-rw-r--r--var/spack/repos/builtin/packages/intltool/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ior/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ipopt/package.py18
-rw-r--r--var/spack/repos/builtin/packages/ipp/package.py50
-rw-r--r--var/spack/repos/builtin/packages/isl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/itstool/package.py44
-rw-r--r--var/spack/repos/builtin/packages/jansson/package.py35
-rw-r--r--var/spack/repos/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch25
-rw-r--r--var/spack/repos/builtin/packages/jasper/package.py63
-rw-r--r--var/spack/repos/builtin/packages/jdk/package.py46
-rw-r--r--var/spack/repos/builtin/packages/jemalloc/package.py9
-rw-r--r--var/spack/repos/builtin/packages/jpeg/package.py1
-rw-r--r--var/spack/repos/builtin/packages/jsoncpp/package.py (renamed from var/spack/repos/builtin/packages/icu/package.py)32
-rw-r--r--var/spack/repos/builtin/packages/judy/package.py3
-rw-r--r--var/spack/repos/builtin/packages/julia/package.py167
-rw-r--r--var/spack/repos/builtin/packages/kbproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/kdiff3/package.py44
-rw-r--r--var/spack/repos/builtin/packages/kealib/package.py10
-rw-r--r--var/spack/repos/builtin/packages/kripke/package.py1
-rw-r--r--var/spack/repos/builtin/packages/launchmon/package.py26
-rw-r--r--var/spack/repos/builtin/packages/lbxproxy/package.py58
-rw-r--r--var/spack/repos/builtin/packages/lcms/package.py1
-rw-r--r--var/spack/repos/builtin/packages/leveldb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libaio/package.py43
-rw-r--r--var/spack/repos/builtin/packages/libapplewm/package.py54
-rw-r--r--var/spack/repos/builtin/packages/libarchive/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libatomic-ops/package.py42
-rw-r--r--var/spack/repos/builtin/packages/libcerf/package.py15
-rw-r--r--var/spack/repos/builtin/packages/libcircle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libctl/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libdmx/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libdrm/package.py14
-rw-r--r--var/spack/repos/builtin/packages/libdwarf/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libedit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libelf/package.py18
-rw-r--r--var/spack/repos/builtin/packages/libemos/package.py52
-rw-r--r--var/spack/repos/builtin/packages/libepoxy/package.py39
-rw-r--r--var/spack/repos/builtin/packages/libevent/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libffi/package.py16
-rw-r--r--var/spack/repos/builtin/packages/libfontenc/package.py46
-rw-r--r--var/spack/repos/builtin/packages/libfs/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libgcrypt/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libgd/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libgpg-error/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libgtextutils/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libhio/package.py45
-rw-r--r--var/spack/repos/builtin/packages/libice/package.py45
-rw-r--r--var/spack/repos/builtin/packages/libiconv/gets.patch13
-rw-r--r--var/spack/repos/builtin/packages/libiconv/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libint/package.py104
-rw-r--r--var/spack/repos/builtin/packages/libjpeg-turbo/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libjson-c/package.py11
-rw-r--r--var/spack/repos/builtin/packages/liblbxutil/package.py51
-rw-r--r--var/spack/repos/builtin/packages/libmesh/package.py56
-rw-r--r--var/spack/repos/builtin/packages/libmng/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libmonitor/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libnbc/package.py (renamed from var/spack/repos/builtin/packages/libNBC/package.py)1
-rw-r--r--var/spack/repos/builtin/packages/liboldx/package.py45
-rw-r--r--var/spack/repos/builtin/packages/libpciaccess/package.py17
-rw-r--r--var/spack/repos/builtin/packages/libpng/package.py34
-rw-r--r--var/spack/repos/builtin/packages/libpthread-stubs/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libquo/package.py68
-rw-r--r--var/spack/repos/builtin/packages/libsigsegv/package.py14
-rw-r--r--var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess1187
-rw-r--r--var/spack/repos/builtin/packages/libsm/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libsodium/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libspatialindex/package.py32
-rw-r--r--var/spack/repos/builtin/packages/libsplash/package.py64
-rw-r--r--var/spack/repos/builtin/packages/libtermkey/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libtiff/package.py14
-rw-r--r--var/spack/repos/builtin/packages/libtool/package.py28
-rw-r--r--var/spack/repos/builtin/packages/libunistring/package.py42
-rw-r--r--var/spack/repos/builtin/packages/libunwind/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libuuid/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libuv/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libvterm/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libwebsockets/package.py39
-rw-r--r--var/spack/repos/builtin/packages/libwindowswm/package.py53
-rw-r--r--var/spack/repos/builtin/packages/libx11/package.py51
-rw-r--r--var/spack/repos/builtin/packages/libxau/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libxaw/package.py52
-rw-r--r--var/spack/repos/builtin/packages/libxaw3d/package.py50
-rw-r--r--var/spack/repos/builtin/packages/libxc/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libxcb/package.py30
-rw-r--r--var/spack/repos/builtin/packages/libxcomposite/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxcursor/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxdamage/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxdmcp/package.py45
-rw-r--r--var/spack/repos/builtin/packages/libxevie/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxext/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libxfixes/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxfont/package.py54
-rw-r--r--var/spack/repos/builtin/packages/libxfont2/package.py54
-rw-r--r--var/spack/repos/builtin/packages/libxfontcache/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxft/package.py52
-rw-r--r--var/spack/repos/builtin/packages/libxi/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxinerama/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxkbfile/package.py46
-rw-r--r--var/spack/repos/builtin/packages/libxkbui/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libxml2/package.py24
-rw-r--r--var/spack/repos/builtin/packages/libxmu/package.py51
-rw-r--r--var/spack/repos/builtin/packages/libxp/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxpm/package.py50
-rw-r--r--var/spack/repos/builtin/packages/libxpresent/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxprintapputil/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxprintutil/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxrandr/package.py50
-rw-r--r--var/spack/repos/builtin/packages/libxrender/package.py46
-rw-r--r--var/spack/repos/builtin/packages/libxres/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxscrnsaver/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libxshmfence/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libxslt/package.py9
-rw-r--r--var/spack/repos/builtin/packages/libxsmm/package.py66
-rw-r--r--var/spack/repos/builtin/packages/libxstream/package.py50
-rw-r--r--var/spack/repos/builtin/packages/libxt/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxtrap/package.py58
-rw-r--r--var/spack/repos/builtin/packages/libxtst/package.py59
-rw-r--r--var/spack/repos/builtin/packages/libxv/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxvmc/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxxf86dga/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxxf86misc/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libxxf86vm/package.py49
-rw-r--r--var/spack/repos/builtin/packages/likwid/package.py69
-rw-r--r--var/spack/repos/builtin/packages/listres/package.py49
-rw-r--r--var/spack/repos/builtin/packages/llvm-lld/package.py5
-rw-r--r--var/spack/repos/builtin/packages/llvm/package.py408
-rw-r--r--var/spack/repos/builtin/packages/lmdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lmod/fix_tclsh_paths.patch10
-rw-r--r--var/spack/repos/builtin/packages/lmod/package.py44
-rw-r--r--var/spack/repos/builtin/packages/lndir/package.py44
-rw-r--r--var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch60
-rw-r--r--var/spack/repos/builtin/packages/lrslib/package.py61
-rw-r--r--var/spack/repos/builtin/packages/lrzip/package.py61
-rw-r--r--var/spack/repos/builtin/packages/lua-jit/package.py (renamed from var/spack/repos/builtin/packages/LuaJIT/package.py)3
-rw-r--r--var/spack/repos/builtin/packages/lua-luafilesystem/package.py52
-rw-r--r--var/spack/repos/builtin/packages/lua-luaposix/package.py24
-rw-r--r--var/spack/repos/builtin/packages/lua/package.py22
-rw-r--r--var/spack/repos/builtin/packages/luit/package.py51
-rw-r--r--var/spack/repos/builtin/packages/lulesh/package.py55
-rw-r--r--var/spack/repos/builtin/packages/lulesh/remove_defaults.patch60
-rw-r--r--var/spack/repos/builtin/packages/lwgrp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lwm2/package.py1
-rw-r--r--var/spack/repos/builtin/packages/lz4/package.py45
-rw-r--r--var/spack/repos/builtin/packages/lzma/package.py41
-rw-r--r--var/spack/repos/builtin/packages/lzo/package.py44
-rw-r--r--var/spack/repos/builtin/packages/m4/package.py30
-rw-r--r--var/spack/repos/builtin/packages/mafft/package.py42
-rw-r--r--var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch5
-rw-r--r--var/spack/repos/builtin/packages/magics/package.py115
-rw-r--r--var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch73
-rw-r--r--var/spack/repos/builtin/packages/makedepend/package.py44
-rw-r--r--var/spack/repos/builtin/packages/mariadb/package.py59
-rw-r--r--var/spack/repos/builtin/packages/matio/package.py23
-rw-r--r--var/spack/repos/builtin/packages/maven/package.py41
-rw-r--r--var/spack/repos/builtin/packages/mbedtls/package.py19
-rw-r--r--var/spack/repos/builtin/packages/meep/package.py109
-rw-r--r--var/spack/repos/builtin/packages/memaxes/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mercurial/package.py69
-rw-r--r--var/spack/repos/builtin/packages/mesa/package.py45
-rw-r--r--var/spack/repos/builtin/packages/metis/package.py245
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py131
-rw-r--r--var/spack/repos/builtin/packages/mitos/package.py (renamed from var/spack/repos/builtin/packages/Mitos/package.py)1
-rw-r--r--var/spack/repos/builtin/packages/mkfontdir/package.py47
-rw-r--r--var/spack/repos/builtin/packages/mkfontscale/package.py48
-rw-r--r--var/spack/repos/builtin/packages/moab/package.py10
-rw-r--r--var/spack/repos/builtin/packages/mpc/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mpe2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mpfr/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mpibash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py147
-rw-r--r--var/spack/repos/builtin/packages/mpileaks/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mpip/package.py44
-rw-r--r--var/spack/repos/builtin/packages/mpir/package.py62
-rw-r--r--var/spack/repos/builtin/packages/mrnet/package.py21
-rw-r--r--var/spack/repos/builtin/packages/msgpack-c/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mumps/package.py118
-rw-r--r--var/spack/repos/builtin/packages/munge/package.py12
-rw-r--r--var/spack/repos/builtin/packages/muparser/package.py1
-rw-r--r--var/spack/repos/builtin/packages/muster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/package.py169
-rw-r--r--var/spack/repos/builtin/packages/mxml/package.py50
-rw-r--r--var/spack/repos/builtin/packages/nag/package.py6
-rw-r--r--var/spack/repos/builtin/packages/nano/package.py40
-rw-r--r--var/spack/repos/builtin/packages/nasm/package.py1
-rw-r--r--var/spack/repos/builtin/packages/nauty/package.py89
-rw-r--r--var/spack/repos/builtin/packages/nccmp/package.py1
-rw-r--r--var/spack/repos/builtin/packages/ncdu/package.py12
-rw-r--r--var/spack/repos/builtin/packages/ncl/package.py233
-rw-r--r--var/spack/repos/builtin/packages/ncl/spack_ncl.patch30
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py39
-rw-r--r--var/spack/repos/builtin/packages/ncurses/package.py16
-rw-r--r--var/spack/repos/builtin/packages/ncview/package.py16
-rw-r--r--var/spack/repos/builtin/packages/ndiff/package.py12
-rw-r--r--var/spack/repos/builtin/packages/netcdf-cxx/package.py8
-rw-r--r--var/spack/repos/builtin/packages/netcdf-cxx4/package.py9
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/package.py9
-rw-r--r--var/spack/repos/builtin/packages/netcdf/package.py136
-rw-r--r--var/spack/repos/builtin/packages/netgauge/package.py1
-rw-r--r--var/spack/repos/builtin/packages/netlib-lapack/package.py81
-rw-r--r--var/spack/repos/builtin/packages/netlib-scalapack/package.py60
-rw-r--r--var/spack/repos/builtin/packages/nettle/package.py12
-rw-r--r--var/spack/repos/builtin/packages/nextflow/package.py42
-rw-r--r--var/spack/repos/builtin/packages/nfft/package.py60
-rw-r--r--var/spack/repos/builtin/packages/ninja/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nmap/package.py37
-rw-r--r--var/spack/repos/builtin/packages/node-js/package.py110
-rw-r--r--var/spack/repos/builtin/packages/npm/package.py54
-rw-r--r--var/spack/repos/builtin/packages/numdiff/package.py11
-rw-r--r--var/spack/repos/builtin/packages/nwchem/package.py170
-rw-r--r--var/spack/repos/builtin/packages/ocaml/package.py43
-rw-r--r--var/spack/repos/builtin/packages/oce/package.py41
-rw-r--r--var/spack/repos/builtin/packages/oce/sierra.patch45
-rw-r--r--var/spack/repos/builtin/packages/oclock/package.py50
-rw-r--r--var/spack/repos/builtin/packages/octave-splines/package.py44
-rw-r--r--var/spack/repos/builtin/packages/octave/package.py74
-rw-r--r--var/spack/repos/builtin/packages/octopus/package.py134
-rw-r--r--var/spack/repos/builtin/packages/ompss/package.py37
-rw-r--r--var/spack/repos/builtin/packages/ompt-openmp/package.py16
-rw-r--r--var/spack/repos/builtin/packages/opari2/package.py18
-rw-r--r--var/spack/repos/builtin/packages/openblas/openblas_icc.patch253
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py153
-rw-r--r--var/spack/repos/builtin/packages/opencoarrays/package.py49
-rw-r--r--var/spack/repos/builtin/packages/opencv/package.py176
-rw-r--r--var/spack/repos/builtin/packages/openexr/package.py54
-rw-r--r--var/spack/repos/builtin/packages/openjpeg/package.py23
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py282
-rw-r--r--var/spack/repos/builtin/packages/openscenegraph/package.py77
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py538
-rw-r--r--var/spack/repos/builtin/packages/openssl/package.py88
-rw-r--r--var/spack/repos/builtin/packages/opium/package.py51
-rw-r--r--var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/otf/package.py1
-rw-r--r--var/spack/repos/builtin/packages/otf2/package.py12
-rw-r--r--var/spack/repos/builtin/packages/p4est/package.py45
-rw-r--r--var/spack/repos/builtin/packages/panda/package.py45
-rw-r--r--var/spack/repos/builtin/packages/pango/package.py15
-rw-r--r--var/spack/repos/builtin/packages/papi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/paradiseo/package.py71
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/package.py27
-rw-r--r--var/spack/repos/builtin/packages/parallel/package.py44
-rw-r--r--var/spack/repos/builtin/packages/paraver/package.py25
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py73
-rw-r--r--var/spack/repos/builtin/packages/parmetis/package.py56
-rw-r--r--var/spack/repos/builtin/packages/parmgridgen/package.py71
-rw-r--r--var/spack/repos/builtin/packages/parpack/package.py5
-rw-r--r--var/spack/repos/builtin/packages/patch/package.py37
-rw-r--r--var/spack/repos/builtin/packages/patchelf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/pcre/intel.patch12
-rw-r--r--var/spack/repos/builtin/packages/pcre/package.py16
-rw-r--r--var/spack/repos/builtin/packages/pcre2/package.py1
-rw-r--r--var/spack/repos/builtin/packages/pdt/package.py25
-rw-r--r--var/spack/repos/builtin/packages/perl/package.py75
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py180
-rw-r--r--var/spack/repos/builtin/packages/pexsi/make.inc79
-rw-r--r--var/spack/repos/builtin/packages/pexsi/package.py103
-rw-r--r--var/spack/repos/builtin/packages/pfft/package.py64
-rw-r--r--var/spack/repos/builtin/packages/pflotran/package.py45
-rw-r--r--var/spack/repos/builtin/packages/pgi/package.py9
-rw-r--r--var/spack/repos/builtin/packages/pidx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/piranha/package.py73
-rw-r--r--var/spack/repos/builtin/packages/pixman/package.py24
-rw-r--r--var/spack/repos/builtin/packages/pkg-config/g_date_strftime.patch34
-rw-r--r--var/spack/repos/builtin/packages/pkg-config/package.py30
-rw-r--r--var/spack/repos/builtin/packages/plumed/package.py158
-rw-r--r--var/spack/repos/builtin/packages/pmgr-collective/package.py (renamed from var/spack/repos/builtin/packages/pmgr_collective/package.py)1
-rw-r--r--var/spack/repos/builtin/packages/pngwriter/package.py58
-rw-r--r--var/spack/repos/builtin/packages/polymake/package.py57
-rw-r--r--var/spack/repos/builtin/packages/porta/Makefile.spack.patch23
-rw-r--r--var/spack/repos/builtin/packages/porta/package.py44
-rw-r--r--var/spack/repos/builtin/packages/postgresql/package.py15
-rw-r--r--var/spack/repos/builtin/packages/ppl/package.py1
-rw-r--r--var/spack/repos/builtin/packages/prank/package.py44
-rw-r--r--var/spack/repos/builtin/packages/presentproto/package.py42
-rw-r--r--var/spack/repos/builtin/packages/printproto/package.py43
-rw-r--r--var/spack/repos/builtin/packages/proj/package.py1
-rw-r--r--var/spack/repos/builtin/packages/protobuf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/proxymngr/package.py52
-rw-r--r--var/spack/repos/builtin/packages/psi4/package.py124
-rw-r--r--var/spack/repos/builtin/packages/py-3to2/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-alabaster/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-argcomplete/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-astroid/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-astropy/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-autopep8/package.py50
-rw-r--r--var/spack/repos/builtin/packages/py-babel/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-backports-abc/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-basemap/package.py99
-rw-r--r--var/spack/repos/builtin/packages/py-beautifulsoup4/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-biopython/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-bleach/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-blessings/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-bottleneck/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-cclib/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-cdo/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-certifi/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-cffi/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-configparser/package.py44
-rw-r--r--var/spack/repos/builtin/packages/py-coverage/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-csvkit/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-cycler/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-cython/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-dask/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-dateutil/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-dbf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-decorator/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-docutils/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-emcee/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-entrypoints/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-enum34/package.py43
-rw-r--r--var/spack/repos/builtin/packages/py-epydoc/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-flake8/package.py44
-rw-r--r--var/spack/repos/builtin/packages/py-funcsigs/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-functools32/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-futures/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-genders/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-genshi/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-gnuplot/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-html5lib/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-imagesize/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-iminuit/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-ipdb/package.py58
-rw-r--r--var/spack/repos/builtin/packages/py-ipykernel/package.py51
-rw-r--r--var/spack/repos/builtin/packages/py-ipython-genutils/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-ipython/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-ipywidgets/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-jdcal/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-jinja2/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-jsonschema/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-client/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-console/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-core/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-notebook/package.py61
-rw-r--r--var/spack/repos/builtin/packages/py-lockfile/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-logilab-common/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-macs2/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-mako/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-markdown/package.py56
-rw-r--r--var/spack/repos/builtin/packages/py-markupsafe/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib/package.py121
-rw-r--r--var/spack/repos/builtin/packages/py-mccabe/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-meep/package.py89
-rw-r--r--var/spack/repos/builtin/packages/py-mistune/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-mock/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-monotonic/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-mpi4py/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-mpmath/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-mx/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-mysqldb1/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-nbconvert/package.py55
-rw-r--r--var/spack/repos/builtin/packages/py-nbformat/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-nestle/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-netcdf/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-nose/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-numexpr/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py52
-rw-r--r--var/spack/repos/builtin/packages/py-openpyxl/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-ordereddict/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-pandas/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-pathlib2/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-pathspec/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-pbr/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-periodictable/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-pexpect/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-phonopy/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-pickleshare/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-pil/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-pillow/package.py131
-rw-r--r--var/spack/repos/builtin/packages/py-pip/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-ply/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-pmw/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-prettytable/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-proj/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-prompt-toolkit/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py45
-rw-r--r--var/spack/repos/builtin/packages/py-psutil/package.py43
-rw-r--r--var/spack/repos/builtin/packages/py-ptyprocess/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-pudb/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-py/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-py2cairo/package.py44
-rw-r--r--var/spack/repos/builtin/packages/py-py2neo/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pychecker/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-pycodestyle/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-pycparser/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-pycurl/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-pydatalog/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-pyelftools/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-pyflakes/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-pygments/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-pygobject/package.py48
-rw-r--r--var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch35
-rw-r--r--var/spack/repos/builtin/packages/py-pygtk/package.py44
-rw-r--r--var/spack/repos/builtin/packages/py-pylint/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-pypar/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pyparsing/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pyqt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyside/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-pytables/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-pytest/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-python-daemon/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-pytz/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-pyyaml/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-readme-renderer/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-restview/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-rpy2/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-rtree/package.py56
-rw-r--r--var/spack/repos/builtin/packages/py-scientificpython/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-image/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-shiboken/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-simplegeneric/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-singledispatch/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-sip/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-six/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-sncosmo/package.py48
-rw-r--r--var/spack/repos/builtin/packages/py-snowballstemmer/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-sqlalchemy/package.py (renamed from var/spack/repos/builtin/packages/py-SQLAlchemy/package.py)8
-rw-r--r--var/spack/repos/builtin/packages/py-storm/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-symengine/package.py45
-rw-r--r--var/spack/repos/builtin/packages/py-sympy/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-tappy/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-terminado/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-tornado/package.py48
-rw-r--r--var/spack/repos/builtin/packages/py-traitlets/package.py50
-rw-r--r--var/spack/repos/builtin/packages/py-tuiview/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-twisted/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2py3k/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-urwid/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-vcversioner/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-virtualenv/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-wcsaxes/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-wcwidth/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-wheel/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-widgetsnbextension/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-xlrd/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-xpyb/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-yapf/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-yt/package.py73
-rw-r--r--var/spack/repos/builtin/packages/py-zmq/package.py40
-rw-r--r--var/spack/repos/builtin/packages/python/ncurses.patch11
-rw-r--r--var/spack/repos/builtin/packages/python/package.py436
-rw-r--r--var/spack/repos/builtin/packages/qhull/package.py18
-rw-r--r--var/spack/repos/builtin/packages/qhull/qhull-iterator.patch45
-rw-r--r--var/spack/repos/builtin/packages/qrupdate/package.py1
-rw-r--r--var/spack/repos/builtin/packages/qt-creator/package.py46
-rw-r--r--var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch17
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py214
-rw-r--r--var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch16
-rw-r--r--var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch31
-rw-r--r--var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch16
-rw-r--r--var/spack/repos/builtin/packages/qthreads/ldflags.patch11
-rw-r--r--var/spack/repos/builtin/packages/qthreads/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-abind/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-assertthat/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-base64enc/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-bh/package.py48
-rw-r--r--var/spack/repos/builtin/packages/r-biocgenerics/package.py (renamed from var/spack/repos/builtin/packages/r-BiocGenerics/package.py)20
-rw-r--r--var/spack/repos/builtin/packages/r-bitops/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-boot/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-brew/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-c50/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-car/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-caret/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-catools/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-chron/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-class/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-cluster/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-codetools/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-colorspace/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-crayon/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-cubature/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-curl/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-datatable/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-dbi/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-deoptim/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-devtools/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-diagrammer/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-dichromat/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-digest/package.py50
-rw-r--r--var/spack/repos/builtin/packages/r-doparallel/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-dplyr/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-dt/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-dygraphs/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-e1071/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-evaluate/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-filehash/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-foreach/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-foreign/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-formatr/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-formula/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-gdata/package.py53
-rw-r--r--var/spack/repos/builtin/packages/r-geosphere/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-ggmap/package.py51
-rw-r--r--var/spack/repos/builtin/packages/r-ggplot2/package.py48
-rw-r--r--var/spack/repos/builtin/packages/r-ggvis/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-gistr/package.py49
-rw-r--r--var/spack/repos/builtin/packages/r-git2r/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-glmnet/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-googlevis/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-gridbase/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-gridextra/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-gtable/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-gtools/package.py54
-rw-r--r--var/spack/repos/builtin/packages/r-hexbin/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-highr/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-htmltools/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-htmlwidgets/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-httpuv/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-httr/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-igraph/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-influencer/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-inline/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-irdisplay/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-irkernel/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-irlba/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-iterators/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-jpeg/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-jsonlite/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-knitr/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-labeling/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-lattice/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-lazyeval/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-leaflet/package.py48
-rw-r--r--var/spack/repos/builtin/packages/r-lme4/package.py47
-rw-r--r--var/spack/repos/builtin/packages/r-lmtest/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-lubridate/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-magic/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-magrittr/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-mapproj/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-maps/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-maptools/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-markdown/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-mass/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-matrix/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-matrixmodels/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-memoise/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-mgcv/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-mime/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-minqa/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-multcomp/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-munsell/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-mvtnorm/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-ncdf4/package.py50
-rw-r--r--var/spack/repos/builtin/packages/r-networkd3/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-nlme/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-nloptr/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-nmf/package.py54
-rw-r--r--var/spack/repos/builtin/packages/r-nnet/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-np/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-openssl/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-packrat/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-partykit/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-pbdzmq/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-pbkrtest/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-pkgmaker/package.py47
-rw-r--r--var/spack/repos/builtin/packages/r-plotrix/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-plyr/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-png/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-praise/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-proto/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-pryr/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-quantmod/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-quantreg/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-r6/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-randomforest/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-raster/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-rbokeh/package.py49
-rw-r--r--var/spack/repos/builtin/packages/r-rcolorbrewer/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-rcpp/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-rcppeigen/package.py50
-rw-r--r--var/spack/repos/builtin/packages/r-registry/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-repr/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-reshape2/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-rgooglemaps/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-rinside/package.py51
-rw-r--r--var/spack/repos/builtin/packages/r-rjava/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-rjson/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-rjsonio/package.py49
-rw-r--r--var/spack/repos/builtin/packages/r-rmarkdown/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-rmysql/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-rngtools/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-rodbc/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-roxygen2/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-rpostgresql/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-rsnns/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-rsqlite/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-rstan/package.py51
-rw-r--r--var/spack/repos/builtin/packages/r-rstudioapi/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-rzmq/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-sandwich/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-scales/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-shiny/package.py46
-rw-r--r--var/spack/repos/builtin/packages/r-sp/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-sparsem/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-stanheaders/package.py49
-rw-r--r--var/spack/repos/builtin/packages/r-stringi/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-stringr/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-survey/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-survival/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-tarifx/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-testit/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-testthat/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-thdata/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-threejs/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-tibble/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-tidyr/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-ttr/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-uuid/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-vcd/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-visnetwork/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-whisker/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-withr/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-xgboost/package.py48
-rw-r--r--var/spack/repos/builtin/packages/r-xlconnect/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-xlconnectjars/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-xlsx/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-xlsxjars/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-xml/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-xtable/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-xts/package.py40
-rw-r--r--var/spack/repos/builtin/packages/r-yaml/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-zoo/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r/package.py185
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py4
-rw-r--r--var/spack/repos/builtin/packages/randrproto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/ravel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/readline/package.py1
-rw-r--r--var/spack/repos/builtin/packages/recordproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/rename/package.py45
-rw-r--r--var/spack/repos/builtin/packages/rendercheck/package.py48
-rw-r--r--var/spack/repos/builtin/packages/renderproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/resourceproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/rgb/package.py51
-rw-r--r--var/spack/repos/builtin/packages/root/math_uint.patch115
-rw-r--r--var/spack/repos/builtin/packages/root/package.py89
-rw-r--r--var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch29
-rw-r--r--var/spack/repos/builtin/packages/rose/package.py15
-rw-r--r--var/spack/repos/builtin/packages/rstart/package.py49
-rw-r--r--var/spack/repos/builtin/packages/rsync/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ruby/package.py13
-rw-r--r--var/spack/repos/builtin/packages/rust-bindgen/package.py42
-rw-r--r--var/spack/repos/builtin/packages/rust/package.py88
-rw-r--r--var/spack/repos/builtin/packages/samrai/no-tool-build.patch (renamed from var/spack/repos/builtin/packages/SAMRAI/no-tool-build.patch)0
-rw-r--r--var/spack/repos/builtin/packages/samrai/package.py (renamed from var/spack/repos/builtin/packages/SAMRAI/package.py)10
-rw-r--r--var/spack/repos/builtin/packages/samtools/package.py27
-rw-r--r--var/spack/repos/builtin/packages/samtools/samtools1.2.patch20
-rw-r--r--var/spack/repos/builtin/packages/sbt/package.py41
-rw-r--r--var/spack/repos/builtin/packages/scalasca/package.py15
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py8
-rw-r--r--var/spack/repos/builtin/packages/scorep/package.py37
-rw-r--r--var/spack/repos/builtin/packages/scotch/Makefile.esmumps5
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py160
-rw-r--r--var/spack/repos/builtin/packages/scr/package.py7
-rw-r--r--var/spack/repos/builtin/packages/screen/package.py58
-rw-r--r--var/spack/repos/builtin/packages/scripts/package.py45
-rw-r--r--var/spack/repos/builtin/packages/scrnsaverproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/sdl2-image/package.py43
-rw-r--r--var/spack/repos/builtin/packages/sdl2/package.py45
-rw-r--r--var/spack/repos/builtin/packages/seqtk/package.py43
-rw-r--r--var/spack/repos/builtin/packages/serf/package.py18
-rw-r--r--var/spack/repos/builtin/packages/sessreg/package.py51
-rw-r--r--var/spack/repos/builtin/packages/setxkbmap/package.py48
-rw-r--r--var/spack/repos/builtin/packages/showfont/package.py47
-rw-r--r--var/spack/repos/builtin/packages/silo/package.py12
-rw-r--r--var/spack/repos/builtin/packages/slepc/install_name_371.patch32
-rw-r--r--var/spack/repos/builtin/packages/slepc/package.py29
-rw-r--r--var/spack/repos/builtin/packages/smproxy/package.py49
-rw-r--r--var/spack/repos/builtin/packages/snappy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sowing/package.py42
-rw-r--r--var/spack/repos/builtin/packages/spark/package.py74
-rw-r--r--var/spack/repos/builtin/packages/sparsehash/package.py1
-rw-r--r--var/spack/repos/builtin/packages/spdlog/package.py36
-rw-r--r--var/spack/repos/builtin/packages/spindle/package.py1
-rw-r--r--var/spack/repos/builtin/packages/spot/package.py7
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py14
-rw-r--r--var/spack/repos/builtin/packages/star-ccm-plus/package.py78
-rw-r--r--var/spack/repos/builtin/packages/stat/package.py27
-rw-r--r--var/spack/repos/builtin/packages/stream/package.py62
-rw-r--r--var/spack/repos/builtin/packages/sublime-text/package.py59
-rw-r--r--var/spack/repos/builtin/packages/subversion/package.py30
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/package.py69
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/tbb_453.patch13
-rw-r--r--var/spack/repos/builtin/packages/sundials/package.py153
-rw-r--r--var/spack/repos/builtin/packages/superlu-dist/package.py58
-rw-r--r--var/spack/repos/builtin/packages/superlu-mt/package.py136
-rw-r--r--var/spack/repos/builtin/packages/superlu/package.py120
-rw-r--r--var/spack/repos/builtin/packages/swiftsim/package.py72
-rw-r--r--var/spack/repos/builtin/packages/swig/package.py3
-rw-r--r--var/spack/repos/builtin/packages/symengine/package.py113
-rw-r--r--var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch10
-rw-r--r--var/spack/repos/builtin/packages/sympol/package.py48
-rw-r--r--var/spack/repos/builtin/packages/szip/package.py28
-rw-r--r--var/spack/repos/builtin/packages/tar/gnutar-configure-xattrs.patch482
-rw-r--r--var/spack/repos/builtin/packages/tar/package.py17
-rw-r--r--var/spack/repos/builtin/packages/task/package.py2
-rw-r--r--var/spack/repos/builtin/packages/taskd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tau/package.py57
-rw-r--r--var/spack/repos/builtin/packages/tbb/package.py56
-rw-r--r--var/spack/repos/builtin/packages/tcl/package.py28
-rw-r--r--var/spack/repos/builtin/packages/tetgen/package.py44
-rw-r--r--var/spack/repos/builtin/packages/tetgen/tetgen-1.5.0-free.patch49
-rw-r--r--var/spack/repos/builtin/packages/tethex/package.py49
-rw-r--r--var/spack/repos/builtin/packages/texinfo/package.py19
-rw-r--r--var/spack/repos/builtin/packages/texlive/package.py67
-rw-r--r--var/spack/repos/builtin/packages/the-platinum-searcher/package.py45
-rw-r--r--var/spack/repos/builtin/packages/the-silver-searcher/package.py (renamed from var/spack/repos/builtin/packages/the_silver_searcher/package.py)6
-rw-r--r--var/spack/repos/builtin/packages/the_platinum_searcher/package.py21
-rw-r--r--var/spack/repos/builtin/packages/thrift/package.py33
-rw-r--r--var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt17
-rw-r--r--var/spack/repos/builtin/packages/tinyxml/package.py39
-rw-r--r--var/spack/repos/builtin/packages/tinyxml2/package.py39
-rw-r--r--var/spack/repos/builtin/packages/tk/package.py32
-rw-r--r--var/spack/repos/builtin/packages/tmux/package.py20
-rw-r--r--var/spack/repos/builtin/packages/tmuxinator/package.py9
-rw-r--r--var/spack/repos/builtin/packages/transset/package.py46
-rw-r--r--var/spack/repos/builtin/packages/trapproto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/tree/package.py63
-rw-r--r--var/spack/repos/builtin/packages/triangle/package.py1
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py348
-rw-r--r--var/spack/repos/builtin/packages/turbomole/package.py16
-rw-r--r--var/spack/repos/builtin/packages/twm/package.py56
-rw-r--r--var/spack/repos/builtin/packages/uberftp/package.py44
-rw-r--r--var/spack/repos/builtin/packages/udunits2/package.py13
-rw-r--r--var/spack/repos/builtin/packages/uncrustify/package.py3
-rw-r--r--var/spack/repos/builtin/packages/unibilium/package.py5
-rw-r--r--var/spack/repos/builtin/packages/unison/package.py51
-rw-r--r--var/spack/repos/builtin/packages/unixodbc/package.py42
-rw-r--r--var/spack/repos/builtin/packages/util-linux/package.py8
-rw-r--r--var/spack/repos/builtin/packages/util-macros/package.py41
-rw-r--r--var/spack/repos/builtin/packages/uuid/package.py37
-rw-r--r--var/spack/repos/builtin/packages/valgrind/package.py16
-rw-r--r--var/spack/repos/builtin/packages/veclibfort/package.py70
-rw-r--r--var/spack/repos/builtin/packages/videoproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/viewres/package.py48
-rw-r--r--var/spack/repos/builtin/packages/vim/package.py105
-rw-r--r--var/spack/repos/builtin/packages/visit/package.py44
-rw-r--r--var/spack/repos/builtin/packages/vizglow/package.py58
-rw-r--r--var/spack/repos/builtin/packages/vtk/gcc.patch21
-rw-r--r--var/spack/repos/builtin/packages/vtk/package.py85
-rw-r--r--var/spack/repos/builtin/packages/wannier90/make.sys7
-rw-r--r--var/spack/repos/builtin/packages/wannier90/package.py116
-rw-r--r--var/spack/repos/builtin/packages/wget/package.py11
-rw-r--r--var/spack/repos/builtin/packages/windowswmproto/package.py44
-rw-r--r--var/spack/repos/builtin/packages/wx/package.py22
-rw-r--r--var/spack/repos/builtin/packages/wxpropgrid/package.py5
-rw-r--r--var/spack/repos/builtin/packages/x11perf/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xauth/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xbacklight/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xbiff/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xbitmaps/package.py43
-rw-r--r--var/spack/repos/builtin/packages/xcalc/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xcb-demo/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xcb-proto/package.py13
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-cursor/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-errors/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-image/package.py52
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-keysyms/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-renderutil/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-wm/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xcb-util/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xclipboard/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xclock/package.py54
-rw-r--r--var/spack/repos/builtin/packages/xcmiscproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xcmsdb/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xcompmgr/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xconsole/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xcursor-themes/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xcursorgen/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xdbedizzy/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xditview/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xdm/package.py54
-rw-r--r--var/spack/repos/builtin/packages/xdpyinfo/package.py54
-rw-r--r--var/spack/repos/builtin/packages/xdriinfo/package.py52
-rw-r--r--var/spack/repos/builtin/packages/xedit/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xerces-c/package.py15
-rw-r--r--var/spack/repos/builtin/packages/xev/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xextproto/package.py44
-rw-r--r--var/spack/repos/builtin/packages/xeyes/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xf86bigfontproto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/xf86dga/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xf86dgaproto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/xf86driproto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xf86miscproto/package.py42
-rw-r--r--var/spack/repos/builtin/packages/xf86rushproto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/xf86vidmodeproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xfd/package.py52
-rw-r--r--var/spack/repos/builtin/packages/xfindproxy/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xfontsel/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xfs/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xfsinfo/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xfwp/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xgamma/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xgc/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xhost/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xineramaproto/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xinit/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xinput/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xkbcomp/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xkbdata/package.py43
-rw-r--r--var/spack/repos/builtin/packages/xkbevd/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xkbprint/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xkbutils/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xkeyboard-config/package.py57
-rw-r--r--var/spack/repos/builtin/packages/xkill/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xload/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xlogo/package.py53
-rw-r--r--var/spack/repos/builtin/packages/xlsatoms/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xlsclients/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xlsfonts/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xmag/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xman/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xmessage/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xmh/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xmlto/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xmodmap/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xmore/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xorg-cf-files/package.py44
-rw-r--r--var/spack/repos/builtin/packages/xorg-docs/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xorg-gtest/package.py51
-rw-r--r--var/spack/repos/builtin/packages/xorg-server/package.py108
-rw-r--r--var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xphelloworld/package.py54
-rw-r--r--var/spack/repos/builtin/packages/xplsprinters/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xpr/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xprehashprinterlist/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xprop/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xproto/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py41
-rw-r--r--var/spack/repos/builtin/packages/xrandr/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xrdb/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xrefresh/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xrootd/package.py52
-rw-r--r--var/spack/repos/builtin/packages/xrx/package.py57
-rw-r--r--var/spack/repos/builtin/packages/xscope/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xsdktrilinos/package.py98
-rw-r--r--var/spack/repos/builtin/packages/xset/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xsetmode/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xsetpointer/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xsetroot/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xsm/package.py49
-rw-r--r--var/spack/repos/builtin/packages/xstdcmap/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xtrans/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xtrap/package.py46
-rw-r--r--var/spack/repos/builtin/packages/xts/package.py60
-rw-r--r--var/spack/repos/builtin/packages/xvidtune/package.py50
-rw-r--r--var/spack/repos/builtin/packages/xvinfo/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xwd/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xwininfo/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xwud/package.py47
-rw-r--r--var/spack/repos/builtin/packages/xz/package.py9
-rw-r--r--var/spack/repos/builtin/packages/yaml-cpp/package.py50
-rw-r--r--var/spack/repos/builtin/packages/yasm/package.py1
-rw-r--r--var/spack/repos/builtin/packages/yorick/package.py81
-rw-r--r--var/spack/repos/builtin/packages/zeromq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/zfp/package.py13
-rw-r--r--var/spack/repos/builtin/packages/zlib/package.py24
-rw-r--r--var/spack/repos/builtin/packages/zoltan/package.py133
-rw-r--r--var/spack/repos/builtin/packages/zsh/package.py9
1243 files changed, 51954 insertions, 5267 deletions
diff --git a/var/spack/mock_configs/site_spackconfig/compilers.yaml b/var/spack/mock_configs/site_spackconfig/compilers.yaml
new file mode 100644
index 0000000000..5f8b38007b
--- /dev/null
+++ b/var/spack/mock_configs/site_spackconfig/compilers.yaml
@@ -0,0 +1,40 @@
+compilers:
+ all:
+ clang@3.3:
+ cc: /path/to/clang
+ cxx: /path/to/clang++
+ f77: None
+ fc: None
+ modules: None
+ strategy: PATH
+ gcc@4.5.0:
+ cc: /path/to/gcc
+ cxx: /path/to/g++
+ f77: /path/to/gfortran
+ fc: /path/to/gfortran
+ modules: None
+ strategy: PATH
+ gcc@5.2.0:
+ cc: cc
+ cxx: CC
+ f77: ftn
+ fc: ftn
+ modules:
+ - PrgEnv-gnu
+ - gcc/5.2.0
+ strategy: MODULES
+ intel@15.0.1:
+ cc: cc
+ ccx: CC
+ f77: ftn
+ fc: ftn
+ modules:
+ - PrgEnv-intel
+ - intel/15.0.1
+ strategy: MODULES
+ intel@15.1.2:
+ cc: /path/to/icc
+ cxx: /path/to/ic++
+ f77: /path/to/ifort
+ fc: /path/to/ifort
+ strategy: PATH \ No newline at end of file
diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py
index 40b92240fc..0d75ee1256 100644
--- a/var/spack/repos/builtin.mock/packages/a/package.py
+++ b/var/spack/repos/builtin.mock/packages/a/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class A(Package):
"""Simple package with no dependencies"""
diff --git a/var/spack/repos/builtin.mock/packages/b/package.py b/var/spack/repos/builtin.mock/packages/b/package.py
index c447a56b48..5729f24e79 100644
--- a/var/spack/repos/builtin.mock/packages/b/package.py
+++ b/var/spack/repos/builtin.mock/packages/b/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class B(Package):
"""Simple package with no dependencies"""
diff --git a/var/spack/repos/builtin.mock/packages/c/package.py b/var/spack/repos/builtin.mock/packages/c/package.py
index 5b6079c4e3..80777a05bb 100644
--- a/var/spack/repos/builtin.mock/packages/c/package.py
+++ b/var/spack/repos/builtin.mock/packages/c/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class C(Package):
"""Simple package with no dependencies"""
diff --git a/var/spack/repos/builtin.mock/packages/callpath/package.py b/var/spack/repos/builtin.mock/packages/callpath/package.py
index c297a123b8..56b969df98 100644
--- a/var/spack/repos/builtin.mock/packages/callpath/package.py
+++ b/var/spack/repos/builtin.mock/packages/callpath/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Callpath(Package):
homepage = "https://github.com/tgamblin/callpath"
url = "http://github.com/tgamblin/callpath-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
index 355689a2d2..51704e3f4b 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
@@ -25,30 +25,28 @@
from spack import *
import os
+
def check(condition, msg):
"""Raise an install error if condition is False."""
if not condition:
raise InstallError(msg)
-class CmakeClient(Package):
+class CmakeClient(CMakePackage):
"""A dumy package that uses cmake."""
homepage = 'https://www.example.com'
url = 'https://www.example.com/cmake-client-1.0.tar.gz'
version('1.0', '4cb3ff35b2472aae70f542116d616e63')
- depends_on('cmake')
-
-
def setup_environment(self, spack_env, run_env):
spack_cc # Ensure spack module-scope variable is avaiabl
check(from_cmake == "from_cmake",
"setup_environment couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg",
- "link arg on dependency spec not readable from setup_environment.")
-
+ "link arg on dependency spec not readable from "
+ "setup_environment.")
def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_cc # Ensure spack module-scope variable is avaiable
@@ -56,8 +54,8 @@ class CmakeClient(Package):
"setup_dependent_environment couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg",
- "link arg on dependency spec not readable from setup_dependent_environment.")
-
+ "link arg on dependency spec not readable from "
+ "setup_dependent_environment.")
def setup_dependent_package(self, module, dspec):
spack_cc # Ensure spack module-scope variable is avaiable
@@ -65,9 +63,13 @@ class CmakeClient(Package):
"setup_dependent_package couldn't read global set by cmake.")
check(self.spec['cmake'].link_arg == "test link arg",
- "link arg on dependency spec not readable from setup_dependent_package.")
+ "link arg on dependency spec not readable from "
+ "setup_dependent_package.")
+ def cmake(self, spec, prefix):
+ pass
+ build = cmake
def install(self, spec, prefix):
# check that cmake is in the global scope.
diff --git a/var/spack/repos/builtin.mock/packages/cmake/package.py b/var/spack/repos/builtin.mock/packages/cmake/package.py
index 0356cf8afb..c8b6464e69 100644
--- a/var/spack/repos/builtin.mock/packages/cmake/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake/package.py
@@ -25,6 +25,7 @@
from spack import *
import os
+
def check(condition, msg):
"""Raise an install error if condition is False."""
if not condition:
@@ -39,7 +40,6 @@ class Cmake(Package):
version('3.4.3', '4cb3ff35b2472aae70f542116d616e63',
url='https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz')
-
def setup_environment(self, spack_env, run_env):
spack_cc # Ensure spack module-scope variable is avaiable
spack_env.set('for_install', 'for_install')
@@ -48,7 +48,6 @@ class Cmake(Package):
spack_cc # Ensure spack module-scope variable is avaiable
spack_env.set('from_cmake', 'from_cmake')
-
def setup_dependent_package(self, module, dspec):
spack_cc # Ensure spack module-scope variable is avaiable
@@ -57,7 +56,6 @@ class Cmake(Package):
self.spec.link_arg = "test link arg"
-
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/develop-test/package.py b/var/spack/repos/builtin.mock/packages/develop-test/package.py
new file mode 100644
index 0000000000..0c693c60fb
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/develop-test/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DevelopTest(Package):
+ """Dummy package with develop version"""
+ homepage = "http://www.openblas.net"
+ url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz"
+
+ version('develop', git='https://github.com/dummy/repo.git')
+ version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/direct_mpich/package.py b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
index 663908d56c..f38589ad4d 100644
--- a/var/spack/repos/builtin.mock/packages/direct_mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class DirectMpich(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/direct_mpich-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
new file mode 100644
index 0000000000..0c9fc1164a
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DtDiamondBottom(Package):
+ """This package has an indirect diamond dependency on dt-diamond-bottom"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dt-diamond-bottom-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
new file mode 100644
index 0000000000..40b65266d4
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DtDiamondLeft(Package):
+ """This package has an indirect diamond dependency on dt-diamond-bottom"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dt-diamond-left-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dt-diamond-bottom', type='build')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
new file mode 100644
index 0000000000..7b6e4abe5f
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DtDiamondRight(Package):
+ """This package has an indirect diamond dependency on dt-diamond-bottom"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dt-diamond-right-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dt-diamond-bottom', type=('build', 'link', 'run'))
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
new file mode 100644
index 0000000000..0b0f300b35
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DtDiamond(Package):
+ """This package has an indirect diamond dependency on dt-diamond-bottom"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dt-diamond-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dt-diamond-left')
+ depends_on('dt-diamond-right')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild1/package.py b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
new file mode 100644
index 0000000000..8d3b28b539
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtbuild1(Package):
+ """Package for use as a build tool for deptypes testing which has its own
+ deptree"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtbuild1-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtbuild2', type='build')
+ depends_on('dtlink2')
+ depends_on('dtrun2', type='run')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild2/package.py b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
new file mode 100644
index 0000000000..9ea65735ff
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtbuild2(Package):
+ """Simple package which acts as a build dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtbuild2-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild3/package.py b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
new file mode 100644
index 0000000000..261c69e01e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtbuild3(Package):
+ """Simple package which acts as a build dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtbuild3-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtlink1/package.py b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
new file mode 100644
index 0000000000..0269e08b65
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtlink1(Package):
+ """Simple package which acts as a link dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtlink1-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtlink3')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtlink2/package.py b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
new file mode 100644
index 0000000000..ad55c5ad48
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtlink2(Package):
+ """Simple package which acts as a link dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtlink2-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtlink3/package.py b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
new file mode 100644
index 0000000000..2b425103bd
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtlink3(Package):
+ """Simple package which acts as a link dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtlink3-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtbuild2', type='build')
+ depends_on('dtlink4')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtlink4/package.py b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
new file mode 100644
index 0000000000..d7af5ecbfc
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtlink4(Package):
+ """Simple package which acts as a link dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtlink4-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtlink5/package.py b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
new file mode 100644
index 0000000000..a9a22734cd
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtlink5(Package):
+ """Simple package which acts as a link dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtlink5-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtrun1/package.py b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
new file mode 100644
index 0000000000..af9539ba68
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtrun1(Package):
+ """Simple package which acts as a run dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtrun1-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtlink5')
+ depends_on('dtrun3', type='run')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtrun2/package.py b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
new file mode 100644
index 0000000000..a6cf0110b3
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtrun2(Package):
+ """Simple package which acts as a run dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtrun2-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtrun3/package.py b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
new file mode 100644
index 0000000000..426320c247
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtrun3(Package):
+ """Simple package which acts as a run dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtrun3-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtbuild3', type='build')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dttop/package.py b/var/spack/repos/builtin.mock/packages/dttop/package.py
new file mode 100644
index 0000000000..99c86523e1
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dttop/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dttop(Package):
+ """Package with a complicated dependency tree"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dttop-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dtbuild1', type='build')
+ depends_on('dtlink1')
+ depends_on('dtrun1', type='run')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dtuse/package.py b/var/spack/repos/builtin.mock/packages/dtuse/package.py
new file mode 100644
index 0000000000..c77d700b98
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dtuse/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dtuse(Package):
+ """Simple package which uses dttop"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dtuse-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('dttop')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dyninst/package.py b/var/spack/repos/builtin.mock/packages/dyninst/package.py
index ad486011e2..daf1b82ec6 100644
--- a/var/spack/repos/builtin.mock/packages/dyninst/package.py
+++ b/var/spack/repos/builtin.mock/packages/dyninst/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Dyninst(Package):
homepage = "https://paradyn.org"
url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz"
diff --git a/var/spack/repos/builtin.mock/packages/e/package.py b/var/spack/repos/builtin.mock/packages/e/package.py
index b951a3eaa6..c764007563 100644
--- a/var/spack/repos/builtin.mock/packages/e/package.py
+++ b/var/spack/repos/builtin.mock/packages/e/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class E(Package):
"""Simple package with no dependencies"""
diff --git a/var/spack/repos/builtin.mock/packages/externalmodule/package.py b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
new file mode 100644
index 0000000000..f7c9b056a4
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
@@ -0,0 +1,38 @@
+
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Externalmodule(Package):
+ homepage = "http://somewhere.com"
+ url = "http://somewhere.com/module-1.0.tar.gz"
+
+ version('1.0', '1234567890abcdef1234567890abcdef')
+
+ depends_on('externalprereq')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/externalprereq/package.py b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
index bd3c4348bf..226742f2cb 100644
--- a/var/spack/repos/builtin.mock/packages/externalprereq/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Externalprereq(Package):
homepage = "http://somewhere.com"
url = "http://somewhere.com/prereq-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/externaltest/package.py b/var/spack/repos/builtin.mock/packages/externaltest/package.py
index 2318887aec..252c42556e 100644
--- a/var/spack/repos/builtin.mock/packages/externaltest/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltest/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Externaltest(Package):
homepage = "http://somewhere.com"
url = "http://somewhere.com/test-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/externaltool/package.py b/var/spack/repos/builtin.mock/packages/externaltool/package.py
index 9ff2396f36..d2daddd350 100644
--- a/var/spack/repos/builtin.mock/packages/externaltool/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltool/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Externaltool(Package):
homepage = "http://somewhere.com"
url = "http://somewhere.com/tool-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
index e19ef332f0..6310a17bc9 100644
--- a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
@@ -24,14 +24,17 @@
##############################################################################
from spack import *
+
class Externalvirtual(Package):
homepage = "http://somewhere.com"
url = "http://somewhere.com/stuff-1.0.tar.gz"
version('1.0', '1234567890abcdef1234567890abcdef')
version('2.0', '234567890abcdef1234567890abcdef1')
+ version('2.1', '34567890abcdef1234567890abcdef12')
+ version('2.2', '4567890abcdef1234567890abcdef123')
- provides('stuff')
+ provides('stuff', when='@1.0:')
def install(self, spec, prefix):
pass
diff --git a/var/spack/repos/builtin.mock/packages/failing-build/package.py b/var/spack/repos/builtin.mock/packages/failing-build/package.py
new file mode 100644
index 0000000000..a36553992e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/failing-build/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FailingBuild(Package):
+ """This package has a trivial install method that fails."""
+
+ homepage = "http://www.example.com/trivial_install"
+ url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
+
+ version('1.0', 'foobarbaz')
+
+ def install(self, spec, prefix):
+ raise InstallError("Expected failure.")
diff --git a/var/spack/repos/builtin.mock/packages/fake/package.py b/var/spack/repos/builtin.mock/packages/fake/package.py
index 15aabf1101..b83eec7470 100644
--- a/var/spack/repos/builtin.mock/packages/fake/package.py
+++ b/var/spack/repos/builtin.mock/packages/fake/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Fake(Package):
homepage = "http://www.fake-spack-example.org"
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/git-test/package.py b/var/spack/repos/builtin.mock/packages/git-test/package.py
index aeea41146f..730e71ac6b 100644
--- a/var/spack/repos/builtin.mock/packages/git-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-test/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class GitTest(Package):
"""Mock package that uses git for fetching."""
homepage = "http://www.git-fetch-example.com"
diff --git a/var/spack/repos/builtin.mock/packages/hg-test/package.py b/var/spack/repos/builtin.mock/packages/hg-test/package.py
index 64719eb53c..70a9b7f2c7 100644
--- a/var/spack/repos/builtin.mock/packages/hg-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/hg-test/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class HgTest(Package):
"""Test package that does fetching with mercurial."""
homepage = "http://www.hg-fetch-example.com"
diff --git a/var/spack/repos/builtin.mock/packages/hypre/package.py b/var/spack/repos/builtin.mock/packages/hypre/package.py
index 3aedea9bf2..b9e31b09dc 100644
--- a/var/spack/repos/builtin.mock/packages/hypre/package.py
+++ b/var/spack/repos/builtin.mock/packages/hypre/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Hypre(Package):
"""Hypre is included here as an example of a package that depends on
both LAPACK and BLAS."""
diff --git a/var/spack/repos/builtin.mock/packages/indirect_mpich/package.py b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
index 6ed779889b..77b8022b1c 100644
--- a/var/spack/repos/builtin.mock/packages/indirect_mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class IndirectMpich(Package):
"""Test case for a package that depends on MPI and one of its
dependencies requires a *particular version* of MPI.
@@ -35,7 +36,7 @@ class IndirectMpich(Package):
version(1.0, 'foobarbaz')
depends_on('mpi')
- depends_on('direct_mpich')
+ depends_on('direct-mpich')
def install(self, spec, prefix):
pass
diff --git a/var/spack/repos/builtin.mock/packages/libdwarf/package.py b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
index b53e295e23..0fcbe4a62e 100644
--- a/var/spack/repos/builtin.mock/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
@@ -23,11 +23,11 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
# Only build certain parts of dwarf because the other ones break.
dwarf_dirs = ['libdwarf', 'dwarfdump2']
+
class Libdwarf(Package):
homepage = "http://www.prevanders.net/dwarf.html"
url = "http://www.prevanders.net/libdwarf-20130729.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/libelf/package.py b/var/spack/repos/builtin.mock/packages/libelf/package.py
index f52d8cefe1..90d00ad339 100644
--- a/var/spack/repos/builtin.mock/packages/libelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libelf/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libelf(Package):
homepage = "http://www.mr511.de/software/english.html"
url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/mpich/package.py b/var/spack/repos/builtin.mock/packages/mpich/package.py
index f278f26b8b..936127398c 100644
--- a/var/spack/repos/builtin.mock/packages/mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpich(Package):
homepage = "http://www.mpich.org"
url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/mpich2/package.py b/var/spack/repos/builtin.mock/packages/mpich2/package.py
index e6b68d2490..c92b4ba43a 100644
--- a/var/spack/repos/builtin.mock/packages/mpich2/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich2/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpich2(Package):
homepage = "http://www.mpich.org"
url = "http://www.mpich.org/static/downloads/1.5/mpich2-1.5.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/mpileaks/package.py b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
index bc26f539ba..10fbf3845e 100644
--- a/var/spack/repos/builtin.mock/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpileaks(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
@@ -35,6 +36,8 @@ class Mpileaks(Package):
variant('debug', default=False, description='Debug variant')
variant('opt', default=False, description='Optimized variant')
+ variant('shared', default=True, description='Build shared library')
+ variant('static', default=True, description='Build static library')
depends_on("mpi")
depends_on("callpath")
diff --git a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
new file mode 100644
index 0000000000..5f85dec9b5
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class MultiProviderMpi(Package):
+ """This is a fake MPI package used to test packages providing multiple
+ virtuals at the same version."""
+ homepage = "http://www.spack-fake-mpi.org"
+ url = "http://www.spack-fake-mpi.org/downloads/multi-mpi-1.0.tar.gz"
+
+ version('2.0.0', 'foobarbaz')
+ version('1.10.3', 'foobarbaz')
+ version('1.10.2', 'foobarbaz')
+ version('1.10.1', 'foobarbaz')
+ version('1.10.0', 'foobarbaz')
+ version('1.8.8', 'foobarbaz')
+ version('1.6.5', 'foobarbaz')
+
+ provides('mpi@3.1', when='@2.0.0')
+ provides('mpi@3.0', when='@1.10.3')
+ provides('mpi@3.0', when='@1.10.2')
+ provides('mpi@3.0', when='@1.10.1')
+ provides('mpi@3.0', when='@1.10.0')
+ provides('mpi@3.0', when='@1.8.8')
+ provides('mpi@2.2', when='@1.6.5')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/multimethod/package.py b/var/spack/repos/builtin.mock/packages/multimethod/package.py
index 2d15722470..fa3f815135 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import spack.architecture
class Multimethod(Package):
@@ -49,7 +50,6 @@ class Multimethod(Package):
def no_version_2(self):
return 4
-
#
# These functions overlap, so there is ambiguity, but we'll take
# the first one.
@@ -62,7 +62,6 @@ class Multimethod(Package):
def version_overlap(self):
return 2
-
#
# More complicated case with cascading versions.
#
@@ -81,7 +80,6 @@ class Multimethod(Package):
def mpi_version(self):
return 1
-
#
# Use these to test whether the default method is called when no
# match is found. This also tests whether we can switch methods
@@ -98,31 +96,25 @@ class Multimethod(Package):
def has_a_default(self):
return 'intel'
-
-
#
- # Make sure we can switch methods on different architectures
+ # Make sure we can switch methods on different target
#
- @when('=x86_64')
- def different_by_architecture(self):
- return 'x86_64'
-
- @when('=ppc64')
- def different_by_architecture(self):
- return 'ppc64'
-
- @when('=ppc32')
- def different_by_architecture(self):
- return 'ppc32'
-
- @when('=arm64')
- def different_by_architecture(self):
- return 'arm64'
-
-
+ platform = spack.architecture.platform()
+ targets = platform.targets.values()
+ if len(targets) > 1:
+ targets = targets[:-1]
+
+ for target in targets:
+ @when('target=' + target.name)
+ def different_by_target(self):
+ if isinstance(self.spec.architecture.target, basestring):
+ return self.spec.architecture.target
+ else:
+ return self.spec.architecture.target.name
#
# Make sure we can switch methods on different dependencies
#
+
@when('^mpich')
def different_by_dep(self):
return 'mpich'
@@ -131,7 +123,6 @@ class Multimethod(Package):
def different_by_dep(self):
return 'zmpi'
-
#
# Make sure we can switch on virtual dependencies
#
diff --git a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
index 9d567f2e9b..0a5b1d0e6a 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class NetlibBlas(Package):
homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
diff --git a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
index 46d6ae43dc..755d3001a4 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class NetlibLapack(Package):
homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
diff --git a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
index b36237c1e2..0f14fbaa61 100644
--- a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class OpenblasWithLapack(Package):
"""Dummy version of OpenBLAS that also provides LAPACK, for testing."""
homepage = "http://www.openblas.net"
diff --git a/var/spack/repos/builtin.mock/packages/openblas/package.py b/var/spack/repos/builtin.mock/packages/openblas/package.py
index 5b39447e83..f6cdeeea49 100644
--- a/var/spack/repos/builtin.mock/packages/openblas/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Openblas(Package):
"""OpenBLAS: An optimized BLAS library"""
homepage = "http://www.openblas.net"
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
index f97959c763..337f54e24e 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class OptionalDepTest2(Package):
"""Depends on the optional-dep-test package"""
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
index d8fe33c3da..2904b3782d 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class OptionalDepTest3(Package):
"""Depends on the optional-dep-test package"""
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
index 80c1da55f8..2c07e61769 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class OptionalDepTest(Package):
"""Description"""
diff --git a/var/spack/repos/builtin.mock/packages/othervirtual/package.py b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
new file mode 100644
index 0000000000..83bc07df98
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Othervirtual(Package):
+ homepage = "http://somewhere.com"
+ url = "http://somewhere.com/stuff-1.0.tar.gz"
+
+ version('1.0', '67890abcdef1234567890abcdef12345')
+
+ provides('stuff')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/python/package.py b/var/spack/repos/builtin.mock/packages/python/package.py
index dc21b475e5..a5290161ad 100644
--- a/var/spack/repos/builtin.mock/packages/python/package.py
+++ b/var/spack/repos/builtin.mock/packages/python/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Python(Package):
"""Dummy Python package to demonstrate preferred versions."""
homepage = "http://www.python.org"
@@ -40,4 +41,3 @@ class Python(Package):
def install(self, spec, prefix):
pass
-
diff --git a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
new file mode 100644
index 0000000000..3f135b002e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
@@ -0,0 +1,24 @@
+from spack import *
+
+
+class BaseWithDirectives(Package):
+
+ depends_on('cmake', type='build')
+ depends_on('mpi')
+ variant('openblas', description='Activates openblas', default=True)
+ provides('service1')
+
+
+class SimpleInheritance(BaseWithDirectives):
+ """Simple package which acts as a build dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/simple-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('openblas', when='+openblas')
+ provides('lapack', when='+openblas')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/svn-test/package.py b/var/spack/repos/builtin.mock/packages/svn-test/package.py
index 2f197593e0..01d0929c28 100644
--- a/var/spack/repos/builtin.mock/packages/svn-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/svn-test/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class SvnTest(Package):
"""Mock package that uses svn for fetching."""
url = "http://www.example.com/svn-test-1.0.tar.gz"
diff --git a/var/spack/repos/builtin.mock/packages/trivial_install_test_package/package.py b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
index 7c65909ad2..2129d9788b 100644
--- a/var/spack/repos/builtin.mock/packages/trivial_install_test_package/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class TrivialInstallTestPackage(Package):
"""This package is a stub with a trivial install method. It allows us
to test the install and uninstall logic of spack."""
diff --git a/var/spack/repos/builtin.mock/packages/zmpi/package.py b/var/spack/repos/builtin.mock/packages/zmpi/package.py
index fcd3afe93b..b6a5b33011 100644
--- a/var/spack/repos/builtin.mock/packages/zmpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/zmpi/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Zmpi(Package):
"""This is a fake MPI package used to demonstrate virtual package providers
with dependencies."""
diff --git a/var/spack/repos/builtin/packages/ImageMagick/package.py b/var/spack/repos/builtin/packages/ImageMagick/package.py
deleted file mode 100644
index f8173169e1..0000000000
--- a/var/spack/repos/builtin/packages/ImageMagick/package.py
+++ /dev/null
@@ -1,63 +0,0 @@
-##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
-#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/llnl/spack
-# Please also see the LICENSE file for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
-from spack import *
-
-
-class Imagemagick(Package):
- """ImageMagick is a image processing library"""
- homepage = "http://www.imagemagic.org"
-
- # -------------------------------------------------------------------------
- # ImageMagick does not keep around anything but *-10 versions, so
- # this URL may change. If you want the bleeding edge, you can
- # uncomment it and see if it works but you may need to try to
- # fetch a newer version (-6, -7, -8, -9, etc.) or you can stick
- # wtih the older, stable, archived -10 versions below.
- #
- # TODO: would be nice if spack had a way to recommend avoiding a
- # TODO: bleeding edge version, but not comment it out.
- # -------------------------------------------------------------------------
- # version('6.9.0-6', 'c1bce7396c22995b8bdb56b7797b4a1b',
- # url="http://www.imagemagick.org/download/ImageMagick-6.9.0-6.tar.bz2")
-
- # -------------------------------------------------------------------------
- # *-10 versions are archived, so these versions should fetch reliably.
- # -------------------------------------------------------------------------
- version(
- '6.8.9-10',
- 'aa050bf9785e571c956c111377bbf57c',
- url="http://sourceforge.net/projects/imagemagick/files/old-sources/6.x/6.8/ImageMagick-6.8.9-10.tar.gz/download")
-
- depends_on('jpeg')
- depends_on('libtool')
- depends_on('libpng')
- depends_on('freetype')
- depends_on('fontconfig')
- depends_on('libtiff')
-
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/R/package.py b/var/spack/repos/builtin/packages/R/package.py
deleted file mode 100644
index 0177fe1a2b..0000000000
--- a/var/spack/repos/builtin/packages/R/package.py
+++ /dev/null
@@ -1,130 +0,0 @@
-##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
-#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/llnl/spack
-# Please also see the LICENSE file for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
-import functools
-import glob
-import inspect
-import os
-import re
-from contextlib import closing
-
-import spack
-from llnl.util.lang import match_predicate
-from spack import *
-from spack.util.environment import *
-
-
-class R(Package):
- """
- R is 'GNU S', a freely available language and environment for statistical computing and graphics which provides a
- wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series
- analysis, classification, clustering, etc. Please consult the R project homepage for further information.
- """
- homepage = "https://www.r-project.org"
- url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
-
- extendable = True
-
- version('3.2.3', '1ba3dac113efab69e706902810cc2970')
- version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
- version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
- version('3.2.0', '66fa17ad457d7e618191aa0f52fc402e')
- version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
- version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
-
- variant('external-lapack', default=False, description='Links to externally installed BLAS/LAPACK')
-
- # Virtual dependencies
- depends_on('blas', when='+external-lapack')
- depends_on('lapack', when='+external-lapack')
-
- # Concrete dependencies
- depends_on('readline')
- depends_on('ncurses')
- depends_on('icu')
- depends_on('glib')
- depends_on('zlib')
- depends_on('libtiff')
- depends_on('jpeg')
- depends_on('cairo')
- depends_on('pango')
- depends_on('freetype')
- depends_on('tcl')
- depends_on('tk')
-
- def install(self, spec, prefix):
- rlibdir = join_path(prefix, 'rlib')
- options = ['--prefix=%s' % prefix,
- '--libdir=%s' % rlibdir,
- '--enable-R-shlib',
- '--enable-BLAS-shlib',
- '--enable-R-framework=no']
- if '+external-lapack' in spec:
- options.extend(['--with-blas', '--with-lapack'])
-
- configure(*options)
- make()
- make('install')
-
- # ========================================================================
- # Set up environment to make install easy for R extensions.
- # ========================================================================
-
- @property
- def r_lib_dir(self):
- return os.path.join('rlib', 'R', 'library')
-
- def setup_dependent_environment(self, spack_env, run_env, extension_spec):
- # Set R_LIBS to include the library dir for the
- # extension and any other R extensions it depends on.
- r_libs_path = []
- for d in extension_spec.traverse():
- if d.package.extends(self.spec):
- r_libs_path.append(os.path.join(d.prefix, self.r_lib_dir))
-
- r_libs_path = ':'.join(r_libs_path)
- spack_env.set('R_LIBS', r_libs_path)
-
- # For run time environment set only the path for extension_spec and prepend it to R_LIBS
- if extension_spec.package.extends(self.spec):
- run_env.prepend_path('R_LIBS', os.path.join(extension_spec.prefix, self.r_lib_dir))
-
-
- def setup_dependent_package(self, module, ext_spec):
- """
- Called before R modules' install() methods.
-
- In most cases, extensions will only need to have one line::
-
- R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
- """
- # R extension builds can have a global R executable function
- module.R = Executable(join_path(self.spec.prefix.bin, 'R'))
-
- # Add variable for library directry
- module.r_lib_dir = os.path.join(ext_spec.prefix, self.r_lib_dir)
-
- # Make the site packages directory for extensions, if it does not exist already.
- if ext_spec.package.is_extension:
- mkdirp(module.r_lib_dir)
diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py
new file mode 100644
index 0000000000..76fa044982
--- /dev/null
+++ b/var/spack/repos/builtin/packages/abinit/package.py
@@ -0,0 +1,175 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+#
+# Author: Matteo Giantomassi <matteo.giantomassiNOSPAM AT uclouvain.be>
+# Date: October 11, 2016
+
+from spack import *
+
+
+class Abinit(Package):
+ """ABINIT is a package whose main program allows one to find the total
+ energy, charge density and electronic structure of systems made of
+ electrons and nuclei (molecules and periodic solids) within
+ Density Functional Theory (DFT), using pseudopotentials and a planewave
+ or wavelet basis. ABINIT also includes options to optimize the geometry
+ according to the DFT forces and stresses, or to perform molecular dynamics
+ simulations using these forces, or to generate dynamical matrices,
+ Born effective charges, and dielectric tensors, based on Density-Functional
+ Perturbation Theory, and many more properties. Excited states can be
+ computed within the Many-Body Perturbation Theory (the GW approximation and
+ the Bethe-Salpeter equation), and Time-Dependent Density Functional Theory
+ (for molecules). In addition to the main ABINIT code, different utility
+ programs are provided.
+ """
+
+ homepage = "http://www.abinit.org"
+ url = "http://ftp.abinit.org/abinit-8.0.8b.tar.gz"
+
+ # Versions before 8.0.8b are not supported.
+ version("8.0.8b", "abc9e303bfa7f9f43f95598f87d84d5d")
+
+ variant('mpi', default=True,
+ description='Builds with MPI support. Requires MPI2+')
+ variant('openmp', default=False,
+ description='Enables OpenMP threads. Use threaded FFTW3')
+ variant('scalapack', default=False,
+ description='Enables scalapack support. Requires MPI')
+ # variant('elpa', default=False,
+ # description='Uses elpa instead of scalapack. Requires MPI')
+
+ # TODO: To be tested.
+ # It was working before the last `git pull` but now all tests crash.
+ # For the time being, the default is netcdf3 and the internal fallbacks
+ variant('hdf5', default=False,
+ description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental')
+
+ # Add dependencies
+ # currently one cannot forward options to virtual packages, see #1712.
+ # depends_on("blas", when="~openmp")
+ # depends_on("blas+openmp", when="+openmp")
+ depends_on('blas')
+ depends_on("lapack")
+
+ # Require MPI2+
+ depends_on("mpi@2:", when="+mpi")
+
+ depends_on("scalapack", when="+scalapack+mpi")
+ # depends_on("elpa", when="+elpa+mpi~openmp")
+ # depends_on("elpa+openmp", when="+elpa+mpi+openmp")
+
+ depends_on("fftw+float", when="~openmp")
+ depends_on("fftw+float+openmp", when="+openmp")
+
+ depends_on("netcdf-fortran", when="+hdf5")
+ depends_on("hdf5+mpi", when='+mpi+hdf5') # required for NetCDF-4 support
+
+ # pin libxc version
+ depends_on("libxc@2.2.1")
+
+ def validate(self, spec):
+ """
+ Checks if incompatible variants have been activated at the same time
+
+ :param spec: spec of the package
+ :raises RuntimeError: in case of inconsistencies
+ """
+ error = 'you cannot ask for \'+{variant}\' when \'+mpi\' is not active'
+
+ if '+scalapack' in spec and '~mpi' in spec:
+ raise RuntimeError(error.format(variant='scalapack'))
+
+ if '+elpa' in spec and ('~mpi' in spec or '~scalapack' in spec):
+ raise RuntimeError(error.format(variant='elpa'))
+
+ def install(self, spec, prefix):
+ self.validate(spec)
+
+ options = ['--prefix=%s' % prefix]
+ oapp = options.append
+
+ if '+mpi' in spec:
+ # MPI version:
+ # let the configure script auto-detect MPI support from mpi_prefix
+ oapp("--with-mpi-prefix=%s" % spec["mpi"].prefix)
+ oapp("--enable-mpi=yes")
+ oapp("--enable-mpi-io=yes")
+
+ # Activate OpenMP in Abinit Fortran code.
+ if '+openmp' in spec:
+ oapp('--enable-openmp=yes')
+
+ # BLAS/LAPACK
+ if '+scalapack' in spec:
+ oapp("--with-linalg-flavor=custom+scalapack")
+ linalg = (spec['scalapack'].scalapack_libs +
+ spec['lapack'].lapack_libs + spec['blas'].blas_libs)
+
+ # elif '+elpa' in spec:
+ else:
+ oapp("--with-linalg-flavor=custom")
+ linalg = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+
+ oapp("--with-linalg-libs=%s" % linalg.ld_flags)
+
+ # FFTW3: use sequential or threaded version if +openmp
+ fftflavor, fftlibs = "fftw3", "-lfftw3 -lfftw3f"
+ if '+openmp' in spec:
+ fftflavor = "fftw3-threads"
+ fftlibs = "-lfftw3_omp -lfftw3 -lfftw3f"
+
+ options.extend([
+ "--with-fft-flavor=%s" % fftflavor,
+ "--with-fft-incs=-I%s" % spec["fftw"].prefix.include,
+ "--with-fft-libs=-L%s %s" % (spec["fftw"].prefix.lib, fftlibs),
+ ])
+ oapp("--with-dft-flavor=atompaw+libxc")
+
+ # LibXC library
+ options.extend([
+ "with_libxc_incs=-I%s" % spec["libxc"].prefix.include,
+ "with_libxc_libs=-L%s -lxcf90 -lxc" % spec["libxc"].prefix.lib,
+ ])
+
+ # Netcdf4/HDF5
+ if "+hdf5" in spec:
+ oapp("--with-trio-flavor=netcdf")
+ hdf_libs = "-L%s -lhdf5_hl -lhdf5" % spec["hdf5"].prefix.lib
+ options.extend([
+ "--with-netcdf-incs=-I%s" % (
+ spec["netcdf-fortran"].prefix.include),
+ "--with-netcdf-libs=-L%s -lnetcdff -lnetcdf %s" % (
+ spec["netcdf-fortran"].prefix.lib, hdf_libs),
+ ])
+ else:
+ # Use internal fallbacks (netcdf3)
+ oapp("--with-trio-flavor=netcdf-fallback")
+
+ configure(*options)
+ make()
+
+ # make("check")
+ # make("tests_in")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py
new file mode 100644
index 0000000000..70249aebac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ack/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ack(Package):
+ """ack 2.14 is a tool like grep, optimized for programmers.
+
+ Designed for programmers with large heterogeneous trees of
+ source code, ack is written purely in portable Perl 5 and takes
+ advantage of the power of Perl's regular expressions."""
+
+ homepage = "http://beyondgrep.com/"
+ url = "http://beyondgrep.com/ack-2.14-single-file"
+
+ version('2.14', 'e74150a1609d28a70b450ef9cc2ed56b', expand=False)
+
+ depends_on('perl')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ ack = 'ack-{0}-single-file'.format(self.version)
+
+ # rewrite the script's #! line to call the perl dependency
+ shbang = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
+ filter_file(r'^#!/usr/bin/env perl', shbang, ack)
+
+ install(ack, join_path(prefix.bin, "ack"))
+ set_executable(join_path(prefix.bin, "ack"))
diff --git a/var/spack/repos/builtin/packages/activeharmony/package.py b/var/spack/repos/builtin/packages/activeharmony/package.py
index 9d15bd71d9..6a4e67a1ca 100644
--- a/var/spack/repos/builtin/packages/activeharmony/package.py
+++ b/var/spack/repos/builtin/packages/activeharmony/package.py
@@ -24,8 +24,10 @@
##############################################################################
from spack import *
+
class Activeharmony(Package):
- """Active Harmony: a framework for auto-tuning (the automated search for values to improve the performance of a target application)."""
+ """Active Harmony: a framework for auto-tuning (the automated search for
+ values to improve the performance of a target application)."""
homepage = "http://www.dyninst.org/harmony"
url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
@@ -34,6 +36,3 @@ class Activeharmony(Package):
def install(self, spec, prefix):
make("CFLAGS=-O3")
make("install", 'PREFIX=%s' % prefix)
-
-from spack import *
-
diff --git a/var/spack/repos/builtin/packages/adept-utils/package.py b/var/spack/repos/builtin/packages/adept-utils/package.py
index 7b6c3702af..1a6998fd96 100644
--- a/var/spack/repos/builtin/packages/adept-utils/package.py
+++ b/var/spack/repos/builtin/packages/adept-utils/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class AdeptUtils(Package):
"""Utility libraries for LLNL performance tools."""
@@ -35,6 +36,7 @@ class AdeptUtils(Package):
depends_on("boost")
depends_on("mpi")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake(*std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/adios/adios_1100.patch b/var/spack/repos/builtin/packages/adios/adios_1100.patch
new file mode 100644
index 0000000000..7a9f857c32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adios/adios_1100.patch
@@ -0,0 +1,29 @@
+From 3b21a8a4150962c6938baeceacd04f619cea2fbc Mon Sep 17 00:00:00 2001
+From: Norbert Podhorszki <pnorbert@ornl.gov>
+Date: Thu, 1 Sep 2016 16:26:23 -0400
+Subject: [PATCH] ifdef around 'bool' type. hdf5 1.10 defines bool and breaks
+ compiling bp2h5.c
+
+---
+ utils/bp2h5/bp2h5.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/utils/bp2h5/bp2h5.c b/utils/bp2h5/bp2h5.c
+index 9c500c7..fa746bd 100644
+--- a/utils/bp2h5/bp2h5.c
++++ b/utils/bp2h5/bp2h5.c
+@@ -43,9 +43,11 @@
+ #include "dmalloc.h"
+ #endif
+
+-typedef int bool;
+-#define false 0
+-#define true 1
++#ifndef bool
++ typedef int bool;
++# define false 0
++# define true 1
++#endif
+
+ bool noindex = false; // do no print array indices with data
+ bool printByteAsChar = false; // print 8 bit integer arrays as string
diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py
new file mode 100644
index 0000000000..e240ce0858
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adios/package.py
@@ -0,0 +1,131 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Adios(Package):
+ """The Adaptable IO System (ADIOS) provides a simple,
+ flexible way for scientists to describe the
+ data in their code that may need to be written,
+ read, or processed outside of the running simulation.
+ """
+
+ homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
+ url = "https://github.com/ornladios/ADIOS/archive/v1.10.0.tar.gz"
+
+ version('develop', git='https://github.com/ornladios/ADIOS.git',
+ branch='master')
+ version('1.10.0', 'eff450a4c0130479417cfd63186957f3')
+ version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
+
+ variant('shared', default=True,
+ description='Builds a shared version of the library')
+
+ variant('fortran', default=False,
+ description='Enable Fortran bindings support')
+
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('infiniband', default=False, description='Enable infiniband support')
+
+ # transforms
+ variant('zlib', default=True, description='Enable szip transform support')
+ variant('szip', default=False, description='Enable szip transform support')
+ # transports and serial file converters
+ variant('hdf5', default=False, description='Enable parallel HDF5 transport and serial bp2h5 converter')
+
+ # Lots of setting up here for this package
+ # module swap PrgEnv-intel PrgEnv-$COMP
+ # module load cray-hdf5/1.8.14
+ # module load python/2.7.10
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('python', type='build')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('mxml@2.9:')
+ # optional transformations
+ depends_on('zlib', when='+zlib')
+ depends_on('szip', when='+szip')
+ # optional transports & file converters
+ depends_on('hdf5@1.8:+mpi', when='+hdf5')
+
+ # Fix ADIOS <=1.10.0 compile error on HDF5 1.10+
+ # https://github.com/ornladios/ADIOS/commit/3b21a8a41509
+ # https://github.com/LLNL/spack/issues/1683
+ patch('adios_1100.patch', when='@:1.10.0^hdf5@1.10:')
+
+ def validate(self, spec):
+ """
+ Checks if incompatible variants have been activated at the same time
+ :param spec: spec of the package
+ :raises RuntimeError: in case of inconsistencies
+ """
+ if '+fortran' in spec and not self.compiler.fc:
+ msg = 'cannot build a fortran variant without a fortran compiler'
+ raise RuntimeError(msg)
+
+ def install(self, spec, prefix):
+ self.validate(spec)
+ # Handle compilation after spec validation
+ extra_args = []
+
+ # required, otherwise building its python bindings on ADIOS will fail
+ extra_args.append("CFLAGS=-fPIC")
+
+ # always build external MXML, even in ADIOS 1.10.0+
+ extra_args.append('--with-mxml=%s' % spec['mxml'].prefix)
+
+ if '+shared' in spec:
+ extra_args.append('--enable-shared')
+
+ if '+mpi' in spec:
+ extra_args.append('--with-mpi')
+ if '+infiniband' in spec:
+ extra_args.append('--with-infiniband')
+ else:
+ extra_args.append('--with-infiniband=no')
+
+ if '+fortran' in spec:
+ extra_args.append('--enable-fortran')
+ else:
+ extra_args.append('--disable-fortran')
+
+ if '+zlib' in spec:
+ extra_args.append('--with-zlib=%s' % spec['zlib'].prefix)
+ if '+szip' in spec:
+ extra_args.append('--with-szip=%s' % spec['szip'].prefix)
+ if '+hdf5' in spec:
+ extra_args.append('--with-phdf5=%s' % spec['hdf5'].prefix)
+
+ sh = which('sh')
+ sh('./autogen.sh')
+
+ configure("--prefix=%s" % prefix,
+ *extra_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/adol-c/openmp_exam.patch b/var/spack/repos/builtin/packages/adol-c/openmp_exam_261.patch
index 8e21c72d92..8e21c72d92 100644
--- a/var/spack/repos/builtin/packages/adol-c/openmp_exam.patch
+++ b/var/spack/repos/builtin/packages/adol-c/openmp_exam_261.patch
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index a6052ad7bd..5c8d894757 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -23,22 +23,26 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import sys
+
class AdolC(Package):
- """A package for the automatic differentiation of first and higher derivatives of vector functions in C and C++ programs by operator overloading."""
+ """A package for the automatic differentiation of first and higher
+ derivatives of vector functions in C and C++ programs by operator
+ overloading."""
homepage = "https://projects.coin-or.org/ADOL-C"
url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz"
- version('head', svn='https://projects.coin-or.org/svn/ADOL-C/trunk/')
+ version('develop', svn='https://projects.coin-or.org/svn/ADOL-C/trunk/')
+ version('2.6.2', '0f9547584c99c0673e4f81cf64e8d865')
version('2.6.1', '1032b28427d6e399af4610e78c0f087b')
-
+
variant('doc', default=True, description='Install documentation')
variant('openmp', default=False, description='Enable OpenMP support')
variant('sparse', default=False, description='Enable sparse drivers')
- variant('tests', default=True, description='Build all included examples as a test case')
-
- patch('openmp_exam.patch')
+ variant('tests', default=True,
+ description='Build all included examples as a test case')
+
+ patch('openmp_exam_261.patch', when='@2.6.1')
def install(self, spec, prefix):
make_args = ['--prefix=%s' % prefix]
@@ -49,10 +53,14 @@ class AdolC(Package):
if '+openmp' in spec:
if spec.satisfies('%gcc'):
make_args.extend([
- '--with-openmp-flag=-fopenmp' # FIXME: Is this required? -I <path to omp.h> -L <LLVM OpenMP library path>
+ # FIXME: Is this required? -I <path to omp.h> -L <LLVM
+ # OpenMP library path>
+ '--with-openmp-flag=-fopenmp'
])
else:
- raise InstallError("OpenMP flags for compilers other than GCC are not implemented.")
+ raise InstallError(
+ "OpenMP flags for compilers other than GCC "
+ "are not implemented.")
if '+sparse' in spec:
make_args.extend([
@@ -63,7 +71,7 @@ class AdolC(Package):
# whether Adol-C works as expected
if '+tests' in spec:
make_args.extend([
- '--enable-docexa', # Documeted examples
+ '--enable-docexa', # Documeted examples
'--enable-addexa' # Additional examples
])
if '+openmp' in spec:
@@ -74,31 +82,36 @@ class AdolC(Package):
configure(*make_args)
make()
make("install")
-
+
# Copy the config.h file, as some packages might require it
source_directory = self.stage.source_path
- config_h = join_path(source_directory,'ADOL-C','src','config.h')
- install(config_h, join_path(prefix.include,'adolc'))
-
+ config_h = join_path(source_directory, 'ADOL-C', 'src', 'config.h')
+ install(config_h, join_path(prefix.include, 'adolc'))
+
# Install documentation to {prefix}/share
if '+doc' in spec:
- install_tree(join_path('ADOL-C','doc'),
- join_path(prefix.share,'doc'))
-
+ install_tree(join_path('ADOL-C', 'doc'),
+ join_path(prefix.share, 'doc'))
+
# Install examples to {prefix}/share
if '+tests' in spec:
- install_tree(join_path('ADOL-C','examples'),
- join_path(prefix.share,'examples'))
-
+ install_tree(join_path('ADOL-C', 'examples'),
+ join_path(prefix.share, 'examples'))
+
# Run some examples that don't require user input
# TODO: Check that bundled examples produce the correct results
- with working_dir(join_path(source_directory,'ADOL-C','examples')):
+ with working_dir(join_path(
+ source_directory, 'ADOL-C', 'examples')):
Executable('./tapeless_scalar')()
Executable('./tapeless_vector')()
-
- with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
+
+ with working_dir(join_path(
+ source_directory,
+ 'ADOL-C', 'examples', 'additional_examples')):
Executable('./checkpointing/checkpointing')()
-
+
if '+openmp' in spec:
- with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
+ with working_dir(join_path(
+ source_directory,
+ 'ADOL-C', 'examples', 'additional_examples')):
Executable('./checkpointing/checkpointing')()
diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py
new file mode 100644
index 0000000000..81a0e089e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ant/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ant(Package):
+ """Apache Ant is a Java library and command-line tool whose mission is to
+ drive processes described in build files as targets and extension points
+ dependent upon each other
+ """
+
+ homepage = "http://ant.apache.org/"
+ url = "http://apache.claz.org/ant/source/apache-ant-1.9.7-src.tar.gz"
+
+ version('1.9.7', 'a2fd9458c76700b7be51ef12f07d4bb1')
+
+ depends_on('jdk')
+
+ def install(self, spec, prefix):
+ env['ANT_HOME'] = self.prefix
+ bash = which('bash')
+ bash('./build.sh', 'install')
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
index eb67facaf3..88653a8ea9 100644
--- a/var/spack/repos/builtin/packages/antlr/package.py
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -24,14 +24,17 @@
##############################################################################
from spack import *
-class Antlr(Package):
-
+
+class Antlr(AutotoolsPackage):
+ """ANTLR (ANother Tool for Language Recognition) is a powerful parser
+ generator for reading, processing, executing, or translating structured
+ text or binary files. It's widely used to build languages, tools, and
+ frameworks. From a grammar, ANTLR generates a parser that can build and
+ walk parse trees."""
+
homepage = "http://www.antlr.org"
url = "https://github.com/antlr/antlr/tarball/v2.7.7"
- # NOTE: This requires that a system Java be available.
- # Spack does not yet know how to install Java compilers
-
# Notes from http://nco.sourceforge.net/#bld
# The first steps to build (i.e., compile, for the most part) NCO from
# source code are to install the pre-requisites: ANTLR version 2.7.7
@@ -41,31 +44,23 @@ class Antlr(Package):
# CharScanner.hpp must include this line: #include <cstring> or else
# ncap2 will not compile (this tarball is already patched).
version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
- # Patched version as described above
- url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
- # Unpatched version
- # url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
+ # Patched version as described above
+ url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
+ # Unpatched version
+ # url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
- variant('cxx', default=False, description='Enable ANTLR for C++')
- variant('java', default=False, description='Enable ANTLR for Java')
+ variant('cxx', default=True, description='Enable ANTLR for C++')
+ variant('java', default=False, description='Enable ANTLR for Java')
variant('python', default=False, description='Enable ANTLR for Python')
- variant('csharp', default=False, description='Enable ANTLR for Csharp')
-
- def install(self, spec, prefix):
- # Check for future enabling of variants
- for v in ('+java', '+python', '+csharp'):
- if v in spec:
- raise Error('Illegal variant %s; for now, Spack only knows how to build antlr or antlr+cxx')
+ extends('python', when='+python')
+ depends_on('jdk', type=('build', 'run'), when='+java')
- config_args = [
- '--prefix=%s' % prefix,
- '--%s-cxx' % ('enable' if '+cxx' in spec else 'disable'),
- '--%s-java' % ('enable' if '+java' in spec else 'disable'),
- '--%s-python' % ('enable' if '+python' in spec else 'disable'),
- '--%s-csharp' % ('enable' if '+csharp' in spec else 'disable')]
+ def configure_args(self):
+ spec = self.spec
- # which('autoreconf')('-iv')
- configure(*config_args)
- make()
- make("install")
+ return [
+ '--{0}-cxx'.format('enable' if '+cxx' in spec else 'disable'),
+ '--{0}-java'.format('enable' if '+java' in spec else 'disable'),
+ '--{0}-python'.format('enable' if '+python' in spec else 'disable')
+ ]
diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py
new file mode 100644
index 0000000000..48e436804f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ape/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ape(Package):
+ """A tool for generating atomic pseudopotentials within a Density-Functional
+ Theory framework"""
+
+ homepage = "http://www.tddft.org/programs/APE/"
+ url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz"
+
+ version('2.2.1', 'ab81da85bd749c0c136af088c7f9ad58')
+
+ depends_on('gsl')
+ depends_on('libxc')
+
+ def install(self, spec, prefix):
+ args = []
+ args.extend([
+ '--prefix=%s' % prefix,
+ '--with-gsl-prefix=%s' % spec['gsl'].prefix,
+ '--with-libxc-prefix=%s' % spec['libxc'].prefix
+ ])
+
+ # When preprocessor expands macros (i.e. CFLAGS) defined as quoted
+ # strings the result may be > 132 chars and is terminated.
+ # This will look to a compiler as an Unterminated character constant
+ # and produce Line truncated errors. To vercome this, add flags to
+ # let compiler know that the entire line is meaningful.
+ # TODO: For the lack of better approach, assume that clang is mixed
+ # with GNU fortran.
+ if spec.satisfies('%clang') or spec.satisfies('%gcc'):
+ args.extend([
+ 'FCFLAGS=-O2 -ffree-line-length-none'
+ ])
+
+ configure(*args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py
index 20cbd8e8c6..832e10a1ec 100644
--- a/var/spack/repos/builtin/packages/apex/package.py
+++ b/var/spack/repos/builtin/packages/apex/package.py
@@ -25,6 +25,7 @@
from spack import *
from spack.util.environment import *
+
class Apex(Package):
homepage = "http://github.com/khuck/xpress-apex"
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
@@ -33,23 +34,23 @@ class Apex(Package):
depends_on("binutils+libiberty")
depends_on("boost@1.54:")
- depends_on("cmake@2.8.12:")
+ depends_on('cmake@2.8.12:', type='build')
depends_on("activeharmony@4.5:")
depends_on("ompt-openmp")
def install(self, spec, prefix):
- path=get_path("PATH")
+ path = get_path("PATH")
path.remove(spec["binutils"].prefix.bin)
path_set("PATH", path)
with working_dir("build", create=True):
cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DUSE_BFD=TRUE',
- '-DBFD_ROOT=%s' % spec['binutils'].prefix,
- '-DUSE_ACTIVEHARMONY=TRUE',
- '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
- '-DUSE_OMPT=TRUE',
- '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
- '..', *std_cmake_args)
+ '-DUSE_BFD=TRUE',
+ '-DBFD_ROOT=%s' % spec['binutils'].prefix,
+ '-DUSE_ACTIVEHARMONY=TRUE',
+ '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
+ '-DUSE_OMPT=TRUE',
+ '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
+ '..', *std_cmake_args)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/applewmproto/package.py b/var/spack/repos/builtin/packages/applewmproto/package.py
new file mode 100644
index 0000000000..8d7e360bfb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/applewmproto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Applewmproto(Package):
+ """Apple Rootless Window Management Extension.
+
+ This extension defines a protcol that allows X window managers
+ to better interact with the Mac OS X Aqua user interface when
+ running X11 in a rootless mode."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/applewmproto"
+ url = "https://www.x.org/archive/individual/proto/applewmproto-1.4.2.tar.gz"
+
+ version('1.4.2', 'ecc8a4424a893ce120f5652dba62e9e6')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/appres/package.py b/var/spack/repos/builtin/packages/appres/package.py
new file mode 100644
index 0000000000..47a9c5bb54
--- /dev/null
+++ b/var/spack/repos/builtin/packages/appres/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Appres(Package):
+ """The appres program prints the resources seen by an application (or
+ subhierarchy of an application) with the specified class and instance
+ names. It can be used to determine which resources a particular
+ program will load."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/appres"
+ url = "https://www.x.org/archive/individual/app/appres-1.0.4.tar.gz"
+
+ version('1.0.4', 'f82aabe6bbb8960781b63c6945bb361b')
+
+ depends_on('libx11')
+ depends_on('libxt')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/apr-util/package.py b/var/spack/repos/builtin/packages/apr-util/package.py
index 05dc670aed..8e01d3bbdd 100644
--- a/var/spack/repos/builtin/packages/apr-util/package.py
+++ b/var/spack/repos/builtin/packages/apr-util/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class AprUtil(Package):
"""Apache Portable Runtime Utility"""
homepage = 'https://apr.apache.org/'
diff --git a/var/spack/repos/builtin/packages/apr/package.py b/var/spack/repos/builtin/packages/apr/package.py
index 398e1c323d..0cd51f52e3 100644
--- a/var/spack/repos/builtin/packages/apr/package.py
+++ b/var/spack/repos/builtin/packages/apr/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Apr(Package):
"""Apache portable runtime."""
homepage = 'https://apr.apache.org/'
diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py
new file mode 100644
index 0000000000..2336da4520
--- /dev/null
+++ b/var/spack/repos/builtin/packages/armadillo/package.py
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Armadillo(Package):
+ """Armadillo is a high quality linear algebra library (matrix maths)
+ for the C++ language, aiming towards a good balance between speed and
+ ease of use."""
+
+ homepage = "http://arma.sourceforge.net/"
+ url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz"
+
+ version('7.500.0', '7d316fdf3c3c7ea92b64704180ae315d')
+ version('7.200.2', 'b21585372d67a8876117fd515d8cf0a2')
+ version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e')
+
+ variant('hdf5', default=False, description='Include HDF5 support')
+
+ depends_on('cmake@2.8:', type='build')
+ depends_on('arpack-ng') # old arpack causes undefined symbols
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('superlu@5.2:')
+ depends_on('hdf5', when='+hdf5')
+
+ def install(self, spec, prefix):
+ arpack = find_libraries(['libarpack'], root=spec[
+ 'arpack-ng'].prefix.lib, shared=True)
+ superlu = find_libraries(['libsuperlu'], root=spec[
+ 'superlu'].prefix, shared=False, recurse=True)
+ cmake_args = [
+ # ARPACK support
+ '-DARPACK_LIBRARY={0}'.format(arpack.joined()),
+ # BLAS support
+ '-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_libs.joined()),
+ # LAPACK support
+ '-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_libs.joined()),
+ # SuperLU support
+ '-DSuperLU_INCLUDE_DIR={0}'.format(spec['superlu'].prefix.include),
+ '-DSuperLU_LIBRARY={0}'.format(superlu.joined()),
+ # HDF5 support
+ '-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF')
+ ]
+
+ cmake_args.extend(std_cmake_args)
+ cmake('.', *cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/arpack-ng/make_install.patch b/var/spack/repos/builtin/packages/arpack-ng/make_install.patch
new file mode 100644
index 0000000000..ad5cffcc19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/arpack-ng/make_install.patch
@@ -0,0 +1,24 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 607d221..50426c3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -389,3 +389,19 @@ target_link_libraries(bug_1323 arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
+ add_test(bug_1323 Tests/bug_1323)
+
+ add_dependencies(check dnsimp_test bug_1315_single bug_1315_double bug_1323)
++
++############################
++# install
++############################
++# 'make install' to the correct location
++install(TARGETS arpack
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib
++ RUNTIME DESTINATION bin)
++
++if (MPI)
++ install(TARGETS parpack
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib
++ RUNTIME DESTINATION bin)
++endif ()
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index fcd5171a7d..a1c18d8086 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -26,8 +26,8 @@ from spack import *
class ArpackNg(Package):
- """
- ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.
+ """ARPACK-NG is a collection of Fortran77 subroutines designed to solve large
+ scale eigenvalue problems.
Important Features:
@@ -38,43 +38,85 @@ class ArpackNg(Package):
Generalized Problems.
* Routines for Banded Matrices - Standard or Generalized Problems.
* Routines for The Singular Value Decomposition.
- * Example driver routines that may be used as templates to implement numerous
- Shift-Invert strategies for all problem types, data types and precision.
+ * Example driver routines that may be used as templates to implement
+ numerous Shift-Invert strategies for all problem types, data types and
+ precision.
- This project is a joint project between Debian, Octave and Scilab in order to
- provide a common and maintained version of arpack.
+ This project is a joint project between Debian, Octave and Scilab in order
+ to provide a common and maintained version of arpack.
- Indeed, no single release has been published by Rice university for the last
- few years and since many software (Octave, Scilab, R, Matlab...) forked it and
- implemented their own modifications, arpack-ng aims to tackle this by providing
- a common repository and maintained versions.
+ Indeed, no single release has been published by Rice university for the
+ last few years and since many software (Octave, Scilab, R, Matlab...)
+ forked it and implemented their own modifications, arpack-ng aims to tackle
+ this by providing a common repository and maintained versions.
arpack-ng is replacing arpack almost everywhere.
"""
+
homepage = 'https://github.com/opencollab/arpack-ng'
url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
+ version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4')
version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5')
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('mpi', default=False, description='Activates MPI support')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('mpi', default=True, description='Activates MPI support')
- # The function pdlamch10 does not set the return variable. This is fixed upstream
+ # The function pdlamch10 does not set the return variable.
+ # This is fixed upstream
# see https://github.com/opencollab/arpack-ng/issues/34
- patch('pdlamch10.patch', when='@3.3:')
+ patch('pdlamch10.patch', when='@3.3.0')
+
+ patch('make_install.patch', when='@3.4.0')
+ patch('parpack_cmake.patch', when='@3.4.0')
depends_on('blas')
depends_on('lapack')
- depends_on('automake')
- depends_on('autoconf')
- depends_on('libtool@2.4.2:')
+ depends_on('automake', when='@3.3.0', type='build')
+ depends_on('autoconf', when='@3.3.0', type='build')
+ depends_on('libtool@2.4.2:', when='@3.3.0', type='build')
+ depends_on('cmake@2.8.6:', when='@3.4.0:', type='build')
depends_on('mpi', when='+mpi')
+ @when('@3.4.0:')
+ def install(self, spec, prefix):
+
+ options = ['-DEXAMPLES=ON']
+ options.extend(std_cmake_args)
+ options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
+
+ # Make sure we use Spack's blas/lapack:
+ lapack_libs = spec['lapack'].lapack_libs.joined(';')
+ blas_libs = spec['blas'].blas_libs.joined(';')
+
+ options.extend([
+ '-DLAPACK_FOUND=true',
+ '-DLAPACK_INCLUDE_DIRS={0}'.format(spec['lapack'].prefix.include),
+ '-DLAPACK_LIBRARIES={0}'.format(lapack_libs),
+ '-DBLAS_FOUND=true',
+ '-DBLAS_INCLUDE_DIRS={0}'.format(spec['blas'].prefix.include),
+ '-DBLAS_LIBRARIES={0}'.format(blas_libs)
+ ])
+
+ if '+mpi' in spec:
+ options.append('-DMPI=ON')
+
+ # TODO: -DINTERFACE64=ON
+
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS=ON')
+
+ cmake('.', *options)
+ make()
+ if self.run_tests:
+ make('test')
+ make('install')
+
+ @when('@3.3.0')
def install(self, spec, prefix):
# Apparently autotools are not bootstrapped
- # TODO: switch to use the CMake build in the next version
- # rather than bootstrapping.
which('libtoolize')()
bootstrap = Executable('./bootstrap')
@@ -83,13 +125,19 @@ class ArpackNg(Package):
if '+mpi' in spec:
options.extend([
'--enable-mpi',
- 'F77=mpif77' #FIXME: avoid hardcoding MPI wrapper names
+ 'F77=%s' % spec['mpi'].mpif77
])
- if '~shared' in spec:
+ options.extend([
+ '--with-blas={0}'.format(spec['blas'].blas_libs.ld_flags),
+ '--with-lapack={0}'.format(spec['lapack'].lapack_libs.ld_flags)
+ ])
+ if '+shared' not in spec:
options.append('--enable-shared=no')
bootstrap()
configure(*options)
make()
+ if self.run_tests:
+ make('check')
make('install')
diff --git a/var/spack/repos/builtin/packages/arpack-ng/parpack_cmake.patch b/var/spack/repos/builtin/packages/arpack-ng/parpack_cmake.patch
new file mode 100644
index 0000000000..9b11bea6ac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/arpack-ng/parpack_cmake.patch
@@ -0,0 +1,18 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 607d221..345b7fc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -113,11 +113,12 @@ set_target_properties(arpack PROPERTIES OUTPUT_NAME arpack${LIBSUFFIX})
+
+ if (MPI)
+ # add_library(parpack SHARED
+- add_library(parpack
++ add_library(parpack
+ ${parpacksrc_STAT_SRCS}
+ ${parpackutil_STAT_SRCS})
+
+ target_link_libraries(parpack ${MPI_Fortran_LIBRARIES})
++ target_link_libraries(parpack arpack)
+ set_target_properties(parpack PROPERTIES OUTPUT_NAME parpack${LIBSUFFIX})
+ endif ()
+
diff --git a/var/spack/repos/builtin/packages/arpack/package.py b/var/spack/repos/builtin/packages/arpack/package.py
index 75158776fe..91b5f06a4a 100644
--- a/var/spack/repos/builtin/packages/arpack/package.py
+++ b/var/spack/repos/builtin/packages/arpack/package.py
@@ -24,12 +24,12 @@
##############################################################################
from spack import *
import os
-import shutil
+
class Arpack(Package):
"""A collection of Fortran77 subroutines designed to solve large scale
- eigenvalue problems.
- """
+ eigenvalue problems."""
+
homepage = "http://www.caam.rice.edu/software/ARPACK/"
url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
@@ -39,27 +39,35 @@ class Arpack(Package):
depends_on('lapack')
def patch(self):
- # Filter the cray makefile to make a spack one.
- shutil.move('ARMAKES/ARmake.CRAY', 'ARmake.inc')
makefile = FileFilter('ARmake.inc')
- # Be sure to use Spack F77 wrapper
- makefile.filter('^FC.*', 'FC = f77')
- makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g')
+ # Section 1: Paths and Libraries
+
+ # Change the build directory
+ makefile.filter('^home.*', 'home = %s' % os.getcwd())
+
+ # Use external BLAS/LAPACK
+ makefile.filter('^BLASdir.*',
+ 'BLASdir = %s' % self.spec['blas'].prefix)
+ makefile.filter('^LAPACKdir.*',
+ 'LAPACKdir = %s' % self.spec['lapack'].prefix)
+
+ # Do not include the platform in the library name
+ makefile.filter('^PLAT.*', 'PLAT = ')
+ makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = $(home)/libarpack.a')
- # Set up some variables.
- makefile.filter('^PLAT.*', 'PLAT = ')
- makefile.filter('^home.*', 'home = %s' % os.getcwd())
- makefile.filter('^BLASdir.*', 'BLASdir = %s' % self.spec['blas'].prefix)
- makefile.filter('^LAPACKdir.*', 'LAPACKdir = %s' % self.spec['lapack'].prefix)
+ # Section 2: Compilers
- # build the library in our own prefix.
- makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = %s/libarpack.a' % os.getcwd())
+ # Be sure to use the Spack compiler wrapper
+ makefile.filter('^FC.*', 'FC = {0}'.format(os.environ['F77']))
+ makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g -fPIC')
+ if not which('ranlib'):
+ makefile.filter('^RANLIB.*', 'RANLIB = touch')
def install(self, spec, prefix):
with working_dir('SRC'):
make('all')
- mkdirp(prefix.lib)
+ mkdir(prefix.lib)
install('libarpack.a', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py
index a846e0ba65..552030d965 100644
--- a/var/spack/repos/builtin/packages/asciidoc/package.py
+++ b/var/spack/repos/builtin/packages/asciidoc/package.py
@@ -24,9 +24,11 @@
##############################################################################
from spack import *
+
class Asciidoc(Package):
- """ A presentable text document format for writing articles, UNIX man
+ """A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents."""
+
homepage = "http://asciidoc.org"
url = "http://downloads.sourceforge.net/project/asciidoc/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz"
@@ -34,6 +36,8 @@ class Asciidoc(Package):
depends_on('libxml2')
depends_on('libxslt')
+ depends_on('docbook-xml')
+ depends_on('docbook-xsl')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/astra/package.py b/var/spack/repos/builtin/packages/astra/package.py
new file mode 100644
index 0000000000..e32e70cada
--- /dev/null
+++ b/var/spack/repos/builtin/packages/astra/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Astra(Package):
+ """A Space Charge Tracking Algorithm."""
+
+ homepage = "http://www.desy.de/~mpyflo/"
+
+ version('2016-11-30', '17135b7a4adbacc1843a50a6a2ae2c25', expand=False,
+ url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/Astra')
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('Astra', prefix.bin)
+
+ chmod = which('chmod')
+ chmod('+x', join_path(prefix.bin, 'Astra'))
diff --git a/var/spack/repos/builtin/packages/astyle/package.py b/var/spack/repos/builtin/packages/astyle/package.py
index cd6f1d04f1..16c59469fa 100644
--- a/var/spack/repos/builtin/packages/astyle/package.py
+++ b/var/spack/repos/builtin/packages/astyle/package.py
@@ -23,30 +23,32 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
-class Astyle(Package):
- """
- A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI,
+class Astyle(MakefilePackage):
+ """A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI,
Objective-C, C#, and Java Source Code.
"""
+
homepage = "http://astyle.sourceforge.net/"
- url = "http://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/astyle_2.04_linux.tar.gz"
+ url = "http://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/astyle_2.04_linux.tar.gz"
+ version('2.05.1', '4142d178047d7040da3e0e2f1b030a1a')
version('2.04', '30b1193a758b0909d06e7ee8dd9627f6')
- def install(self, spec, prefix):
+ parallel = False
- with working_dir('src'):
- # we need to edit the makefile in place to set compiler:
- make_file = join_path(self.stage.source_path,
- 'build', 'gcc', 'Makefile')
- filter_file(r'^CXX\s*=.*', 'CXX=%s'.format(spack_cxx), make_file)
+ def build_directory(self):
+ return join_path(self.stage.source_path, 'build', self.compiler.name)
- make('-f',
- make_file,
- parallel=False)
+ def edit(self, spec, prefix):
+ makefile = join_path(self.build_directory(), 'Makefile')
+ filter_file(r'^CXX\s*=.*', 'CXX=%s' % spack_cxx, makefile)
+ # strangely enough install -o $(USER) -g $(USER) stoped working on OSX
+ if sys.platform == 'darwin':
+ filter_file(r'^INSTALL=.*', 'INSTALL=install', makefile)
- mkdirp(self.prefix.bin)
- install(join_path(self.stage.source_path, 'src', 'bin', 'astyle'),
- self.prefix.bin)
+ @property
+ def install_targets(self):
+ return ['install', 'prefix={0}'.format(self.prefix)]
diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py
index 1d26145fd1..0a7d48774d 100644
--- a/var/spack/repos/builtin/packages/atk/package.py
+++ b/var/spack/repos/builtin/packages/atk/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Atk(Package):
"""ATK provides the set of accessibility interfaces that are
implemented by other toolkits and applications. Using the ATK
@@ -32,9 +33,16 @@ class Atk(Package):
homepage = "https://developer.gnome.org/atk/"
url = "http://ftp.gnome.org/pub/gnome/sources/atk/2.14/atk-2.14.0.tar.xz"
+ version('2.20.0', '5187b0972f4d3905f285540b31395e20')
version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b')
- depends_on("glib")
+ depends_on('glib')
+ depends_on('pkg-config', type='build')
+
+ def url_for_version(self, version):
+ """Handle atk's version-based custom URLs."""
+ url = 'http://ftp.gnome.org/pub/gnome/sources/atk'
+ return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version)
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py
index c43d92c34f..51f0fced2b 100644
--- a/var/spack/repos/builtin/packages/atlas/package.py
+++ b/var/spack/repos/builtin/packages/atlas/package.py
@@ -23,20 +23,27 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+from spack.package_test import *
from spack.util.executable import Executable
import os.path
+
class Atlas(Package):
- """
- Automatically Tuned Linear Algebra Software, generic shared ATLAS is an approach for the automatic generation and
- optimization of numerical software. Currently ATLAS supplies optimized versions for the complete set of linear
- algebra kernels known as the Basic Linear Algebra Subroutines (BLAS), and a subset of the linear algebra routines
- in the LAPACK library.
+ """Automatically Tuned Linear Algebra Software, generic shared ATLAS is an
+ approach for the automatic generation and optimization of numerical
+ software. Currently ATLAS supplies optimized versions for the complete set
+ of linear algebra kernels known as the Basic Linear Algebra Subroutines
+ (BLAS), and a subset of the linear algebra routines in the LAPACK library.
"""
homepage = "http://math-atlas.sourceforge.net/"
+ version('3.10.3', 'd6ce4f16c2ad301837cfb3dade2f7cef',
+ url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.3/atlas3.10.3.tar.bz2')
+
version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
- url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
+ url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
+ # not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
+ # Lapack routines. Stick with 3.5.0 until this is fixed.
resource(name='lapack',
url='http://www.netlib.org/lapack/lapack-3.5.0.tgz',
md5='b1d3e3e425b2e44a06760ff173104bdf',
@@ -44,9 +51,10 @@ class Atlas(Package):
when='@3:')
version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
- url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
+ url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2')
variant('shared', default=True, description='Builds shared library')
+ variant('pthread', default=False, description='Use multithreaded libraries')
provides('blas')
provides('lapack')
@@ -63,16 +71,32 @@ class Atlas(Package):
# TODO: using, say, MSRs. Or move this to a variant.
def install(self, spec, prefix):
-
+ # reference to other package managers
+ # https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/a/atlas.py
+ # https://github.com/macports/macports-ports/blob/master/math/atlas/Portfile
+ # https://github.com/Homebrew/homebrew-science/pull/3571
options = []
if '+shared' in spec:
- options.append('--shared')
+ options.extend([
+ '--shared'
+ ])
+ # TODO: for non GNU add '-Fa', 'alg', '-fPIC' ?
+
+ # configure for 64-bit build
+ options.extend([
+ '-b', '64'
+ ])
+
+ # set compilers:
+ options.extend([
+ '-C', 'ic', spack_cc,
+ '-C', 'if', spack_f77
+ ])
- # Lapack resource
- lapack_stage = self.stage[1]
- lapack_tarfile = os.path.basename(lapack_stage.fetcher.url)
- lapack_tarfile_path = join_path(lapack_stage.path, lapack_tarfile)
- options.append('--with-netlib-lapack-tarfile=%s' % lapack_tarfile_path)
+ # Lapack resource to provide full lapack build. Note that
+ # ATLAS only provides a few LAPACK routines natively.
+ options.append('--with-netlib-lapack-tarfile=%s' %
+ self.stage[1].archive_file)
with working_dir('spack-build', create=True):
configure = Executable('../configure')
@@ -81,4 +105,48 @@ class Atlas(Package):
make('check')
make('ptcheck')
make('time')
+ if '+shared' in spec:
+ with working_dir('lib'):
+ make('shared_all')
+
make("install")
+ self.install_test()
+
+ @property
+ def blas_libs(self):
+ # libsatlas.[so,dylib,dll ] contains all serial APIs (serial lapack,
+ # serial BLAS), and all ATLAS symbols needed to support them. Whereas
+ # libtatlas.[so,dylib,dll ] is parallel (multithreaded) version.
+ is_threaded = '+pthread' in self.spec
+ if '+shared' in self.spec:
+ to_find = ['libtatlas'] if is_threaded else ['libsatlas']
+ shared = True
+ else:
+ interfaces = [
+ 'libptcblas',
+ 'libptf77blas'
+ ] if is_threaded else [
+ 'libcblas',
+ 'libf77blas'
+ ]
+ to_find = ['liblapack'] + interfaces + ['libatlas']
+ shared = False
+ return find_libraries(
+ to_find, root=self.prefix, shared=shared, recurse=True
+ )
+
+ @property
+ def lapack_libs(self):
+ return self.blas_libs
+
+ def install_test(self):
+ source_file = join_path(os.path.dirname(self.module.__file__),
+ 'test_cblas_dgemm.c')
+ blessed_file = join_path(os.path.dirname(self.module.__file__),
+ 'test_cblas_dgemm.output')
+
+ include_flags = ["-I%s" % self.spec.prefix.include]
+ link_flags = self.lapack_libs.ld_flags.split()
+
+ output = compile_c_and_execute(source_file, include_flags, link_flags)
+ compare_output_file(output, blessed_file)
diff --git a/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
new file mode 100644
index 0000000000..2cb90fb883
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
@@ -0,0 +1,49 @@
+#include <cblas.h>
+#include <stdio.h>
+
+double m[] = {
+ 3, 1, 3,
+ 1, 5, 9,
+ 2, 6, 5
+};
+
+double x[] = {
+ -1, 3, -3
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ void dgesv_(int *n, int *nrhs, double *a, int *lda,
+ int *ipivot, double *b, int *ldb, int *info);
+
+#ifdef __cplusplus
+}
+#endif
+
+int main(void) {
+ int i;
+ // blas:
+ double A[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
+ double B[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
+ double C[9] = {.5, .5, .5, .5, .5, .5, .5, .5, .5};
+ cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans,
+ 3, 3, 2, 1, A, 3, B, 3, 2, C, 3);
+ for (i = 0; i < 9; i++)
+ printf("%f\n", C[i]);
+
+ // lapack:
+ int ipiv[3];
+ int j;
+ int info;
+ int n = 1;
+ int nrhs = 1;
+ int lda = 3;
+ int ldb = 3;
+ dgesv_(&n,&nrhs, &m[0], &lda, ipiv, &x[0], &ldb, &info);
+ for (i=0; i<3; ++i)
+ printf("%5.1f\n", x[i]);
+
+ return 0;
+}
diff --git a/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output
new file mode 100644
index 0000000000..01404462c4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output
@@ -0,0 +1,12 @@
+11.000000
+-9.000000
+5.000000
+-9.000000
+21.000000
+-1.000000
+5.000000
+-1.000000
+3.000000
+ -0.3
+ 3.0
+ -3.0
diff --git a/var/spack/repos/builtin/packages/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py
new file mode 100644
index 0000000000..17d0ef8209
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atompaw/package.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Atompaw(Package):
+ """A Projector Augmented Wave (PAW) code for generating
+ atom-centered functions.
+
+ Official website: http://pwpaw.wfu.edu
+
+ User's guide: ~/doc/atompaw-usersguide.pdf
+ """
+ homepage = "http://users.wfu.edu/natalie/papers/pwpaw/man.html"
+ url = "http://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz"
+
+ version('4.0.0.13', 'af4a042380356f6780183c4b325aad1d')
+ version('3.1.0.3', 'c996a277e11707887177f47bbb229aa6')
+
+ depends_on("lapack")
+ depends_on("blas")
+
+ # pin libxc version
+ depends_on("libxc@2.2.1")
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix]
+
+ linalg = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options.extend([
+ "--with-linalg-libs=%s" % linalg.ld_flags,
+ "--enable-libxc",
+ "--with-libxc-incs=-I%s" % spec["libxc"].prefix.include,
+ "--with-libxc-libs=-L%s -lxcf90 -lxc" % spec["libxc"].prefix.lib,
+ ])
+
+ configure(*options)
+ make(parallel=False) # parallel build fails
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/atop/package.py b/var/spack/repos/builtin/packages/atop/package.py
index 9cacafc634..e3a9d464a9 100644
--- a/var/spack/repos/builtin/packages/atop/package.py
+++ b/var/spack/repos/builtin/packages/atop/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Atop(Package):
"""Atop is an ASCII full-screen performance monitor for Linux"""
homepage = "http://www.atoptool.nl/index.php"
@@ -37,4 +38,4 @@ class Atop(Package):
install("atop", join_path(prefix.bin, "atop"))
mkdirp(join_path(prefix.man, "man1"))
install(join_path("man", "atop.1"),
- join_path(prefix.man, "man1", "atop.1"))
+ join_path(prefix.man, "man1", "atop.1"))
diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py
index d920855a2f..d812350ae8 100644
--- a/var/spack/repos/builtin/packages/autoconf/package.py
+++ b/var/spack/repos/builtin/packages/autoconf/package.py
@@ -24,18 +24,32 @@
##############################################################################
from spack import *
-class Autoconf(Package):
+
+class Autoconf(AutotoolsPackage):
"""Autoconf -- system configuration part of autotools"""
- homepage = "https://www.gnu.org/software/autoconf/"
- url = "http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz"
+
+ homepage = 'https://www.gnu.org/software/autoconf/'
+ url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'
version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b')
version('2.62', '6c1f3b3734999035d77da5024aab4fbd')
+ version('2.59', 'd4d45eaa1769d45e59dcb131a4af17a0')
+ version('2.13', '9de56d4a161a723228220b0f425dc711')
- depends_on("m4")
+ depends_on('m4@1.4.6:', type='build')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ def _make_executable(self, name):
+ return Executable(join_path(self.prefix.bin, name))
- make()
- make("install")
+ def setup_dependent_package(self, module, dependent_spec):
+ # Autoconf is very likely to be a build dependency,
+ # so we add the tools it provides to the dependent module
+ executables = ['autoconf',
+ 'autoheader',
+ 'autom4te',
+ 'autoreconf',
+ 'autoscan',
+ 'autoupdate',
+ 'ifnames']
+ for name in executables:
+ setattr(module, name, self._make_executable(name))
diff --git a/var/spack/repos/builtin/packages/automaded/package.py b/var/spack/repos/builtin/packages/automaded/package.py
index fc65a04a06..7e586b2991 100644
--- a/var/spack/repos/builtin/packages/automaded/package.py
+++ b/var/spack/repos/builtin/packages/automaded/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Automaded(Package):
"""AutomaDeD (Automata-based Debugging for Dissimilar parallel
tasks) is a tool for automatic diagnosis of performance and
@@ -44,6 +45,7 @@ class Automaded(Package):
depends_on('mpi')
depends_on('boost')
depends_on('callpath')
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake("-DSTATE_TRACKER_WITH_CALLPATH=ON", *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py
index 331b364496..6c0a47ff95 100644
--- a/var/spack/repos/builtin/packages/automake/package.py
+++ b/var/spack/repos/builtin/packages/automake/package.py
@@ -24,19 +24,25 @@
##############################################################################
from spack import *
-class Automake(Package):
+
+class Automake(AutotoolsPackage):
"""Automake -- make file builder part of autotools"""
- homepage = "http://www.gnu.org/software/automake/"
- url = "http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz"
+
+ homepage = 'http://www.gnu.org/software/automake/'
+ url = 'http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz'
version('1.15', '716946a105ca228ab545fc37a70df3a3')
version('1.14.1', 'd052a3e884631b9c7892f2efce542d75')
version('1.11.6', '0286dc30295b62985ca51919202ecfcc')
- depends_on('autoconf')
+ depends_on('autoconf', type='build')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ def _make_executable(self, name):
+ return Executable(join_path(self.prefix.bin, name))
- make()
- make("install")
+ def setup_dependent_package(self, module, dependent_spec):
+ # Automake is very likely to be a build dependency,
+ # so we add the tools it provides to the dependent module
+ executables = ['aclocal', 'automake']
+ for name in executables:
+ setattr(module, name, self._make_executable(name))
diff --git a/var/spack/repos/builtin/packages/bamtools/package.py b/var/spack/repos/builtin/packages/bamtools/package.py
new file mode 100644
index 0000000000..7bb1985003
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bamtools/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bamtools(Package):
+ """C++ API & command-line toolkit for working with BAM data."""
+
+ homepage = "https://github.com/pezmaster31/bamtools"
+ url = "https://github.com/pezmaster31/bamtools/archive/v2.4.0.tar.gz"
+
+ version('2.4.0', '6139d00c1b1fe88fe15d094d8a74d8b9')
+ version('2.3.0', 'd327df4ba037d6eb8beef65d7da75ebc')
+ version('2.2.3', '6eccd3e45e4ba12a68daa3298998e76d')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('..', *std_cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bash-completion/package.py b/var/spack/repos/builtin/packages/bash-completion/package.py
new file mode 100644
index 0000000000..666a1bef13
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bash-completion/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BashCompletion(Package):
+ """Programmable completion functions for bash."""
+ homepage = "https://github.com/scop/bash-completion"
+ url = "https://github.com/scop/bash-completion/archive/2.3.tar.gz"
+
+ version('2.3', '67e50f5f3c804350b43f2b664c33dde811d24292')
+ version('develop', git='https://github.com/scop/bash-completion.git')
+
+ # Build dependencies
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('libtool', type='build')
+
+ # Other dependencies
+ depends_on('bash@4.1:', type='run')
+
+ def install(self, spec, prefix):
+ make_args = ['--prefix=%s' % prefix]
+
+ autoreconf('-i')
+ configure(*make_args)
+ make()
+ # make("check") # optional, requires dejagnu and tcllib
+ make("install",
+ parallel=False)
+
+ # Guidelines for individual user as provided by the author at
+ # https://github.com/scop/bash-completion
+ print('=====================================================')
+ print('Bash completion has been installed. To use it, please')
+ print('include the following lines in your ~/.bash_profile :')
+ print('')
+ print('# Use bash-completion, if available')
+ print('[[ $PS1 && -f %s/share/bash-completion/bash_completion ]] && \ ' % prefix) # NOQA: ignore=E501
+ print(' . %s/share/bash-completion/bash_completion' % prefix)
+ print('')
+ print('=====================================================')
diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py
index 5820595be9..e0cd114635 100644
--- a/var/spack/repos/builtin/packages/bash/package.py
+++ b/var/spack/repos/builtin/packages/bash/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Bash(Package):
"""The GNU Project's Bourne Again SHell."""
diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure.patch b/var/spack/repos/builtin/packages/bazel/cc_configure.patch
new file mode 100644
index 0000000000..3e108c3b5e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/cc_configure.patch
@@ -0,0 +1,28 @@
+--- bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 14:00:32.118358387 +0200
++++ bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 13:52:45.342610147 +0200
+@@ -173,8 +173,23 @@
+ else:
+ inc_dirs = result.stderr[index1 + 1:index2].strip()
+
+- return [repository_ctx.path(_cxx_inc_convert(p))
+- for p in inc_dirs.split("\n")]
++ default_inc_directories = [
++ repository_ctx.path(_cxx_inc_convert(p))
++ for p in inc_dirs.split("\n")
++ ]
++
++ env = repository_ctx.os.environ
++ if "SPACK_DEPENDENCIES" in env:
++ for dep in env["SPACK_DEPENDENCIES"].split(":"):
++ path = dep + "/include"
++ # path = repository_ctx.os.path.join(dep, "include")
++ # if not repository_ctx.os.path.exists(path):
++ # continue
++ default_inc_directories.append(
++ repository_ctx.path(_cxx_inc_convert(path))
++ )
++
++ return default_inc_directories
+
+ def _add_option_if_supported(repository_ctx, cc, option):
+ """Checks that `option` is supported by the C compiler."""
diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch
new file mode 100644
index 0000000000..9be9f97d69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch
@@ -0,0 +1,119 @@
+diff -pu bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
+--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 11:56:01.565756979 +0200
++++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 12:04:13.292839801 +0200
+@@ -92,5 +92,115 @@ public class BazelConfiguration extends
+ if (tmpdir != null) {
+ builder.put("TMPDIR", tmpdir);
+ }
++
++ String spack_prefix = System.getenv("SPACK_PREFIX");
++ if (spack_prefix != null) {
++ builder.put("SPACK_PREFIX", spack_prefix);
++ }
++
++ String spack_env_path = System.getenv("SPACK_ENV_PATH");
++ if (spack_env_path != null) {
++ builder.put("SPACK_ENV_PATH", spack_env_path);
++ }
++
++ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
++ if (spack_debug_log_dir != null) {
++ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
++ }
++
++ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
++ if (spack_compiler_spec != null) {
++ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
++ }
++
++ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
++ if (spack_cc_rpath_arg != null) {
++ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
++ }
++
++ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
++ if (spack_cxx_rpath_arg != null) {
++ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
++ }
++
++ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
++ if (spack_f77_rpath_arg != null) {
++ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
++ }
++
++ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
++ if (spack_fc_rpath_arg != null) {
++ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
++ }
++
++ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
++ if (spack_short_spec != null) {
++ builder.put("SPACK_SHORT_SPEC", spack_short_spec);
++ }
++
++ String spack_cc = System.getenv("SPACK_CC");
++ if (spack_cc != null) {
++ builder.put("SPACK_CC", spack_cc);
++ }
++
++ String spack_cxx = System.getenv("SPACK_CXX");
++ if (spack_cxx != null) {
++ builder.put("SPACK_CXX", spack_cxx);
++ }
++
++ String spack_f77 = System.getenv("SPACK_F77");
++ if (spack_f77 != null) {
++ builder.put("SPACK_F77", spack_f77);
++ }
++
++ String spack_fc = System.getenv("SPACK_FC");
++ if (spack_fc != null) {
++ builder.put("SPACK_FC", spack_fc);
++ }
++
++ String spack_cflags = System.getenv("SPACK_CFLAGS");
++ if (spack_cflags != null) {
++ builder.put("SPACK_CFLAGS", spack_cflags);
++ }
++
++ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
++ if (spack_cxxflags != null) {
++ builder.put("SPACK_CXXFLAGS", spack_cxxflags);
++ }
++
++ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
++ if (spack_fcflags != null) {
++ builder.put("SPACK_FCFLAGS", spack_fcflags);
++ }
++
++ String spack_fflags = System.getenv("SPACK_FFLAGS");
++ if (spack_fflags != null) {
++ builder.put("SPACK_FFLAGS", spack_fflags);
++ }
++
++ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
++ if (spack_ldflags != null) {
++ builder.put("SPACK_LDFLAGS", spack_ldflags);
++ }
++
++ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
++ if (spack_ldlibs != null) {
++ builder.put("SPACK_LDLIBS", spack_ldlibs);
++ }
++
++ String spack_debug = System.getenv("SPACK_DEBUG");
++ if (spack_debug != null) {
++ builder.put("SPACK_DEBUG", spack_debug);
++ }
++
++ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
++ if (spack_test_command != null) {
++ builder.put("SPACK_TEST_COMMAND", spack_test_command);
++ }
++
++ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
++ if (spack_dependencies != null) {
++ builder.put("SPACK_DEPENDENCIES", spack_dependencies);
++ }
+ }
+ }
diff --git a/var/spack/repos/builtin/packages/bazel/link.patch b/var/spack/repos/builtin/packages/bazel/link.patch
new file mode 100644
index 0000000000..69d100f62c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/link.patch
@@ -0,0 +1,133 @@
+--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-07-29 10:22:16.000000000 +0200
++++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-10-13 15:21:35.036617890 +0200
+@@ -214,6 +214,130 @@
+ .getParentDirectory()
+ .getPathString());
+ }
++
++ String path = System.getenv("PATH");
++ result.put("PATH", path == null ? "/bin:/usr/bin" : path);
++
++ String ldLibraryPath = System.getenv("LD_LIBRARY_PATH");
++ if (ldLibraryPath != null) {
++ result.put("LD_LIBRARY_PATH", ldLibraryPath);
++ }
++
++ String tmpdir = System.getenv("TMPDIR");
++ if (tmpdir != null) {
++ result.put("TMPDIR", tmpdir);
++ }
++
++ String spack_prefix = System.getenv("SPACK_PREFIX");
++ if (spack_prefix != null) {
++ result.put("SPACK_PREFIX", spack_prefix);
++ }
++
++ String spack_env_path = System.getenv("SPACK_ENV_PATH");
++ if (spack_env_path != null) {
++ result.put("SPACK_ENV_PATH", spack_env_path);
++ }
++
++ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
++ if (spack_debug_log_dir != null) {
++ result.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
++ }
++
++ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
++ if (spack_compiler_spec != null) {
++ result.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
++ }
++
++ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
++ if (spack_cc_rpath_arg != null) {
++ result.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
++ }
++
++ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
++ if (spack_cxx_rpath_arg != null) {
++ result.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
++ }
++
++ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
++ if (spack_f77_rpath_arg != null) {
++ result.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
++ }
++
++ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
++ if (spack_fc_rpath_arg != null) {
++ result.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
++ }
++
++ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
++ if (spack_short_spec != null) {
++ result.put("SPACK_SHORT_SPEC", spack_short_spec);
++ }
++
++ String spack_cc = System.getenv("SPACK_CC");
++ if (spack_cc != null) {
++ result.put("SPACK_CC", spack_cc);
++ }
++
++ String spack_cxx = System.getenv("SPACK_CXX");
++ if (spack_cxx != null) {
++ result.put("SPACK_CXX", spack_cxx);
++ }
++
++ String spack_f77 = System.getenv("SPACK_F77");
++ if (spack_f77 != null) {
++ result.put("SPACK_F77", spack_f77);
++ }
++
++ String spack_fc = System.getenv("SPACK_FC");
++ if (spack_fc != null) {
++ result.put("SPACK_FC", spack_fc);
++ }
++
++ String spack_cflags = System.getenv("SPACK_CFLAGS");
++ if (spack_cflags != null) {
++ result.put("SPACK_CFLAGS", spack_cflags);
++ }
++
++ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
++ if (spack_cxxflags != null) {
++ result.put("SPACK_CXXFLAGS", spack_cxxflags);
++ }
++
++ String spack_fcflags = System.getenv("SPACK_FCFLAGS");
++ if (spack_fcflags != null) {
++ result.put("SPACK_FCFLAGS", spack_fcflags);
++ }
++
++ String spack_fflags = System.getenv("SPACK_FFLAGS");
++ if (spack_fflags != null) {
++ result.put("SPACK_FFLAGS", spack_fflags);
++ }
++
++ String spack_ldflags = System.getenv("SPACK_LDFLAGS");
++ if (spack_ldflags != null) {
++ result.put("SPACK_LDFLAGS", spack_ldflags);
++ }
++
++ String spack_ldlibs = System.getenv("SPACK_LDLIBS");
++ if (spack_ldlibs != null) {
++ result.put("SPACK_LDLIBS", spack_ldlibs);
++ }
++
++ String spack_debug = System.getenv("SPACK_DEBUG");
++ if (spack_debug != null) {
++ result.put("SPACK_DEBUG", spack_debug);
++ }
++
++ String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
++ if (spack_test_command != null) {
++ result.put("SPACK_TEST_COMMAND", spack_test_command);
++ }
++
++ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
++ if (spack_dependencies != null) {
++ result.put("SPACK_DEPENDENCIES", spack_dependencies);
++ }
++
+ return result.build();
+ }
+
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
new file mode 100644
index 0000000000..94ac73cbd2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from multiprocessing import cpu_count
+from spack.util.environment import env_flag
+from spack.build_environment import SPACK_NO_PARALLEL_MAKE
+
+
+class Bazel(Package):
+ """Bazel is Google's own build tool"""
+
+ homepage = "https://www.bazel.io"
+ url = "https://github.com/bazelbuild/bazel/archive/0.3.1.tar.gz"
+
+ version('0.3.1', '5c959467484a7fc7dd2e5e4a1e8e866b')
+ version('0.3.0', '33a2cb457d28e1bee9282134769b9283')
+ version('0.2.3', '393a491d690e43caaba88005efe6da91')
+ version('0.2.2b', '75081804f073cbd194da1a07b16cba5f')
+ version('0.2.2', '644bc4ea7f429d835e74f255dc1054e6')
+
+ depends_on('jdk@8:')
+ patch('fix_env_handling.patch')
+ patch('link.patch')
+ patch('cc_configure.patch')
+
+ def install(self, spec, prefix):
+ bash = which('bash')
+ bash('-c', './compile.sh')
+ mkdir(prefix.bin)
+ install('output/bazel', prefix.bin)
+
+ def setup_dependent_package(self, module, dep_spec):
+ class BazelExecutable(Executable):
+ """Special callable executable object for bazel so the user can
+ specify parallel or not on a per-invocation basis. Using
+ 'parallel' as a kwarg will override whatever the package's
+ global setting is, so you can either default to true or false
+ and override particular calls.
+
+ Note that if the SPACK_NO_PARALLEL_MAKE env var is set it
+ overrides everything.
+ """
+
+ def __init__(self, name, command, jobs):
+ super(BazelExecutable, self).__init__(name)
+ self.bazel_command = command
+ self.jobs = jobs
+
+ def __call__(self, *args, **kwargs):
+ disable = env_flag(SPACK_NO_PARALLEL_MAKE)
+ parallel = ((not disable) and
+ kwargs.get('parallel', self.jobs > 1))
+
+ jobs = "--jobs=1"
+ if parallel:
+ jobs = "--jobs=%d" % self.jobs
+
+ args = (self.bazel_command,) + (jobs,) + args
+
+ return super(BazelExecutable, self).__call__(*args, **kwargs)
+
+ jobs = cpu_count()
+ if not dep_spec.package.parallel:
+ jobs = 1
+ elif dep_spec.package.make_jobs:
+ jobs = dep_spec.package.make_jobs
+ module.bazel = BazelExecutable('bazel', 'build', jobs)
diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py
index 09e897f34e..5d5e64a390 100644
--- a/var/spack/repos/builtin/packages/bbcp/package.py
+++ b/var/spack/repos/builtin/packages/bbcp/package.py
@@ -24,18 +24,25 @@
##############################################################################
from spack import *
+
class Bbcp(Package):
"""Securely and quickly copy data from source to target"""
homepage = "http://www.slac.stanford.edu/~abh/bbcp/"
- version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git', branch="master")
+ version('git', git='http://www.slac.stanford.edu/~abh/bbcp/bbcp.git',
+ branch="master")
+
+ depends_on('zlib')
+ depends_on('openssl')
def install(self, spec, prefix):
cd("src")
make()
- # BBCP wants to build the executable in a directory whose name depends on the system type
+ # BBCP wants to build the executable in a directory whose name depends
+ # on the system type
makesname = Executable("../MakeSname")
- bbcp_executable_path = "../bin/%s/bbcp" % makesname(output=str).rstrip("\n")
+ bbcp_executable_path = "../bin/%s/bbcp" % makesname(
+ output=str).rstrip("\n")
destination_path = "%s/bin/" % prefix
mkdirp(destination_path)
install(bbcp_executable_path, destination_path)
diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py
new file mode 100644
index 0000000000..a1b4a06dbb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bcftools/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bcftools(Package):
+ """BCFtools is a set of utilities that manipulate variant calls in the
+ Variant Call Format (VCF) and its binary counterpart BCF. All
+ commands work transparently with both VCFs and BCFs, both
+ uncompressed and BGZF-compressed."""
+
+ homepage = "http://samtools.github.io/bcftools/"
+ url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2"
+
+ version('1.3.1', '575001e9fca37cab0c7a7287ad4b1cdb')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ make("prefix=%s" % prefix, "all")
+ make("prefix=%s" % prefix, "install")
diff --git a/var/spack/repos/builtin/packages/bdftopcf/package.py b/var/spack/repos/builtin/packages/bdftopcf/package.py
new file mode 100644
index 0000000000..095f0c1bd4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bdftopcf/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bdftopcf(Package):
+ """bdftopcf is a font compiler for the X server and font server. Fonts
+ in Portable Compiled Format can be read by any architecture, although
+ the file is structured to allow one particular architecture to read
+ them directly without reformatting. This allows fast reading on the
+ appropriate machine, but the files are still portable (but read more
+ slowly) on other machines."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/bdftopcf"
+ url = "https://www.x.org/archive/individual/app/bdftopcf-1.0.5.tar.gz"
+
+ version('1.0.5', '456416d33e0d41a96b5a3725d99e1be3')
+
+ depends_on('libxfont')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bdw-gc/package.py b/var/spack/repos/builtin/packages/bdw-gc/package.py
new file mode 100644
index 0000000000..5120266319
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bdw-gc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BdwGc(Package):
+ """The Boehm-Demers-Weiser conservative garbage collector is a garbage
+ collecting replacement for C malloc or C++ new."""
+
+ homepage = "http://www.hboehm.info/gc/"
+ url = "http://www.hboehm.info/gc/gc_source/gc-7.4.4.tar.gz"
+
+ version('7.4.4', '96d18b0448a841c88d56e4ab3d180297')
+
+ variant('libatomic-ops', default=True,
+ description='Use external libatomic-ops')
+
+ depends_on('libatomic-ops', when='+libatomic-ops')
+
+ def install(self, spec, prefix):
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--with-libatomic-ops={0}'.format(
+ 'yes' if '+libatomic-ops' in spec else 'no')
+ ]
+
+ configure(*config_args)
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bear/package.py b/var/spack/repos/builtin/packages/bear/package.py
index 730a684ec5..f52050d7b9 100644
--- a/var/spack/repos/builtin/packages/bear/package.py
+++ b/var/spack/repos/builtin/packages/bear/package.py
@@ -24,14 +24,16 @@
##############################################################################
from spack import *
+
class Bear(Package):
- """Bear is a tool that generates a compilation database for clang tooling from non-cmake build systems."""
+ """Bear is a tool that generates a compilation database for clang tooling
+ from non-cmake build systems."""
homepage = "https://github.com/rizsotto/Bear"
url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz"
version('2.0.4', 'fd8afb5e8e18f8737ba06f90bd77d011')
- depends_on("cmake")
+ depends_on('cmake', type='build')
depends_on("python")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/bedtools2/package.py b/var/spack/repos/builtin/packages/bedtools2/package.py
new file mode 100644
index 0000000000..46f3185154
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bedtools2/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bedtools2(Package):
+ """Collectively, the bedtools utilities are a swiss-army knife of
+ tools for a wide-range of genomics analysis tasks. The most
+ widely-used tools enable genome arithmetic: that is, set theory
+ on the genome."""
+
+ homepage = "https://github.com/arq5x/bedtools2"
+ url = "https://github.com/arq5x/bedtools2/archive/v2.26.0.tar.gz"
+
+ version('2.26.0', '52227e7efa6627f0f95d7d734973233d')
+ version('2.25.0', '534fb4a7bf0d0c3f05be52a0160d8e3d')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ make("prefix=%s" % prefix, "install")
diff --git a/var/spack/repos/builtin/packages/beforelight/package.py b/var/spack/repos/builtin/packages/beforelight/package.py
new file mode 100644
index 0000000000..37a91f5614
--- /dev/null
+++ b/var/spack/repos/builtin/packages/beforelight/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Beforelight(Package):
+ """The beforelight program is a sample implementation of a screen saver
+ for X servers supporting the MIT-SCREEN-SAVER extension. It is only
+ recommended for use as a code sample, as it does not include features
+ such as screen locking or configurability."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/beforelight"
+ url = "https://www.x.org/archive/individual/app/beforelight-1.0.5.tar.gz"
+
+ version('1.0.5', 'f0433eb6df647f36bbb5b38fb2beb22a')
+
+ depends_on('libx11')
+ depends_on('libxscrnsaver')
+ depends_on('libxt')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bertini/package.py b/var/spack/repos/builtin/packages/bertini/package.py
new file mode 100644
index 0000000000..7dd17a062e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bertini/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bertini(Package):
+ """Bertini is a general-purpose solver, written in C, that was created
+ for research about polynomial continuation. It solves for the numerical
+ solution of systems of polynomial equations using homotopy continuation."""
+
+ homepage = "https://bertini.nd.edu/"
+ url = "https://bertini.nd.edu/BertiniSource_v1.5.tar.gz"
+
+ version('1.5', 'e3f6cc6e7f9a0cf1d73185e8671af707')
+
+ variant('mpi', default=True, description='Compile in parallel')
+
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('gmp')
+ depends_on('mpfr')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/bib2xhtml/package.py b/var/spack/repos/builtin/packages/bib2xhtml/package.py
index a9cbd204b6..b356038180 100644
--- a/var/spack/repos/builtin/packages/bib2xhtml/package.py
+++ b/var/spack/repos/builtin/packages/bib2xhtml/package.py
@@ -25,10 +25,11 @@
from spack import *
from glob import glob
+
class Bib2xhtml(Package):
"""bib2xhtml is a program that converts BibTeX files into HTML."""
homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/"
- url='http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
+ url = 'http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'
version('3.0-15-gf506', 'a26ba02fe0053bbbf2277bdf0acf8645')
diff --git a/var/spack/repos/builtin/packages/bigreqsproto/package.py b/var/spack/repos/builtin/packages/bigreqsproto/package.py
new file mode 100644
index 0000000000..61fd9c5121
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bigreqsproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bigreqsproto(Package):
+ """Big Requests Extension.
+
+ This extension defines a protocol to enable the use of requests
+ that exceed 262140 bytes in length."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/bigreqsproto"
+ url = "https://www.x.org/archive/individual/proto/bigreqsproto-1.1.2.tar.gz"
+
+ version('1.1.2', '9b83369ac7a5eb2bf54c8f34db043a0e')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index 9e4cc98ae6..bf49ca9405 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -24,28 +24,33 @@
##############################################################################
from spack import *
+
class Binutils(Package):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
- homepage = "http://www.gnu.org/software/binutils/"
- url="https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
+ homepage = "http://www.gnu.org/software/binutils/"
+ url = "https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
+ version('2.27', '2869c9bf3e60ee97c74ac2a6bf4e9d68')
version('2.26', '64146a0faa3b411ba774f47d41de239f')
version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
- depends_on('m4')
- depends_on('flex')
- depends_on('bison')
+ depends_on('m4', type='build')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
- # Add a patch that creates binutils libiberty_pic.a which is preferred by OpenSpeedShop and cbtf-krell
- variant('krellpatch', default=False, description="build with openspeedshop based patch.")
+ # Add a patch that creates binutils libiberty_pic.a which is preferred by
+ # OpenSpeedShop and cbtf-krell
+ variant('krellpatch', default=False,
+ description="build with openspeedshop based patch.")
variant('gold', default=True, description="build the gold linker")
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
patch('cr16.patch')
+ patch('update_symbol-2.26.patch', when='@2.26')
variant('libiberty', default=False, description='Also install libiberty.')
diff --git a/var/spack/repos/builtin/packages/binutils/update_symbol-2.26.patch b/var/spack/repos/builtin/packages/binutils/update_symbol-2.26.patch
new file mode 100644
index 0000000000..2601f63a6b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/binutils/update_symbol-2.26.patch
@@ -0,0 +1,104 @@
+From 544ddf9322b1b83982e5cb84a54d084ee7e718ea Mon Sep 17 00:00:00 2001
+From: H.J. Lu <hjl.tools@gmail.com>
+Date: Wed, 24 Feb 2016 15:13:35 -0800
+Subject: [PATCH] Update symbol version for symbol from linker script
+
+We need to update symbol version for symbols from linker script.
+
+Backport from master
+
+bfd/
+
+ PR ld/19698
+ * elflink.c (bfd_elf_record_link_assignment): Set versioned if
+ symbol version is unknown.
+
+ld/
+
+ PR ld/19698
+ * testsuite/ld-elf/pr19698.d: New file.
+ * testsuite/ld-elf/pr19698.s: Likewise.
+ * testsuite/ld-elf/pr19698.t: Likewise.
+---
+ bfd/ChangeLog | 9 +++++++++
+ bfd/elflink.c | 13 +++++++++++++
+ ld/ChangeLog | 10 ++++++++++
+ ld/testsuite/ld-elf/pr19698.d | 10 ++++++++++
+ ld/testsuite/ld-elf/pr19698.s | 5 +++++
+ ld/testsuite/ld-elf/pr19698.t | 11 +++++++++++
+ 6 files changed, 58 insertions(+), 0 deletions(-)
+ create mode 100644 ld/testsuite/ld-elf/pr19698.d
+ create mode 100644 ld/testsuite/ld-elf/pr19698.s
+ create mode 100644 ld/testsuite/ld-elf/pr19698.t
+
+diff --git a/bfd/elflink.c b/bfd/elflink.c
+index ae8d148..8fcaadd 100644
+--- a/bfd/elflink.c
++++ b/bfd/elflink.c
+@@ -555,6 +555,19 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
+ if (h == NULL)
+ return provide;
+
++ if (h->versioned == unknown)
++ {
++ /* Set versioned if symbol version is unknown. */
++ char *version = strrchr (name, ELF_VER_CHR);
++ if (version)
++ {
++ if (version > name && version[-1] != ELF_VER_CHR)
++ h->versioned = versioned_hidden;
++ else
++ h->versioned = versioned;
++ }
++ }
++
+ switch (h->root.type)
+ {
+ case bfd_link_hash_defined:
+diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d
+new file mode 100644
+index 0000000..a39f67a
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr19698.d
+@@ -0,0 +1,10 @@
++#ld: -shared $srcdir/$subdir/pr19698.t
++#readelf : --dyn-syms --wide
++#target: *-*-linux* *-*-gnu* *-*-solaris*
++
++Symbol table '\.dynsym' contains [0-9]+ entries:
++#...
++ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@VERS.1
++#...
++ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@@VERS.2
++#pass
+diff --git a/ld/testsuite/ld-elf/pr19698.s b/ld/testsuite/ld-elf/pr19698.s
+new file mode 100644
+index 0000000..875dca4
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr19698.s
+@@ -0,0 +1,5 @@
++ .text
++ .globl foo
++ .type foo, %function
++foo:
++ .byte 0
+diff --git a/ld/testsuite/ld-elf/pr19698.t b/ld/testsuite/ld-elf/pr19698.t
+new file mode 100644
+index 0000000..09d9125
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr19698.t
+@@ -0,0 +1,11 @@
++"foo@VERS.1" = foo;
++
++VERSION {
++VERS.2 {
++ global:
++ foo;
++};
++
++VERS.1 {
++};
++}
+--
+1.7.1
+
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
index c5bc051c80..70795f05cc 100644
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -24,9 +24,10 @@
##############################################################################
from spack import *
+
class Bison(Package):
- """Bison is a general-purpose parser generator that converts
- an annotated context-free grammar into a deterministic LR or
+ """Bison is a general-purpose parser generator that converts
+ an annotated context-free grammar into a deterministic LR or
generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "http://www.gnu.org/software/bison/"
@@ -34,7 +35,7 @@ class Bison(Package):
version('3.0.4', 'a586e11cd4aff49c3ff6d3b6a4c9ccf8')
- depends_on("m4")
+ depends_on("m4", type='build')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/bitmap/package.py b/var/spack/repos/builtin/packages/bitmap/package.py
new file mode 100644
index 0000000000..55fdacefd5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bitmap/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bitmap(Package):
+ """bitmap, bmtoa, atobm - X bitmap (XBM) editor and converter utilities."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/bitmap"
+ url = "https://www.x.org/archive/individual/app/bitmap-1.0.8.tar.gz"
+
+ version('1.0.8', '0ca600041bb0836ae7c9f5db5ce09091')
+
+ depends_on('libx11')
+ depends_on('libxmu')
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+
+ depends_on('xbitmaps', type='build')
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch b/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch
new file mode 100644
index 0000000000..4f4441bbe9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch
@@ -0,0 +1,62 @@
+--- old/Makefile.spack
++++ new/Makefile.spack
+@@ -0,0 +1,59 @@
++# Set PREFIX to the install location for both building and installing
++# Set GMP_PREFIX to the location where GMP is installed
++
++SRCS = \
++ bliss_C.cc \
++ defs.cc \
++ graph.cc \
++ heap.cc \
++ orbit.cc \
++ partition.cc \
++ timer.cc \
++ uintseqhash.cc \
++ utils.cc
++
++all: libbliss.la bliss libbliss_gmp.la bliss_gmp
++
++libbliss.la: $(SRCS:%.cc=%.lo)
++ libtool --mode=link --tag=CXX c++ -g -O3 \
++ -rpath $(PREFIX)/lib -o $@ $^
++libbliss_gmp.la: $(SRCS:%.cc=%.gmp.lo)
++ libtool --mode=link --tag=CXX c++ -g -O3 \
++ -rpath $(PREFIX)/lib -o $@ $^ -L$(GMP_PREFIX)/lib -lgmp
++
++bliss: bliss.lo libbliss.la
++ libtool --mode=link --tag=CXX c++ -g -O3 -o $@ $^
++
++bliss_gmp: bliss.gmp.lo libbliss_gmp.la
++ libtool --mode=link --tag=CXX c++ -g -O3 -o $@ $^
++
++%.lo: %.cc
++ libtool --mode=compile --tag=CXX c++ -g -O3 -o $@ -c $*.cc
++%.gmp.lo: %.cc
++ libtool --mode=compile --tag=CXX c++ -g -O3 -o $@ \
++ -c -DBLISS_USE_GMP $*.cc
++
++install:
++ mkdir -p $(PREFIX)/bin
++ mkdir -p $(PREFIX)/include/bliss
++ mkdir -p $(PREFIX)/lib
++ libtool --mode=install cp bliss $(PREFIX)/bin/bliss
++ libtool --mode=install cp bliss_gmp $(PREFIX)/bin/bliss_gmp
++ libtool --mode=install cp bignum.hh $(PREFIX)/include/bliss/bignum.hh
++ libtool --mode=install cp bliss_C.h $(PREFIX)/include/bliss/bliss_C.h
++ libtool --mode=install cp defs.hh $(PREFIX)/include/bliss/defs.hh
++ libtool --mode=install cp graph.hh $(PREFIX)/include/bliss/graph.hh
++ libtool --mode=install cp heap.hh $(PREFIX)/include/bliss/heap.hh
++ libtool --mode=install cp kqueue.hh $(PREFIX)/include/bliss/kqueue.hh
++ libtool --mode=install cp kstack.hh $(PREFIX)/include/bliss/kstack.hh
++ libtool --mode=install cp orbit.hh $(PREFIX)/include/bliss/orbit.hh
++ libtool --mode=install cp partition.hh \
++ $(PREFIX)/include/bliss/partition.hh
++ libtool --mode=install cp timer.hh $(PREFIX)/include/bliss/timer.hh
++ libtool --mode=install cp uintseqhash.hh \
++ $(PREFIX)/include/bliss/uintseqhash.hh
++ libtool --mode=install cp utils.hh $(PREFIX)/include/bliss/utils.hh
++ libtool --mode=install cp libbliss.la $(PREFIX)/lib/libbliss.la
++ libtool --mode=install cp libbliss_gmp.la $(PREFIX)/lib/libbliss_gmp.la
++
++.PHONY: all install
diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py
new file mode 100644
index 0000000000..a81a806807
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bliss/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Bliss(Package):
+ """bliss: A Tool for Computing Automorphism Groups and Canonical
+ Labelings of Graphs"""
+
+ homepage = "http://www.tcs.hut.fi/Software/bliss/"
+ url = "http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip"
+
+ version('0.73', '72f2e310786923b5c398ba0fc40b42ce')
+
+ # Note: Bliss can also be built without gmp, but we don't support this yet
+
+ depends_on("gmp")
+ depends_on("libtool", type='build')
+
+ patch("Makefile.spack.patch")
+
+ def install(self, spec, prefix):
+ # The Makefile isn't portable; use our own instead
+ makeargs = ["-f", "Makefile.spack",
+ "PREFIX=%s" % prefix, "GMP_PREFIX=%s" % spec["gmp"].prefix]
+ make(*makeargs)
+ make("install", *makeargs)
diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py
index acc6ddcd07..d6fd31d637 100644
--- a/var/spack/repos/builtin/packages/blitz/package.py
+++ b/var/spack/repos/builtin/packages/blitz/package.py
@@ -24,16 +24,16 @@
##############################################################################
from spack import *
-class Blitz(Package):
+
+class Blitz(AutotoolsPackage):
"""N-dimensional arrays for C++"""
homepage = "http://github.com/blitzpp/blitz"
- url = "https://github.com/blitzpp/blitz/tarball/1.0.0"
+ url = "https://github.com/blitzpp/blitz/tarball/1.0.0"
version('1.0.0', '9f040b9827fe22228a892603671a77af')
- # No dependencies
+ build_targets = ['lib']
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
- make()
- make("install")
+ def check(self):
+ make('check-testsuite')
+ make('check-examples')
diff --git a/var/spack/repos/builtin/packages/boost/boost_10125.patch b/var/spack/repos/builtin/packages/boost/boost_10125.patch
new file mode 100644
index 0000000000..71cfaa871e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/boost_10125.patch
@@ -0,0 +1,51 @@
+--- a/boost/thread/pthread/once.hpp
++++ b/boost/thread/pthread/once.hpp
+@@ -42,7 +42,7 @@ namespace boost
+ }
+
+ #ifdef BOOST_THREAD_PROVIDES_ONCE_CXX11
+-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+ template<typename Function, class ...ArgTypes>
+ inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args);
+ #else
+@@ -65,7 +65,7 @@ namespace boost
+ private:
+ volatile thread_detail::uintmax_atomic_t epoch;
+
+-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+ template<typename Function, class ...ArgTypes>
+ friend void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args);
+ #else
+@@ -118,7 +118,7 @@ namespace boost
+ // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html
+
+
+-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+
+
+ template<typename Function, class ...ArgTypes>
+--- a/boost/thread/pthread/once_atomic.hpp
++++ b/boost/thread/pthread/once_atomic.hpp
+@@ -115,7 +115,7 @@ namespace boost
+ #endif
+
+
+-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+
+ template<typename Function, class ...ArgTypes>
+ inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
+--- a/boost/thread/win32/once.hpp
++++ b/boost/thread/win32/once.hpp
+@@ -227,7 +227,7 @@ namespace boost
+ }
+ }
+
+-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#if !defined BOOST_NO_CXX11_VARIADIC_TEMPLATES && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+ //#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR)
+ inline void call_once(once_flag& flag, void (*f)())
+ {
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index b1b9c58b32..738e8a0e35 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -23,11 +23,10 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import spack
import sys
-
import os
-import sys
+from glob import glob
+
class Boost(Package):
"""Boost provides free peer-reviewed portable C++ source
@@ -43,6 +42,9 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
+ version('1.63.0', '1c837ecd990bb022d07e7aab32b09847')
+ version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f')
+ version('1.61.0', '6095876341956f65f9d35939ccea1a9f')
version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe')
version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
@@ -74,23 +76,24 @@ class Boost(Package):
version('1.34.0', 'ed5b9291ffad776f8757a916e1726ad0')
default_install_libs = set(['atomic',
- 'chrono',
- 'date_time',
- 'filesystem',
- 'graph',
- 'iostreams',
- 'locale',
- 'log',
- 'math',
- 'program_options',
- 'random',
- 'regex',
- 'serialization',
- 'signals',
- 'system',
- 'test',
- 'thread',
- 'wave'])
+ 'chrono',
+ 'date_time',
+ 'filesystem',
+ 'graph',
+ 'iostreams',
+ 'locale',
+ 'log',
+ 'math',
+ 'program_options',
+ 'random',
+ 'regex',
+ 'serialization',
+ 'signals',
+ 'system',
+ 'test',
+ 'thread',
+ 'timer',
+ 'wave'])
# mpi/python are not installed by default because they pull in many
# dependencies and/or because there is a great deal of customization
@@ -101,15 +104,24 @@ class Boost(Package):
for lib in all_libs:
variant(lib, default=(lib not in default_noinstall_libs),
- description="Compile with {0} library".format(lib))
-
- variant('debug', default=False, description='Switch to the debug version of Boost')
- variant('shared', default=True, description="Additionally build shared libraries")
- variant('multithreaded', default=True, description="Build multi-threaded versions of libraries")
- variant('singlethreaded', default=True, description="Build single-threaded versions of libraries")
- variant('icu_support', default=False, description="Include ICU support (for regex/locale libraries)")
-
- depends_on('icu', when='+icu_support')
+ description="Compile with {0} library".format(lib))
+
+ variant('debug', default=False,
+ description='Switch to the debug version of Boost')
+ variant('shared', default=True,
+ description="Additionally build shared libraries")
+ variant('multithreaded', default=True,
+ description="Build multi-threaded versions of libraries")
+ variant('singlethreaded', default=False,
+ description="Build single-threaded versions of libraries")
+ variant('icu', default=False,
+ description="Build with Unicode and ICU suport")
+ variant('graph', default=False,
+ description="Build the Boost Graph library")
+ variant('taggedlayout', default=False,
+ description="Augment library names with build options")
+
+ depends_on('icu4c', when='+icu')
depends_on('python', when='+python')
depends_on('mpi', when='+mpi')
depends_on('bzip2', when='+iostreams')
@@ -118,22 +130,29 @@ class Boost(Package):
# Patch fix from https://svn.boost.org/trac/boost/ticket/11856
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
+ # Patch fix from https://svn.boost.org/trac/boost/ticket/10125
+ patch('boost_10125.patch', when='@1.55.0%gcc@5.0:5.9')
+
def url_for_version(self, version):
- """Handle Boost's weird URLs, which write the version two different ways."""
+ """
+ Handle Boost's weird URLs,
+ which write the version two different ways.
+ """
parts = [str(p) for p in Version(version)]
dots = ".".join(parts)
underscores = "_".join(parts)
- return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (
- dots, underscores)
+ return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % (dots, underscores)
def determine_toolset(self, spec):
- if spec.satisfies("=darwin-x86_64"):
+ if spec.satisfies("platform=darwin"):
return 'darwin'
toolsets = {'g++': 'gcc',
'icpc': 'intel',
'clang++': 'clang'}
+ if spec.satisfies('@1.47:'):
+ toolsets['icpc'] += '-linux'
for cc, toolset in toolsets.iteritems():
if cc in self.compiler.cxx_names:
return toolset
@@ -141,6 +160,26 @@ class Boost(Package):
# fallback to gcc if no toolset found
return 'gcc'
+ def bjam_python_line(self, spec):
+ from os.path import dirname, splitext
+ pydir = 'python%s.%s*' % spec['python'].version.version[:2]
+ incs = join_path(spec['python'].prefix.include, pydir, "pyconfig.h")
+ incs = glob(incs)
+ incs = " ".join([dirname(u) for u in incs])
+
+ pylib = 'libpython%s.%s*' % spec['python'].version.version[:2]
+ all_libs = join_path(spec['python'].prefix.lib, pylib)
+ libs = [u for u in all_libs if splitext(u)[1] == dso_suffix]
+ if len(libs) == 0:
+ libs = [u for u in all_libs if splitext(u)[1] == '.a']
+
+ libs = " ".join(libs)
+ return 'using python : %s : %s : %s : %s ;\n' % (
+ spec['python'].version.up_to(2),
+ join_path(spec['python'].prefix.bin, 'python'),
+ incs, libs
+ )
+
def determine_bootstrap_options(self, spec, withLibs, options):
boostToolsetId = self.determine_toolset(spec)
options.append('--with-toolset=%s' % boostToolsetId)
@@ -148,20 +187,25 @@ class Boost(Package):
if '+python' in spec:
options.append('--with-python=%s' %
- join_path(spec['python'].prefix.bin, 'python'))
+ join_path(spec['python'].prefix.bin, 'python'))
with open('user-config.jam', 'w') as f:
- compiler_wrapper = join_path(spack.build_env_path, 'c++')
- f.write("using {0} : : {1} ;\n".format(boostToolsetId,
- compiler_wrapper))
+ # Boost may end up using gcc even though clang+gfortran is set in
+ # compilers.yaml. Make sure this does not happen:
+ if not spec.satisfies('%intel'):
+ # using intel-linux : : spack_cxx in user-config.jam leads to
+ # error: at project-config.jam:12
+ # error: duplicate initialization of intel-linux with the following parameters: # noqa
+ # error: version = <unspecified>
+ # error: previous initialization at ./user-config.jam:1
+ f.write("using {0} : : {1} ;\n".format(boostToolsetId,
+ spack_cxx))
if '+mpi' in spec:
f.write('using mpi : %s ;\n' %
- join_path(spec['mpi'].prefix.bin, 'mpicxx'))
+ join_path(spec['mpi'].prefix.bin, 'mpicxx'))
if '+python' in spec:
- f.write('using python : %s : %s ;\n' %
- (spec['python'].version,
- join_path(spec['python'].prefix.bin, 'python')))
+ f.write(self.bjam_python_line(spec))
def determine_b2_options(self, spec, options):
if '+debug' in spec:
@@ -177,8 +221,7 @@ class Boost(Package):
'-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include,
'-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib,
'-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include,
- '-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib,
- ])
+ '-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib])
linkTypes = ['static']
if '+shared' in spec:
@@ -190,20 +233,47 @@ class Boost(Package):
if '+singlethreaded' in spec:
threadingOpts.append('single')
if not threadingOpts:
- raise RuntimeError("At least one of {singlethreaded, multithreaded} must be enabled")
+ raise RuntimeError("At least one of {singlethreaded, " +
+ "multithreaded} must be enabled")
+
+ if '+taggedlayout' in spec:
+ layout = 'tagged'
+ else:
+ if len(threadingOpts) > 1:
+ raise RuntimeError("Cannot build both single and " +
+ "multi-threaded targets with system layout")
+ layout = 'system'
options.extend([
- 'toolset=%s' % self.determine_toolset(spec),
'link=%s' % ','.join(linkTypes),
- '--layout=tagged'])
+ '--layout=%s' % layout
+ ])
+
+ if not spec.satisfies('%intel'):
+ options.extend([
+ 'toolset=%s' % self.determine_toolset(spec)
+ ])
+
+ # clang is not officially supported for pre-compiled headers
+ # and at least in clang 3.9 still fails to build
+ # http://www.boost.org/build/doc/html/bbv2/reference/precompiled_headers.html
+ # https://svn.boost.org/trac/boost/ticket/12496
+ if spec.satisfies('%clang'):
+ options.extend(['pch=off'])
return threadingOpts
+ def add_buildopt_symlinks(self, prefix):
+ with working_dir(prefix.lib):
+ for lib in os.listdir(os.curdir):
+ prefix, remainder = lib.split('.', 1)
+ symlink(lib, '%s-mt.%s' % (prefix, remainder))
+
def install(self, spec, prefix):
# On Darwin, Boost expects the Darwin libtool. However, one of the
- # dependencies may have pulled in Spack's GNU libtool, and these two are
- # not compatible. We thus create a symlink to Darwin's libtool and add
- # it at the beginning of PATH.
+ # dependencies may have pulled in Spack's GNU libtool, and these two
+ # are not compatible. We thus create a symlink to Darwin's libtool
+ # and add it at the beginning of PATH.
if sys.platform == 'darwin':
newdir = os.path.abspath('darwin-libtool')
mkdirp(newdir)
@@ -216,7 +286,8 @@ class Boost(Package):
withLibs.append(lib)
if not withLibs:
# if no libraries are specified for compilation, then you dont have
- # to configure/build anything, just copy over to the prefix directory.
+ # to configure/build anything, just copy over to the prefix
+ # directory.
src = join_path(self.stage.source_path, 'boost')
mkdirp(join_path(prefix, 'include'))
dst = join_path(prefix, 'include', 'boost')
@@ -234,6 +305,9 @@ class Boost(Package):
withLibs.remove('chrono')
if not spec.satisfies('@1.43.0:'):
withLibs.remove('random')
+ if '+graph' in spec and '+mpi' in spec:
+ withLibs.remove('graph')
+ withLibs.append('graph_parallel')
# to make Boost find the user-config.jam
env['BOOST_BUILD_PATH'] = './'
@@ -253,11 +327,17 @@ class Boost(Package):
threadingOpts = self.determine_b2_options(spec, b2_options)
+ b2('--clean')
+
# In theory it could be done on one call but it fails on
# Boost.MPI if the threading options are not separated.
for threadingOpt in threadingOpts:
b2('install', 'threading=%s' % threadingOpt, *b2_options)
- # The shared libraries are not installed correctly on Darwin; correct this
+ if '+multithreaded' in spec and '~taggedlayout' in spec:
+ self.add_buildopt_symlinks(prefix)
+
+ # The shared libraries are not installed correctly
+ # on Darwin; correct this
if (sys.platform == 'darwin') and ('+shared' in spec):
fix_darwin_install_name(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py
index 6d641da49b..a8a1a34ed4 100644
--- a/var/spack/repos/builtin/packages/bowtie2/package.py
+++ b/var/spack/repos/builtin/packages/bowtie2/package.py
@@ -24,12 +24,15 @@
##############################################################################
from spack import *
from glob import glob
+
+
class Bowtie2(Package):
"""Description"""
homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml"
- version('2.2.5','51fa97a862d248d7ee660efc1147c75f', url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
+ version('2.2.5', '51fa97a862d248d7ee660efc1147c75f',
+ url="http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.5/bowtie2-2.2.5-source.zip")
- patch('bowtie2-2.5.patch',when='@2.2.5', level=0)
+ patch('bowtie2-2.5.patch', when='@2.2.5', level=0)
def install(self, spec, prefix):
make()
@@ -45,4 +48,3 @@ class Bowtie2(Package):
# install('bowtie2-inspect',prefix.bin)
# install('bowtie2-inspect-l',prefix.bin)
# install('bowtie2-inspect-s',prefix.bin)
-
diff --git a/var/spack/repos/builtin/packages/boxlib/package.py b/var/spack/repos/builtin/packages/boxlib/package.py
index ec7db6c08e..8d46014d3b 100644
--- a/var/spack/repos/builtin/packages/boxlib/package.py
+++ b/var/spack/repos/builtin/packages/boxlib/package.py
@@ -24,26 +24,29 @@
##############################################################################
from spack import *
-class Boxlib(Package):
+
+class Boxlib(CMakePackage):
"""BoxLib, a software framework for massively parallel
block-structured adaptive mesh refinement (AMR) codes."""
homepage = "https://ccse.lbl.gov/BoxLib/"
- url = "https://ccse.lbl.gov/pub/Downloads/BoxLib.git";
+ url = "https://github.com/BoxLib-Codes/BoxLib/archive/16.12.2.tar.gz"
- # TODO: figure out how best to version this. No tags in the repo!
- version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
+ version('16.12.2', 'a28d92a5ff3fbbdbbd0a776a59f18526')
depends_on('mpi')
- def install(self, spec, prefix):
- args = std_cmake_args
- args += ['-DCCSE_ENABLE_MPI=1',
- '-DCMAKE_C_COMPILER=%s' % which('mpicc'),
- '-DCMAKE_CXX_COMPILER=%s' % which('mpicxx'),
- '-DCMAKE_Fortran_COMPILER=%s' % which('mpif90')]
+ def cmake_args(self):
+ spec = self.spec
+ options = []
- cmake('.', *args)
- make()
- make("install")
+ options.extend([
+ # '-DBL_SPACEDIM=3',
+ '-DENABLE_POSITION_INDEPENDENT_CODE=ON',
+ '-DENABLE_FBASELIB=ON',
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc
+ ])
+ return options
diff --git a/var/spack/repos/builtin/packages/bpp-core/package.py b/var/spack/repos/builtin/packages/bpp-core/package.py
new file mode 100644
index 0000000000..f716a2ee05
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bpp-core/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BppCore(Package):
+ """Bio++ core library."""
+
+ homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
+ url = "http://biopp.univ-montp2.fr/repos/sources/bpp-core-2.2.0.tar.gz"
+
+ version('2.2.0', '5789ed2ae8687d13664140cd77203477')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bpp-phyl/package.py b/var/spack/repos/builtin/packages/bpp-phyl/package.py
new file mode 100644
index 0000000000..4ff77f1540
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bpp-phyl/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BppPhyl(Package):
+ """Bio++ phylogeny library."""
+
+ homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
+ url = "http://biopp.univ-montp2.fr/repos/sources/bpp-phyl-2.2.0.tar.gz"
+
+ version('2.2.0', '5c40667ec0bf37e0ecaba321be932770')
+
+ depends_on('cmake', type='build')
+ depends_on('bpp-core')
+ depends_on('bpp-seq')
+
+ def install(self, spec, prefix):
+ cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bpp-seq/package.py b/var/spack/repos/builtin/packages/bpp-seq/package.py
new file mode 100644
index 0000000000..15c99da2b1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bpp-seq/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BppSeq(Package):
+ """Bio++ seq library."""
+
+ homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
+ url = "http://biopp.univ-montp2.fr/repos/sources/bpp-seq-2.2.0.tar.gz"
+
+ version('2.2.0', '44adef0ff4d5ca4e69ccf258c9270633')
+
+ depends_on('cmake', type='build')
+ depends_on('bpp-core')
+
+ def install(self, spec, prefix):
+ cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py
new file mode 100644
index 0000000000..d15030622e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bpp-suite/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class BppSuite(Package):
+ """BppSuite is a suite of ready-to-use programs for phylogenetic and
+ sequence analysis."""
+
+ homepage = "http://biopp.univ-montp2.fr/wiki/index.php/BppSuite"
+ url = "http://biopp.univ-montp2.fr/repos/sources/bppsuite/bppsuite-2.2.0.tar.gz"
+
+ version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4')
+
+ depends_on('cmake', type='build')
+ depends_on('texinfo', type='build')
+ depends_on('bpp-core')
+ depends_on('bpp-seq')
+ depends_on('bpp-phyl')
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py
new file mode 100644
index 0000000000..bb6763629b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bwa/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bwa(Package):
+ """Burrow-Wheeler Aligner for pairwise alignment between DNA sequences."""
+
+ homepage = "http://github.com/lh3/bwa"
+ url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2"
+
+ version('0.7.15', 'fcf470a46a1dbe2f96a1c5b87c530554')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ filter_file(r'^INCLUDES=',
+ "INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile')
+ filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib,
+ 'Makefile')
+ make()
+
+ mkdirp(prefix.bin)
+ install('bwa', join_path(prefix.bin, 'bwa'))
+ set_executable(join_path(prefix.bin, 'bwa'))
+ mkdirp(prefix.doc)
+ install('README.md', prefix.doc)
+ install('NEWS.md', prefix.doc)
+ mkdirp(prefix.man1)
+ install('bwa.1', prefix.man1)
diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py
index 3b6d1d830e..9e5894a6a8 100644
--- a/var/spack/repos/builtin/packages/bzip2/package.py
+++ b/var/spack/repos/builtin/packages/bzip2/package.py
@@ -24,54 +24,69 @@
##############################################################################
from spack import *
+
class Bzip2(Package):
"""bzip2 is a freely available, patent free high-quality data
- compressor. It typically compresses files to within 10% to 15%
- of the best available techniques (the PPM family of statistical
- compressors), whilst being around twice as fast at compression
- and six times faster at decompression.
+ compressor. It typically compresses files to within 10% to 15%
+ of the best available techniques (the PPM family of statistical
+ compressors), whilst being around twice as fast at compression
+ and six times faster at decompression."""
- """
homepage = "http://www.bzip.org"
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
-
def patch(self):
- mf = FileFilter('Makefile-libbz2_so')
- mf.filter(r'^CC=gcc', 'CC=cc')
+ # bzip2 comes with two separate Makefiles for static and dynamic builds
+ # Tell both to use Spack's compiler wrapper instead of GCC
+ filter_file(r'^CC=gcc', 'CC=cc', 'Makefile')
+ filter_file(r'^CC=gcc', 'CC=cc', 'Makefile-libbz2_so')
- # Below stuff patches the link line to use RPATHs on Mac OS X.
+ # Patch the link line to use RPATHs on macOS
if 'darwin' in self.spec.architecture:
v = self.spec.version
- v1, v2, v3 = (v.up_to(i) for i in (1,2,3))
+ v1, v2, v3 = (v.up_to(i) for i in (1, 2, 3))
- mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)'.format(v2, v3),
- '$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)'.format(v1, v2, v3, v3), string=True)
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
- mf.filter('$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3),
- '$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'.format(v3), string=True)
- mf.filter('rm -f libbz2.so.{0}'.format(v2),
- 'rm -f libbz2.{0}.dylib'.format(v2), string=True)
- mf.filter('ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
- 'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2), string=True)
+ mf = FileFilter('Makefile-libbz2_so')
+ mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)' # noqa
+ .format(v2, v3),
+ '$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)' # noqa
+ .format(v1, v2, v3, v3),
+ **kwargs)
+ mf.filter(
+ '$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3), # noqa
+ '$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'
+ .format(v3), **kwargs)
+ mf.filter(
+ 'rm -f libbz2.so.{0}'.format(v2),
+ 'rm -f libbz2.{0}.dylib'.format(v2), **kwargs)
+ mf.filter(
+ 'ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
+ 'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2),
+ **kwargs)
def install(self, spec, prefix):
+ # Build the dynamic library first
make('-f', 'Makefile-libbz2_so')
- make('clean')
- make("install", "PREFIX=%s" % prefix)
+ # Build the static library and everything else
+ make()
+ make('install', 'PREFIX={0}'.format(prefix))
install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
- v1, v2, v3 = (self.spec.version.up_to(i) for i in (1,2,3))
+ v1, v2, v3 = (self.spec.version.up_to(i) for i in (1, 2, 3))
if 'darwin' in self.spec.architecture:
lib = 'libbz2.dylib'
- lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v) for v in (v1, v2, v3))
+ lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v)
+ for v in (v1, v2, v3))
else:
lib = 'libbz2.so'
- lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v) for v in (v1, v2, v3))
+ lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v)
+ for v in (v1, v2, v3))
install(lib3, join_path(prefix.lib, lib3))
with working_dir(prefix.lib):
diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py
new file mode 100644
index 0000000000..4ebf3811a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/c-blosc/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import sys
+
+from spack import *
+
+
+class CBlosc(Package):
+ """Blosc, an extremely fast, multi-threaded, meta-compressor library"""
+ homepage = "http://www.blosc.org"
+ url = "https://github.com/Blosc/c-blosc/archive/v1.9.2.tar.gz"
+
+ version('1.9.2', 'dd2d83069d74b36b8093f1c6b49defc5')
+ version('1.9.1', '7d708d3daadfacf984a87b71b1734ce2')
+ version('1.9.0', 'e4c1dc8e2c468e5cfa2bf05eeee5357a')
+ version('1.8.1', 'd73d5be01359cf271e9386c90dcf5b05')
+ version('1.8.0', '5b92ecb287695ba20cc33d30bf221c4f')
+
+ depends_on("cmake", type='build')
+ depends_on("snappy")
+ depends_on("zlib")
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+
+ make()
+ make("install")
+ if sys.platform == 'darwin':
+ fix_darwin_install_name(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 5c7c2fae22..9df93ccddb 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -24,21 +24,30 @@
##############################################################################
from spack import *
-class Cairo(Package):
- """Cairo is a 2D graphics library with support for multiple output devices."""
+
+class Cairo(AutotoolsPackage):
+ """Cairo is a 2D graphics library with support for multiple output
+ devices."""
homepage = "http://cairographics.org"
- url = "http://cairographics.org/releases/cairo-1.14.0.tar.xz"
+ url = "http://cairographics.org/releases/cairo-1.14.8.tar.xz"
+
+ version('1.14.8', 'c6f7b99986f93c9df78653c3e6a3b5043f65145e')
+ version('1.14.0', '53cf589b983412ea7f78feee2e1ba9cea6e3ebae')
- version('1.14.0', 'fc3a5edeba703f906f2241b394f0cced')
+ variant('X', default=False, description="Build with X11 support")
+ depends_on('libx11', when='+X')
+ depends_on('libxext', when='+X')
+ depends_on('libxrender', when='+X')
+ depends_on('libxcb', when='+X')
depends_on("libpng")
depends_on("glib")
depends_on("pixman")
- depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig.
+ depends_on("freetype")
+ depends_on("pkg-config", type="build")
+ depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig.
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--disable-trace", # can cause problems with libiberty
- "--enable-tee")
- make()
- make("install")
+ def configure_args(self):
+ args = ["--disable-trace", # can cause problems with libiberty
+ "--enable-tee"]
+ return args
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index 4b8fe0d8af..c9d4a41bc2 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -24,9 +24,9 @@
##############################################################################
from spack import *
+
class Caliper(Package):
- """
- Caliper is a generic context annotation system. It gives programmers the
+ """Caliper is a generic context annotation system. It gives programmers the
ability to provide arbitrary program context information to (performance)
tools at runtime.
"""
@@ -34,16 +34,17 @@ class Caliper(Package):
homepage = "https://github.com/LLNL/Caliper"
url = ""
- version('master', git='ssh://git@github.com:LLNL/Caliper.git')
+ version('master', git='https://github.com/LLNL/Caliper.git')
- variant('mpi', default=False, description='Enable MPI function wrappers.')
+ variant('mpi', default=True, description='Enable MPI function wrappers.')
depends_on('libunwind')
depends_on('papi')
depends_on('mpi', when='+mpi')
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
- with working_dir('build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make("install")
+ with working_dir('build', create=True):
+ cmake('..', *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/callpath/package.py b/var/spack/repos/builtin/packages/callpath/package.py
index 2ad2dc60e4..f8227fa49e 100644
--- a/var/spack/repos/builtin/packages/callpath/package.py
+++ b/var/spack/repos/builtin/packages/callpath/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Callpath(Package):
"""Library for representing callpaths consistently in
distributed-memory performance tools."""
@@ -39,6 +40,7 @@ class Callpath(Package):
depends_on("dyninst")
depends_on("adept-utils")
depends_on("mpi")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
# TODO: offer options for the walker used.
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
new file mode 100644
index 0000000000..5cd9fcdd17
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -0,0 +1,202 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Cantera(Package):
+ """Cantera is a suite of object-oriented software tools for problems
+ involving chemical kinetics, thermodynamics, and/or transport processes."""
+
+ homepage = "http://www.cantera.org/docs/sphinx/html/index.html"
+ url = "https://github.com/Cantera/cantera/archive/v2.2.1.tar.gz"
+
+ version('2.2.1', '9d1919bdef39ddec54485fc8a741a3aa')
+
+ variant('lapack', default=True,
+ description='Build with external BLAS/LAPACK libraries')
+ variant('threadsafe', default=True,
+ description='Build threadsafe, requires Boost')
+ variant('sundials', default=True,
+ description='Build with external Sundials')
+ variant('python', default=False,
+ description='Build the Cantera Python module')
+ variant('matlab', default=False,
+ description='Build the Cantera Matlab toolbox')
+
+ # Required dependencies
+ depends_on('scons', type='build')
+
+ # Recommended dependencies
+ depends_on('blas', when='+lapack')
+ depends_on('lapack', when='+lapack')
+ depends_on('boost', when='+threadsafe')
+ depends_on('sundials', when='+sundials') # must be compiled with -fPIC
+
+ # Python module dependencies
+ extends('python', when='+python')
+ depends_on('py-numpy', when='+python', type=('build', 'run'))
+ depends_on('py-scipy', when='+python', type=('build', 'run'))
+ depends_on('py-cython', when='+python', type=('build', 'run'))
+ depends_on('py-3to2', when='+python', type=('build', 'run'))
+ # TODO: these "when" specs don't actually work
+ # depends_on('py-unittest2', when='+python^python@2.6')
+ # depends_on('py-unittest2py3k', when='+python^python@3.1')
+
+ # Matlab toolbox dependencies
+ # TODO: add Matlab package
+ # TODO: allow packages to extend multiple other packages
+ # extends('matlab', when='+matlab')
+
+ def install(self, spec, prefix):
+ # Required options
+ options = [
+ 'prefix={0}'.format(prefix),
+ 'CC={0}'.format(os.environ['CC']),
+ 'CXX={0}'.format(os.environ['CXX']),
+ 'F77={0}'.format(os.environ['F77']),
+ 'FORTRAN={0}'.format(os.environ['FC']),
+ 'cc_flags=-fPIC',
+ # Allow Spack environment variables to propagate through to SCons
+ 'env_vars=all'
+ ]
+
+ # BLAS/LAPACK support
+ if '+lapack' in spec:
+ lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options.extend([
+ 'blas_lapack_libs={0}'.format(','.join(lapack_blas.names)),
+ 'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib)
+ ])
+
+ # Threadsafe build, requires Boost
+ if '+threadsafe' in spec:
+ options.extend([
+ 'build_thread_safe=yes',
+ 'boost_inc_dir={0}'.format(spec['boost'].prefix.include),
+ 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib)
+ ])
+ else:
+ options.append('build_thread_safe=no')
+
+ # Sundials support
+ if '+sundials' in spec:
+ options.extend([
+ 'use_sundials=y',
+ 'sundials_include={0}'.format(spec['sundials'].prefix.include),
+ 'sundials_libdir={0}'.format(spec['sundials'].prefix.lib),
+ 'sundials_license={0}'.format(
+ join_path(spec['sundials'].prefix, 'LICENSE'))
+ ])
+ else:
+ options.append('use_sundials=n')
+
+ # Python module
+ if '+python' in spec:
+ options.extend([
+ 'python_package=full',
+ 'python_cmd={0}'.format(
+ join_path(spec['python'].prefix.bin, 'python')),
+ 'python_array_home={0}'.format(spec['py-numpy'].prefix)
+ ])
+ if spec['python'].satisfies('@3'):
+ options.extend([
+ 'python3_package=y',
+ 'python3_cmd={0}'.format(
+ join_path(spec['python'].prefix.bin, 'python')),
+ 'python3_array_home={0}'.format(spec['py-numpy'].prefix)
+ ])
+ else:
+ options.append('python3_package=n')
+ else:
+ options.append('python_package=none')
+ options.append('python3_package=n')
+
+ # Matlab toolbox
+ if '+matlab' in spec:
+ options.extend([
+ 'matlab_toolbox=y',
+ 'matlab_path={0}'.format(spec['matlab'].prefix)
+ ])
+ else:
+ options.append('matlab_toolbox=n')
+
+ scons('build', *options)
+
+ if '+python' in spec:
+ # Tests will always fail if Python dependencies aren't built
+ # In addition, 3 of the tests fail when run in parallel
+ scons('test', parallel=False)
+
+ scons('install')
+
+ self.filter_compilers()
+
+ def filter_compilers(self):
+ """Run after install to tell the Makefile and SConstruct files to use
+ the compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set to Spack's
+ generic cc, c++, f77, and f90. We want them to be bound to whatever
+ compiler they were built with."""
+
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+ dirname = os.path.join(self.prefix, 'share/cantera/samples')
+
+ cc_files = [
+ 'cxx/rankine/Makefile', 'cxx/NASA_coeffs/Makefile',
+ 'cxx/kinetics1/Makefile', 'cxx/flamespeed/Makefile',
+ 'cxx/combustor/Makefile', 'f77/SConstruct'
+ ]
+
+ cxx_files = [
+ 'cxx/rankine/Makefile', 'cxx/NASA_coeffs/Makefile',
+ 'cxx/kinetics1/Makefile', 'cxx/flamespeed/Makefile',
+ 'cxx/combustor/Makefile'
+ ]
+
+ f77_files = [
+ 'f77/Makefile', 'f77/SConstruct'
+ ]
+
+ fc_files = [
+ 'f90/Makefile', 'f90/SConstruct'
+ ]
+
+ for filename in cc_files:
+ filter_file(os.environ['CC'], self.compiler.cc,
+ os.path.join(dirname, filename), **kwargs)
+
+ for filename in cxx_files:
+ filter_file(os.environ['CXX'], self.compiler.cxx,
+ os.path.join(dirname, filename), **kwargs)
+
+ for filename in f77_files:
+ filter_file(os.environ['F77'], self.compiler.f77,
+ os.path.join(dirname, filename), **kwargs)
+
+ for filename in fc_files:
+ filter_file(os.environ['FC'], self.compiler.fc,
+ os.path.join(dirname, filename), **kwargs)
diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py
new file mode 100644
index 0000000000..b48365b61d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cask/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+#
+# Based on Homebrew's formula:
+# https://github.com/Homebrew/homebrew-core/blob/master/Formula/cask.rb
+#
+from spack import *
+from glob import glob
+
+
+class Cask(Package):
+ """Cask is a project management tool for Emacs Lisp to automate the package
+ development cycle; development, dependencies, testing, building,
+ packaging and more."""
+ homepage = "http://cask.readthedocs.io/en/latest/"
+ url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz"
+
+ version('0.8.1', '25196468a7ce634cfff14733678be6ba')
+ # version 0.8.0 is broken
+ version('0.7.4', 'c973a7db43bc980dd83759a5864a1260')
+
+ depends_on('emacs', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('bin/cask', prefix.bin)
+ install_tree('templates', join_path(prefix, 'templates'))
+ for el_file in glob("*.el"):
+ install(el_file, prefix)
+ for misc_file in ['COPYING', 'cask.png', 'README.md']:
+ install(misc_file, prefix)
+ # disable cask's automatic upgrading feature
+ touch(join_path(prefix, ".no-upgrade"))
diff --git a/var/spack/repos/builtin/packages/catch/package.py b/var/spack/repos/builtin/packages/catch/package.py
new file mode 100644
index 0000000000..8d2b0a1b24
--- /dev/null
+++ b/var/spack/repos/builtin/packages/catch/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Catch(Package):
+ """Catch tests"""
+
+ homepage = "https://github.com/philsquared/Catch"
+ url = "https://github.com/philsquared/Catch/archive/v1.3.0.tar.gz"
+
+ version('1.3.0', 'e13694aaff72817d02af8ed27d077cd261b6e857')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.include)
+ 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/cblas/package.py b/var/spack/repos/builtin/packages/cblas/package.py
index 0b85c5842a..0828141307 100644
--- a/var/spack/repos/builtin/packages/cblas/package.py
+++ b/var/spack/repos/builtin/packages/cblas/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class Cblas(Package):
"""The BLAS (Basic Linear Algebra Subprograms) are routines that
@@ -42,11 +42,11 @@ class Cblas(Package):
def patch(self):
mf = FileFilter('Makefile.in')
- mf.filter('^BLLIB =.*', 'BLLIB = %s/libblas.a' % self.spec['blas'].prefix.lib)
+ mf.filter('^BLLIB =.*', 'BLLIB = %s/libblas.a' %
+ self.spec['blas'].prefix.lib)
mf.filter('^CC =.*', 'CC = cc')
mf.filter('^FC =.*', 'FC = f90')
-
def install(self, spec, prefix):
make('all')
mkdirp(prefix.lib)
@@ -54,6 +54,5 @@ class Cblas(Package):
# Rename the generated lib file to libcblas.a
install('./lib/cblas_LINUX.a', '%s/libcblas.a' % prefix.lib)
- install('./include/cblas.h','%s' % prefix.include)
- install('./include/cblas_f77.h','%s' % prefix.include)
-
+ install('./include/cblas.h', '%s' % prefix.include)
+ install('./include/cblas_f77.h', '%s' % prefix.include)
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index 7ce90ce0db..3d8572232c 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-################################################################################
+##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
@@ -38,39 +38,44 @@
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
-################################################################################
+##########################################################################
from spack import *
+
class CbtfArgonavis(Package):
- """CBTF Argo Navis project contains the CUDA collector and supporting
- libraries that was done as a result of a DOE SBIR grant."""
+ """CBTF Argo Navis project contains the CUDA collector and supporting
+ libraries that was done as a result of a DOE SBIR grant.
+
+ """
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# Mirror access template example
- #url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
- #version('1.6', '0fafa0008478405c2c2319450f174ed4')
+ # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
+ # version('1.6', '0fafa0008478405c2c2319450f174ed4')
- version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
+ version('1.8', branch='master',
+ git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
- depends_on("cmake@3.0.2")
- depends_on("boost@1.50.0:")
+ depends_on("cmake@3.0.2:", type='build')
+ depends_on("boost@1.50.0:1.59.0")
depends_on("papi")
- depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
+ depends_on("mrnet@5.0.1:+lwthreads")
depends_on("cbtf")
depends_on("cbtf-krell")
- depends_on("cuda@6.0.37")
- #depends_on("cuda")
+ depends_on("cuda")
parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+ # Sets build type parameters into cmakeOptions the options that will
+ # enable the cbtf-krell built type settings
- compile_flags="-O2 -g"
+ compile_flags = "-O2 -g"
BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
+ # stdcmakeargs
for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word)
@@ -81,50 +86,54 @@ class CbtfArgonavis(Package):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word)
BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
])
cmakeOptions.extend(BuildTypeOptions)
-
def install(self, spec, prefix):
- # Look for package installation information in the cbtf and cbtf-krell prefixes
- cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
-
- with working_dir('CUDA'):
- with working_dir('build', create=True):
-
- cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DCUDA_DIR=%s' % spec['cuda'].prefix,
- '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
- '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
- '-DCUPTI_DIR=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
- '-DCUPTI_ROOT=%s' % join_path(spec['cuda'].prefix + '/extras/CUPTI'),
- '-DPAPI_ROOT=%s' % spec['papi'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DBoost_DIR=%s' % spec['boost'].prefix,
- '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DBoost_NO_SYSTEM_PATHS=ON'
- ])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
+ # Look for package installation information in the cbtf and cbtf-krell
+ # prefixes
+ cmake_prefix_path = join_path(
+ spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
+
+ with working_dir('CUDA'):
+ with working_dir('build', create=True):
+
+ cmakeOptions = []
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+ '-DCUDA_DIR=%s' % spec['cuda'].prefix,
+ '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
+ '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
+ '-DCUPTI_DIR=%s' % join_path(
+ spec['cuda'].prefix + '/extras/CUPTI'),
+ '-DCUPTI_ROOT=%s' % join_path(
+ spec['cuda'].prefix + '/extras/CUPTI'),
+ '-DPAPI_ROOT=%s' % spec['papi'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DBoost_DIR=%s' % spec['boost'].prefix,
+ '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DBoost_NO_SYSTEM_PATHS=ON'])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build
+ # type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index 7506f78146..3f36942e9a 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-################################################################################
+##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
@@ -38,41 +38,51 @@
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
-################################################################################
+##########################################################################
from spack import *
+
class CbtfKrell(Package):
- """CBTF Krell project contains the Krell Institute contributions to the CBTF project.
- These contributions include many performance data collectors and support
- libraries as well as some example tools that drive the data collection at
- HPC levels of scale."""
+ """CBTF Krell project contains the Krell Institute contributions to the
+ CBTF project. These contributions include many performance data
+ collectors and support libraries as well as some example tools
+ that drive the data collection at HPC levels of scale.
+
+ """
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
# optional mirror access template
- #url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
- #version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
+ # url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
+ # version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
- version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-krell.git')
+ version('1.8', branch='master',
+ git='https://github.com/OpenSpeedShop/cbtf-krell.git')
# MPI variants
- variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.")
- variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.")
- variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.")
- variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.")
- variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.")
- variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.")
+ variant('openmpi', default=False,
+ description="Build mpi experiment collector for openmpi MPI..")
+ variant('mpt', default=False,
+ description="Build mpi experiment collector for SGI MPT MPI.")
+ variant('mvapich2', default=False,
+ description="Build mpi experiment collector for mvapich2 MPI.")
+ variant('mvapich', default=False,
+ description="Build mpi experiment collector for mvapich MPI.")
+ variant('mpich2', default=False,
+ description="Build mpi experiment collector for mpich2 MPI.")
+ variant('mpich', default=False,
+ description="Build mpi experiment collector for mpich MPI.")
# Dependencies for cbtf-krell
- depends_on("cmake@3.0.2")
+ depends_on("cmake@3.0.2:", type='build')
# For binutils service
depends_on("binutils@2.24+krellpatch")
# collectionTool
- depends_on("boost@1.50.0:")
- depends_on("dyninst@8.2.1:")
- depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
+ depends_on("boost@1.50.0:1.59.0")
+ depends_on("dyninst@9.2.0")
+ depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
@@ -83,7 +93,8 @@ class CbtfKrell(Package):
depends_on("papi")
# MPI Installations
- # These have not worked either for build or execution, commenting out for now
+ # These have not worked either for build or execution, commenting out for
+ # now
depends_on("openmpi", when='+openmpi')
depends_on("mpich", when='+mpich')
depends_on("mpich2", when='+mpich2')
@@ -94,11 +105,13 @@ class CbtfKrell(Package):
parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
-
- compile_flags="-O2 -g"
+ # Sets build type parameters into cmakeOptions the options that will
+ # enable the cbtf-krell built type settings
+
+ compile_flags = "-O2 -g"
BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
+ # stdcmakeargs
for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word)
@@ -109,75 +122,64 @@ class CbtfKrell(Package):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word)
BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
])
cmakeOptions.extend(BuildTypeOptions)
-
-
def set_mpi_cmakeOptions(self, spec, cmakeOptions):
- # Appends to cmakeOptions the options that will enable the appropriate MPI implementations
-
+ # Appends to cmakeOptions the options that will enable the appropriate
+ # MPI implementations
+
MPIOptions = []
# openmpi
if '+openmpi' in spec:
- MPIOptions.extend([
- '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
- ])
+ MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix)
# mpich
if '+mpich' in spec:
- MPIOptions.extend([
- '-DMPICH_DIR=%s' % spec['mpich'].prefix
- ])
+ MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix)
# mpich2
if '+mpich2' in spec:
- MPIOptions.extend([
- '-DMPICH2_DIR=%s' % spec['mpich2'].prefix
- ])
+ MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix)
# mvapich
if '+mvapich' in spec:
- MPIOptions.extend([
- '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
- ])
+ MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix)
# mvapich2
if '+mvapich2' in spec:
- MPIOptions.extend([
- '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
- ])
+ MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix)
# mpt
if '+mpt' in spec:
- MPIOptions.extend([
- '-DMPT_DIR=%s' % spec['mpt'].prefix
- ])
+ MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix)
cmakeOptions.extend(MPIOptions)
def install(self, spec, prefix):
- # Add in paths for finding package config files that tell us where to find these packages
- #cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['dyninst'].prefix)
- #'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
+ # Add in paths for finding package config files that tell us
+ # where to find these packages
+ # cmake_prefix_path = \
+ # join_path(spec['cbtf'].prefix) + ':' + \
+ # join_path(spec['dyninst'].prefix)
+ # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
- # Build cbtf-krell with cmake
+ # Build cbtf-krell with cmake
with working_dir('build_cbtf_krell', create=True):
cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s' % spec['papi'].prefix,
- '-DBOOST_DIR=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix
- ])
-
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s' % spec['papi'].prefix,
+ '-DBOOST_DIR=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
@@ -185,9 +187,10 @@ class CbtfKrell(Package):
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
- # Adjust the standard cmake arguments to what we want the build type, etc to be
+ # Adjust the standard cmake arguments to what we want the build
+ # type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
+
# Invoke cmake
cmake('..', *cmakeOptions)
@@ -195,56 +198,54 @@ class CbtfKrell(Package):
make()
make("install")
-
-
- #if '+cray' in spec:
- #if 'cray' in self.spec.architecture:
+ # if '+cray' in spec:
+ # if 'cray' in self.spec.architecture:
# if '+runtime' in spec:
# with working_dir('build_cbtf_cray_runtime', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
- # -DCMAKE_BUILD_TYPE=Debug \
- # -DTARGET_OS="cray" \
- # -DRUNTIME_ONLY="true" \
- # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
- # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
- # -DCBTF_DIR=${CBTF_ROOT} \
- # -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
- # -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
- # -DBINUTILS_DIR=${KRELL_ROOT} \
- # -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
- # -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
- # -DPAPI_DIR=${PAPI_ROOT} \
- # -DDYNINST_DIR=${DYNINST_CN_ROOT} \
- # -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
- # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
+ # -DCMAKE_BUILD_TYPE=Debug \
+ # -DTARGET_OS="cray" \
+ # -DRUNTIME_ONLY="true" \
+ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
+ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
+ # -DCBTF_DIR=${CBTF_ROOT} \
+ # -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
+ # -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
+ # -DBINUTILS_DIR=${KRELL_ROOT} \
+ # -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
+ # -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
+ # -DPAPI_DIR=${PAPI_ROOT} \
+ # -DDYNINST_DIR=${DYNINST_CN_ROOT} \
+ # -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
+ # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# else:
# with working_dir('build_cbtf_cray_frontend', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
- # -DCMAKE_BUILD_TYPE=Debug \
- # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
- # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
- # -DCBTF_DIR=${CBTF_ROOT} \
- # -DRUNTIME_TARGET_OS="cray" \
- # -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
- # -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
- # -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
- # -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
- # -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
- # -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
- # -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
- # -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
- # -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
- # -DBOOST_ROOT=/${KRELL_ROOT} \
- # -DXERCESC_DIR=/${KRELL_ROOT} \
- # -DBINUTILS_DIR=/${KRELL_ROOT} \
- # -DLIBMONITOR_DIR=${KRELL_ROOT} \
- # -DLIBUNWIND_DIR=${KRELL_ROOT} \
- # -DPAPI_DIR=${PAPI_ROOT} \
- # -DDYNINST_DIR=${KRELL_ROOT} \
- # -DMRNET_DIR=${KRELL_ROOT} \
- # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
+ # -DCMAKE_BUILD_TYPE=Debug \
+ # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
+ # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
+ # -DCBTF_DIR=${CBTF_ROOT} \
+ # -DRUNTIME_TARGET_OS="cray" \
+ # -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
+ # -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
+ # -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
+ # -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
+ # -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
+ # -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
+ # -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
+ # -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
+ # -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
+ # -DBOOST_ROOT=/${KRELL_ROOT} \
+ # -DXERCESC_DIR=/${KRELL_ROOT} \
+ # -DBINUTILS_DIR=/${KRELL_ROOT} \
+ # -DLIBMONITOR_DIR=${KRELL_ROOT} \
+ # -DLIBUNWIND_DIR=${KRELL_ROOT} \
+ # -DPAPI_DIR=${PAPI_ROOT} \
+ # -DDYNINST_DIR=${KRELL_ROOT} \
+ # -DMRNET_DIR=${KRELL_ROOT} \
+ # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# fi
#
# make("clean")
@@ -264,22 +265,22 @@ class CbtfKrell(Package):
# fi
#
# else:
-# # Build cbtf-krell with cmake
+# # Build cbtf-krell with cmake
# with working_dir('build_cbtf_krell', create=True):
# cmake('..',
# '-DCMAKE_BUILD_TYPE=Debug',
-# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
-# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
-# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
-# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
-# '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
-# '-DPAPI_DIR=%s' % spec['papi'].prefix,
-# '-DBOOST_DIR=%s' % spec['boost'].prefix,
-# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
-# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
-# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
-# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
-# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
+# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+# '-DLIBUNWIND_DIR=%s'% spec['libunwind'].prefix,
+# '-DPAPI_DIR=%s' % spec['papi'].prefix,
+# '-DBOOST_DIR=%s' % spec['boost'].prefix,
+# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
+# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
+# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
# *std_cmake_args)
#
# make("clean")
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index fa7de3d4a3..1545c7bf8b 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-################################################################################
+##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
@@ -38,24 +38,26 @@
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
-################################################################################
+##########################################################################
from spack import *
+
class CbtfLanl(Package):
- """CBTF LANL project contains a memory tool and data center type system command monitoring tool."""
+ """CBTF LANL project contains a memory tool and data center type system
+ command monitoring tool."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
-
# Mirror access template example
- #url = "file:/g/g24/jeg/cbtf-lanl-1.5.tar.gz"
- #version('1.5', 'c3f78f967b0a42c6734ce4be0e602426')
+ # url = "file:/g/g24/jeg/cbtf-lanl-1.6.tar.gz"
+ # version('1.6', 'c3f78f967b0a42c6734ce4be0e602426')
- version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
+ version('1.8', branch='master',
+ git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
- depends_on("cmake@3.0.2")
+ depends_on("cmake@3.0.2:", type='build')
# Dependencies for cbtf-krell
- depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
+ depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
depends_on("cbtf")
depends_on("cbtf-krell")
@@ -63,11 +65,13 @@ class CbtfLanl(Package):
parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+ # Sets build type parameters into cmakeOptions the options that will
+ # enable the cbtf-krell built type settings
- compile_flags="-O2 -g"
+ compile_flags = "-O2 -g"
BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
+ # stdcmakeargs
for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word)
@@ -78,40 +82,43 @@ class CbtfLanl(Package):
if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
cmakeOptions.remove(word)
BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
])
cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix):
- # Add in paths for finding package config files that tell us where to find these packages
- cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
-
- with working_dir('build', create=True):
- cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake')
- ])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
-
+ # Add in paths for finding package config files that tell us where to
+ # find these packages
+ cmake_prefix_path = join_path(
+ spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
+
+ with working_dir('build', create=True):
+ cmakeOptions = []
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build
+ # type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index 2231cf1d45..7c9626c90e 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -22,7 +22,7 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-################################################################################
+##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
@@ -38,28 +38,34 @@
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
-################################################################################
+##########################################################################
from spack import *
+
class Cbtf(Package):
- """CBTF project contains the base code for CBTF that supports creating components,
- component networks and the support to connect these components and component
- networks into sequential and distributed network tools."""
+ """CBTF project contains the base code for CBTF that supports creating
+ components, component networks and the support to connect these
+ components and component networks into sequential and distributed
+ network tools.
+
+ """
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
# Mirror access template example
- #url = "file:/home/jeg/cbtf-1.6.tar.gz"
- #version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
+ # url = "file:/home/jeg/cbtf-1.6.tar.gz"
+ # version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
# Use when the git repository is available
- version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf.git')
+ version('1.8', branch='master',
+ git='https://github.com/OpenSpeedShop/cbtf.git')
- variant('runtime', default=False, description="build only the runtime libraries and collectors.")
+ variant('runtime', default=False,
+ description="build only the runtime libraries and collectors.")
- depends_on("cmake@3.0.2")
- depends_on("boost@1.50.0:")
- depends_on("mrnet@5.0.1:+lwthreads+krellpatch")
+ depends_on("cmake@3.0.2:", type='build')
+ depends_on("boost@1.50.0:1.59.0")
+ depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
# Work around for spack libxml2 package bug, take off python when fixed
depends_on("libxml2+python")
@@ -67,11 +73,13 @@ class Cbtf(Package):
parallel = False
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
-
- compile_flags="-O2 -g"
+ # Sets build type parameters into cmakeOptions the options that will
+ # enable the cbtf-krell built type settings
+
+ compile_flags = "-O2 -g"
BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
+ # stdcmakeargs
for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word)
@@ -80,61 +88,66 @@ class Cbtf(Package):
if word.startswith('-DCMAKE_C_FLAGS'):
cmakeOptions.remove(word)
BuildTypeOptions.extend([
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
+ '-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags
])
cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix):
- with working_dir('build', create=True):
-
- # Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
- # in system paths (or other locations outside of BOOST_ROOT
- # or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
- # Defaults to OFF.
-
- if '+runtime' in spec:
- # Install message tag include file for use in Intel MIC cbtf-krell build
- # FIXME
- cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake')
- ])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- else:
- cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DCMAKE_MODULE_PATH=%s' % join_path(prefix.share,'KrellInstitute','cmake')
- ])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
+ with working_dir('build', create=True):
+
+ # Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
+ # in system paths (or other locations outside of BOOST_ROOT
+ # or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
+ # Defaults to OFF.
+
+ if '+runtime' in spec:
+ # Install message tag include file for use in Intel MIC
+ # cbtf-krell build
+ # FIXME
+ cmakeOptions = []
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build
+ # type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ else:
+ cmakeOptions = []
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')])
+
+ # Add in the standard cmake arguments
+ cmakeOptions.extend(std_cmake_args)
+
+ # Adjust the standard cmake arguments to what we want the build
+ # type, etc to be
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ # Invoke cmake
+ cmake('..', *cmakeOptions)
+
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py
new file mode 100644
index 0000000000..69b590629e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ccache/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ccache(AutotoolsPackage):
+ """ccache is a compiler cache. It speeds up recompilation by caching
+ previous compilations and detecting when the same compilation is being done
+ again."""
+
+ homepage = "https://ccache.samba.org/"
+ url = "https://www.samba.org/ftp/ccache/ccache-3.3.3.tar.gz"
+
+ version('3.3.3', 'ea1f95303749b9ac136c617d1b333eef')
+ version('3.3.2', 'b966d56603e1fad2bac22930e5f01830')
+ version('3.3.1', '7102ef024cff09d353b3f4c48379b40b')
+ version('3.3' , 'b7ac8fdd556f93831618483325fbb1ef')
+ version('3.2.9', '8f3f6e15e75a0e6020166927d41bd0b3')
+
+ depends_on('gperf')
+ depends_on('libxslt')
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch b/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch
new file mode 100644
index 0000000000..4c97187a57
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch
@@ -0,0 +1,22 @@
+--- old/Makefile.spack
++++ new/Makefile.spack
+@@ -0,0 +1,19 @@
++# Set PREFIX to the install location for both building and installing
++
++all: cdd dplex_test
++
++cdd: cdd.lo cddio.lo cddarith.lo dplex.lo setoper.lo
++ libtool --mode=link --tag=CC cc -g -O2 -o $@ $^
++
++dplex_test: dplex.lo dplex_test.lo setoper.lo
++ libtool --mode=link --tag=CC cc -g -O2 -o $@ $^
++
++%.lo: %.c
++ libtool --mode=compile --tag=CC cc -g -O2 -c $*.c
++
++install:
++ mkdir -p $(PREFIX)/bin
++ libtool --mode=install cp cdd $(PREFIX)/bin/cdd
++ libtool --mode=install cp dplex_test $(PREFIX)/bin/dplex_test
++
++.PHONY: all install
diff --git a/var/spack/repos/builtin/packages/cdd/package.py b/var/spack/repos/builtin/packages/cdd/package.py
new file mode 100644
index 0000000000..4a0a0aefef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cdd/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Cdd(Package):
+ """The program cdd+ (cdd, respectively) is a C++ (ANSI C)
+ implementation of the Double Description Method [MRTT53] for
+ generating all vertices (i.e. extreme points) and extreme rays of
+ a general convex polyhedron given by a system of linear
+ inequalities"""
+ homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html"
+ url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-061a.tar.gz"
+
+ version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9')
+
+ depends_on("libtool", type="build")
+
+ patch("Makefile.spack.patch")
+
+ def url_for_version(self, version):
+ url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-{0}.tar.gz"
+ return url.format(version.joined)
+
+ def install(self, spec, prefix):
+ # The Makefile isn't portable; use our own instead
+ makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix]
+ make(*makeargs)
+ make("install", *makeargs)
diff --git a/var/spack/repos/builtin/packages/cddlib/package.py b/var/spack/repos/builtin/packages/cddlib/package.py
new file mode 100644
index 0000000000..ced5f46d1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cddlib/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Cddlib(Package):
+ """The C-library cddlib is a C implementation of the Double Description
+ Method of Motzkin et al. for generating all vertices (i.e. extreme points)
+ and extreme rays of a general convex polyhedron in R^d given by a system
+ of linear inequalities"""
+ homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/"
+ # This is the original download url. It is currently down [2016-08-23],
+ # but should be reinstated or updated once the issue is resolved.
+ # url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-094h.tar.gz"
+ url = "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz"
+
+ def url_for_version(self, version):
+ # Since the commit id is part of the version, we can't
+ # auto-generate the string, and we need to explicitly list all
+ # known versions here. Currently, there is only one version.
+ if str(version) == '0.94h':
+ return "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz"
+ raise InstallError("Unsupported version %s" % str(version))
+
+ version('0.94h', '1467d270860bbcb26d3ebae424690e7c')
+
+ # Note: It should be possible to build cddlib also without gmp
+
+ depends_on("gmp")
+ depends_on("libtool", type="build")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py
new file mode 100644
index 0000000000..775dc31cf3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cdo/package.py
@@ -0,0 +1,117 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cdo(Package):
+ """CDO is a collection of command line Operators to manipulate and analyse
+ Climate and NWP model Data. """
+
+ homepage = "https://code.zmaw.de/projects/cdo"
+
+ version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31', url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz')
+ version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2', url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz')
+
+ variant('szip', default=True, description='Enable szip compression for GRIB1')
+ variant('hdf5', default=False, description='Enable HDF5 support')
+ variant('netcdf', default=True, description='Enable NetCDF support')
+ variant('udunits2', default=True, description='Enable UDUNITS2 support')
+ variant('grib', default=True, description='Enable GRIB_API support')
+ variant('libxml2', default=True, description='Enable libxml2 support')
+ variant('proj', default=True, description='Enable PROJ library for cartographic projections')
+ variant('curl', default=True, description='Enable curl support')
+ variant('fftw', default=True, description='Enable support for fftw3')
+ variant('magics', default=True, description='Enable Magics library support')
+
+ depends_on('szip', when='+szip')
+ depends_on('netcdf', when='+netcdf')
+ depends_on('hdf5+threadsafe', when='+hdf5')
+ depends_on('udunits2', when='+udunits2')
+ depends_on('grib-api', when='+grib')
+ depends_on('libxml2', when='+libxml2')
+ depends_on('proj', when='+proj')
+ depends_on('curl', when='+curl')
+ depends_on('fftw', when='+fftw')
+ depends_on('magics', when='+magics')
+
+ def install(self, spec, prefix):
+ config_args = ["--prefix=" + prefix,
+ "--enable-shared",
+ "--enable-static"]
+
+ if '+szip' in spec:
+ config_args.append('--with-szlib=' + spec['szip'].prefix)
+ else:
+ config_args.append('--without-szlib')
+
+ if '+hdf5' in spec:
+ config_args.append('--with-hdf5=' + spec['hdf5'].prefix)
+ else:
+ config_args.append('--without-hdf5')
+
+ if '+netcdf' in spec:
+ config_args.append('--with-netcdf=' + spec['netcdf'].prefix)
+ else:
+ config_args.append('--without-netcdf')
+
+ if '+udunits2' in spec:
+ config_args.append('--with-udunits2=' + spec['udunits2'].prefix)
+ else:
+ config_args.append('--without-udunits2')
+
+ if '+grib' in spec:
+ config_args.append('--with-grib_api=' + spec['grib-api'].prefix)
+ else:
+ config_args.append('--without-grib_api')
+
+ if '+libxml2' in spec:
+ config_args.append('--with-libxml2=' + spec['libxml2'].prefix)
+ else:
+ config_args.append('--without-libxml2')
+
+ if '+proj' in spec:
+ config_args.append('--with-proj=' + spec['proj'].prefix)
+ else:
+ config_args.append('--without-proj')
+
+ if '+curl' in spec:
+ config_args.append('--with-curl=' + spec['curl'].prefix)
+ else:
+ config_args.append('--without-curl')
+
+ if '+fftw' in spec:
+ config_args.append('--with-fftw3')
+ else:
+ config_args.append('--without-fftw3')
+
+ if '+magics' in spec:
+ config_args.append('--with-magics=' + spec['magics'].prefix)
+ else:
+ config_args.append('--without-magics')
+
+ configure(*config_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py
index c53c667efb..0ce6ec593c 100644
--- a/var/spack/repos/builtin/packages/cereal/package.py
+++ b/var/spack/repos/builtin/packages/cereal/package.py
@@ -26,11 +26,21 @@ from spack import *
import os
import shutil
+
class Cereal(Package):
- """cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone."""
+ """cereal is a header-only C++11 serialization library. cereal takes
+ arbitrary data types and reversibly turns them into different
+ representations, such as compact binary encodings, XML, or
+ JSON. cereal was designed to be fast, light-weight, and easy to
+ extend - it has no external dependencies and can be easily bundled
+ with other code or used standalone.
+
+ """
homepage = "http://uscilab.github.io/cereal/"
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
+ version('1.2.1', '64476ed74c19068ee543b53ad3992261')
+ version('1.2.0', 'e372c9814696481dbdb7d500e1410d2b')
version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9')
version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27')
version('1.1.0', '9f2d5f72e935c54f4c6d23e954ce699f')
@@ -39,7 +49,7 @@ class Cereal(Package):
patch("Werror.patch")
- depends_on("cmake @2.6.2:")
+ depends_on('cmake@2.6.2:', type='build')
def install(self, spec, prefix):
# Don't use -Werror
diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py
index ed49ae5808..79af31ae21 100644
--- a/var/spack/repos/builtin/packages/cfitsio/package.py
+++ b/var/spack/repos/builtin/packages/cfitsio/package.py
@@ -24,17 +24,19 @@
##############################################################################
from spack import *
+
class Cfitsio(Package):
- """
- CFITSIO is a library of C and Fortran subroutines for reading and writing
+ """CFITSIO is a library of C and Fortran subroutines for reading and writing
data files in FITS (Flexible Image Transport System) data format.
"""
+
homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/'
+
version('3.370', 'abebd2d02ba5b0503c633581e3bfa116')
- def url_for_version(self, v):
+ def url_for_version(self, version):
url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz'
- return url.format(str(v).replace('.', ''))
+ return url.format(version.joined)
def install(self, spec, prefix):
configure('--prefix=' + prefix)
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index ea1b20e34f..a16572246b 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -22,53 +22,87 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Cgal(Package):
- """
- CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of
- a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems,
- computer aided design, molecular biology, medical imaging, computer graphics, and robotics.
+ """The Computational Geometry Algorithms Library (CGAL) is a C++ library
+ that aims to provide easy access to efficient and reliable algorithms in
+ computational geometry. CGAL is used in various areas needing geometric
+ computation, such as geographic information systems, computer aided design,
+ molecular biology, medical imaging, computer graphics, and robotics.
"""
homepage = 'http://www.cgal.org/'
url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz'
+ version('4.9', '7b628db3e5614347f776c046b7666089')
version('4.7', '4826714810f3b4c65cac96b90fb03b67')
version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d')
- # Installation instructions : http://doc.cgal.org/latest/Manual/installation.html
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds a debug version of the libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
- depends_on('boost')
- depends_on('mpfr')
+ # ---- See "7 CGAL Libraries" at:
+ # http://doc.cgal.org/latest/Manual/installation.html
+
+ # The CORE library provides exact arithmetic for geometric computations.
+ # See: http://cs.nyu.edu/exact/core_pages/
+ # http://cs.nyu.edu/exact/core_pages/svn-core.html
+ variant('core', default=False,
+ description='Build the CORE library for algebraic numbers')
+ variant('imageio', default=False,
+ description='Build utilities to read/write image files')
+ variant('demos', default=False,
+ description='Build CGAL demos')
+
+ # Essential Third Party Libraries
+ depends_on('boost+thread+system')
depends_on('gmp')
+ depends_on('mpfr')
+
+ # Required for CGAL_ImageIO
+ # depends_on('opengl', when='+imageio') # not yet in Spack
depends_on('zlib')
- depends_on('cmake')
- # FIXME : Qt5 dependency missing (needs Qt5 and OpenGL)
- # FIXME : Optional third party libraries missing
+ # Optional to build CGAL_Qt5 (demos)
+ # depends_on('opengl', when='+demos') # not yet in Spack
+ depends_on('qt@5:', when='+demos')
- def install(self, spec, prefix):
+ # Optional Third Party Libraries
+ # depends_on('leda')
+ # depends_on('mpfi')
+ # depends_on('rs')
+ # depends_on('rs3')
+ # depends_on('ntl')
+ # depends_on('eigen')
+ # depends_on('libqglviewer')
+ # depends_on('esbtl')
+ # depends_on('intel-tbb')
- options = []
- options.extend(std_cmake_args)
- # CGAL supports only Release and Debug build type. Any other build type will raise an error at configure time
- if '+debug' in spec:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
- else:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
+ # Build dependencies
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ # Installation instructions:
+ # http://doc.cgal.org/latest/Manual/installation.html
- if '+shared' in spec:
- options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
- else:
- options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
+ options = std_cmake_args + [
+ # CGAL supports only Release and Debug build type. Any
+ # other build type will raise an error at configure time
+ '-DCMAKE_BUILD_TYPE:STRING=%s' %
+ ('Debug' if '+debug' in spec else 'Release'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' %
+ ('ON' if '+shared' in spec else 'OFF'),
+ '-DWITH_CGAL_Core:BOOL=%s' %
+ ('YES' if '+core' in spec else 'NO'),
+ '-DWITH_CGAL_ImageIO:BOOL=%s' %
+ ('YES' if '+imageio' in spec else 'NO'),
+ '-DWITH_CGAL_Qt5:BOOL=%s' %
+ ('YES' if '+demos' in spec else 'NO')]
- build_directory = join_path(self.stage.path, 'spack-build')
- source_directory = self.stage.source_path
- with working_dir(build_directory, create=True):
- cmake(source_directory, *options)
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/cgm/package.py b/var/spack/repos/builtin/packages/cgm/package.py
index c5da72d25a..5a998d471c 100644
--- a/var/spack/repos/builtin/packages/cgm/package.py
+++ b/var/spack/repos/builtin/packages/cgm/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cgm(Package):
"""The Common Geometry Module, Argonne (CGMA) is a code library
which provides geometry functionality used for mesh generation and
@@ -33,7 +34,7 @@ class Cgm(Package):
version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f')
version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028')
- version('13.1' , '95f724bda04919fc76818a5b7bc0b4ed')
+ version('13.1', '95f724bda04919fc76818a5b7bc0b4ed')
depends_on("mpi")
@@ -42,7 +43,6 @@ class Cgm(Package):
'//\1',
'geom/parallel/CGMReadParallel.cpp')
-
def install(self, spec, prefix):
configure("--with-mpi",
"--prefix=%s" % prefix,
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
new file mode 100644
index 0000000000..ba3fd7f821
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cgns(Package):
+ """The CFD General Notation System (CGNS) provides a general, portable,
+ and extensible standard for the storage and retrieval of computational
+ fluid dynamics (CFD) analysis data."""
+
+ homepage = "http://cgns.github.io/"
+ url = "https://github.com/CGNS/CGNS/archive/v3.3.0.tar.gz"
+
+ version('3.3.0', '64e5e8d97144c1462bee9ea6b2a81d7f')
+
+ variant('hdf5', default=True, description='Enable HDF5 interface')
+
+ depends_on('cmake', type='build')
+ depends_on('hdf5', when='+hdf5')
+
+ def install(self, spec, prefix):
+ cmake_args = std_cmake_args[:]
+
+ if self.compiler.f77 and self.compiler.fc:
+ cmake_args.append('-DCGNS_ENABLE_FORTRAN=ON')
+ else:
+ cmake_args.append('-DCGNS_ENABLE_FORTRAN=OFF')
+
+ if '+hdf5' in spec:
+ cmake_args.extend([
+ '-DCGNS_ENABLE_HDF5=ON',
+ '-DHDF5_NEEDS_ZLIB=ON'
+ ])
+
+ if spec.satisfies('^hdf5+mpi'):
+ cmake_args.append('-DHDF5_NEEDS_MPI=ON')
+ else:
+ cmake_args.append('-DHDF5_NEEDS_MPI=OFF')
+
+ if spec.satisfies('^hdf5+szip'):
+ cmake_args.append('-DHDF5_NEEDS_SZIP=ON')
+ else:
+ cmake_args.append('-DHDF5_NEEDS_SZIP=OFF')
+ else:
+ cmake_args.append('-DCGNS_ENABLE_HDF5=OFF')
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/charm/mpi.patch b/var/spack/repos/builtin/packages/charm/mpi.patch
new file mode 100644
index 0000000000..e909d5f876
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charm/mpi.patch
@@ -0,0 +1,19 @@
+--- old/src/scripts/configure
++++ new/src/scripts/configure
+@@ -3293,10 +3293,16 @@
+ test_link "whether -lmpi" "ok" "no" "-lmpi"
+ if test $pass -eq 1
+ then
+ add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi"' "mpi lib"
+ else
++ test_link "whether -lmpi -lmpi_cxx" "ok" "no" "-lmpi -lmpi_cxx"
++ if test $pass -eq 1
++ then
++ add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi -lmpi_cxx"' "mpi lib"
++ else
+ echo "Error: can not find mpi library"
+ test_finish 1
++ fi
+ fi
+ fi
+ else
diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py
new file mode 100644
index 0000000000..7072e37cd3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charm/package.py
@@ -0,0 +1,190 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import os
+import platform
+import shutil
+import sys
+from spack import *
+
+
+class Charm(Package):
+ """Charm++ is a parallel programming framework in C++ supported by
+ an adaptive runtime system, which enhances user productivity and
+ allows programs to run portably from small multicore computers
+ (your laptop) to the largest supercomputers."""
+
+ homepage = "http://charmplusplus.org"
+ url = "http://charm.cs.illinois.edu/distrib/charm-6.7.1.tar.gz"
+
+ version("6.7.1", "a8e20cf85e9c8721158f5bbd0ade48d9")
+ version("6.7.0", "35a39a7975f1954a7db2d76736158231")
+ version("6.6.1", "9554230f741e2599deaaac4d9d93d7ab")
+ version("6.6.0", "31e95901b3f7324d52107e6ad000fcc8")
+ version("6.5.1", "034d99458474a3ab96d8bede8a691a5d")
+
+ # Support OpenMPI; see
+ # <https://charm.cs.illinois.edu/redmine/issues/1206>
+ patch("mpi.patch")
+ # Ignore compiler warnings while configuring
+ patch("strictpass.patch")
+
+ # Communication mechanisms (choose exactly one)
+ # TODO: Support Blue Gene/Q PAMI, Cray GNI, Cray shmem, CUDA
+ variant("mpi", default=True,
+ description="Use MPI as communication mechanism")
+ variant("multicore", default=False,
+ description="Disable inter-node communication")
+ variant("net", default=False,
+ description="Use net communication mechanism")
+ variant("netlrts", default=True,
+ description="Use netlrts communication mechanism")
+ variant("verbs", default=False,
+ description="Use Infiniband as communication mechanism")
+
+ # Other options
+ # Something is off with PAPI -- there are build errors. Maybe
+ # Charm++ expects a particular version?
+ variant("papi", default=False, description="Enable PAPI integration")
+ variant("smp", default=True,
+ description=(
+ "Enable SMP parallelism (does not work with +multicore)"))
+ variant("tcp", default=False,
+ description="Use TCP as transport mechanism (requires +net)")
+
+ # Note: We could add variants for AMPI, LIBS, bigemulator, msa, Tau
+ # Note: We could support shared libraries
+
+ depends_on("mpi", when="+mpi")
+ depends_on("papi", when="+papi")
+
+ def install(self, spec, prefix):
+ target = "charm++"
+
+ # Note: Turn this into a multi-valued variant, once these
+ # exist in Spack
+ if sum(["+mpi" in spec,
+ "+multicore" in spec,
+ "+net" in spec,
+ "+netlrts" in spec,
+ "+verbs" in spec]) != 1:
+ raise InstallError(
+ "Exactly one communication mechanism "
+ "(+mpi, +multicore, +net, +netlrts, or +verbs) "
+ "must be enabled")
+ if "+mpi" in spec:
+ comm = "mpi"
+ if "+multicore" in spec:
+ comm = "multicore"
+ if "+net" in spec:
+ comm = "net"
+ if "+netlrts" in spec:
+ comm = "netlrts"
+ if "+verbs" in spec:
+ comm = "verbs"
+
+ plat = sys.platform
+ if plat.startswith("linux"):
+ plat = "linux"
+ mach = platform.machine()
+
+ # Define Charm++ version names for various (plat, mach, comm)
+ # combinations. Note that not all combinations are supported.
+ versions = {
+ ("darwin", "i386", "multicore"): "multicore-darwin-x86",
+ ("darwin", "i386", "net"): "net-darwin-x86",
+ ("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
+ ("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
+ ("darwin", "x86_64", "net"): "net-darwin-x86_64",
+ ("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
+ ("linux", "i386", "mpi"): "mpi-linux",
+ ("linux", "i386", "multicore"): "multicore-linux32",
+ ("linux", "i386", "net"): "net-linux",
+ ("linux", "i386", "netlrts"): "netlrts-linux",
+ ("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
+ ("linux", "x86_64", "multicore"): "multicore-linux64",
+ ("linux", "x86_64", "net"): "net-linux-x86_64",
+ ("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
+ ("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
+ }
+ if (plat, mach, comm) not in versions:
+ raise InstallError(
+ "The communication mechanism %s is not supported "
+ "on a %s platform with a %s CPU" %
+ (comm, plat, mach))
+ version = versions[(plat, mach, comm)]
+
+ # We assume that Spack's compiler wrappers make this work. If
+ # not, then we need to query the compiler vendor from Spack
+ # here.
+ compiler = "gcc"
+
+ options = [compiler,
+ "--with-production", # Note: turn this into a variant
+ "-j%d" % make_jobs,
+ "--destination=%s" % prefix]
+ if "+mpi" in spec:
+ options.append("--basedir=%s" % spec["mpi"].prefix)
+ if "+papi" in spec:
+ options.extend(["papi", "--basedir=%s" % spec["papi"].prefix])
+ if "+smp" in spec:
+ if "+multicore" in spec:
+ # This is a Charm++ limitation; it would lead to a
+ # build error
+ raise InstallError("Cannot combine +smp with +multicore")
+ options.append("smp")
+ if "+tcp" in spec:
+ if "+net" not in spec:
+ # This is a Charm++ limitation; it would lead to a
+ # build error
+ raise InstallError(
+ "The +tcp variant requires "
+ "the +net communication mechanism")
+ options.append("tcp")
+
+ # Call "make" via the build script
+ # Note: This builds Charm++ in the "tmp" subdirectory of the
+ # install directory. Maybe we could set up a symbolic link
+ # back to the build tree to prevent this? Alternatively, we
+ # could dissect the build script; the build instructions say
+ # this wouldn't be difficult.
+ build = Executable(join_path(".", "build"))
+ build(target, version, *options)
+
+ # Charm++'s install script does not copy files, it only creates
+ # symbolic links. Fix this.
+ for dirpath, dirnames, filenames in os.walk(prefix):
+ for filename in filenames:
+ filepath = join_path(dirpath, filename)
+ if os.path.islink(filepath):
+ tmppath = filepath + ".tmp"
+ # Skip dangling symbolic links
+ try:
+ shutil.copy2(filepath, tmppath)
+ os.remove(filepath)
+ os.rename(tmppath, filepath)
+ except:
+ pass
+ shutil.rmtree(join_path(prefix, "tmp"))
diff --git a/var/spack/repos/builtin/packages/charm/strictpass.patch b/var/spack/repos/builtin/packages/charm/strictpass.patch
new file mode 100644
index 0000000000..44aa4fbd38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charm/strictpass.patch
@@ -0,0 +1,16 @@
+--- old/src/scripts/configure
++++ new/src/scripts/configure
+@@ -2146,13 +2146,6 @@
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
+- if test $pass -eq 1
+- then
+- if cat out | grep -i "warn" > /dev/null 2>&1
+- then
+- strictpass="0" && strictfail="1"
+- fi
+- fi
+ cat out >> $charmout
+ /bin/rm -f out
+ }
diff --git a/var/spack/repos/builtin/packages/cityhash/package.py b/var/spack/repos/builtin/packages/cityhash/package.py
index caa15780e3..85d948cc57 100644
--- a/var/spack/repos/builtin/packages/cityhash/package.py
+++ b/var/spack/repos/builtin/packages/cityhash/package.py
@@ -25,16 +25,20 @@
from spack import *
from spack.util.environment import *
+
class Cityhash(Package):
+ """CityHash, a family of hash functions for strings."""
+
homepage = "https://github.com/google/cityhash"
url = "https://github.com/google/cityhash"
- version('2013-07-31', git='https://github.com/google/cityhash.git', commit='8af9b8c2b889d80c22d6bc26ba0df1afb79a30db')
- version('master', branch='master', git='https://github.com/google/cityhash.git')
+ version('2013-07-31', git='https://github.com/google/cityhash.git',
+ commit='8af9b8c2b889d80c22d6bc26ba0df1afb79a30db')
+ version('master', branch='master',
+ git='https://github.com/google/cityhash.git')
def install(self, spec, prefix):
configure('--enable-sse4.2', '--prefix=%s' % prefix)
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/cleverleaf/package.py b/var/spack/repos/builtin/packages/cleverleaf/package.py
index 6b54d1bf26..3bd1f0b5d0 100644
--- a/var/spack/repos/builtin/packages/cleverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cleverleaf/package.py
@@ -24,22 +24,26 @@
##############################################################################
from spack import *
+
class Cleverleaf(Package):
- """
- CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with Adaptive
- Mesh Refinement using the SAMRAI toolkit from Lawrence Livermore National
- Laboratory. The primary goal of CleverLeaf is to evaluate the application of
- AMR to the Lagrangian-Eulerian hydrodynamics scheme used by CloverLeaf.
+ """CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with
+ Adaptive Mesh Refinement using the SAMRAI toolkit from Lawrence
+ Livermore National Laboratory. The primary goal of CleverLeaf is
+ to evaluate the application of AMR to the Lagrangian-Eulerian
+ hydrodynamics scheme used by CloverLeaf.
+
"""
homepage = "http://uk-mac.github.io/CleverLeaf/"
url = "https://github.com/UK-MAC/CleverLeaf/tarball/master"
- version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop')
+ version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git',
+ branch='develop')
- depends_on("SAMRAI@3.8.0:")
+ depends_on("samrai@3.8.0:")
depends_on("hdf5+mpi")
depends_on("boost")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake(*std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
new file mode 100644
index 0000000000..ca1d96574a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch
@@ -0,0 +1,11 @@
+--- CLHEP/CMakeLists.txt 2016-06-20 14:41:12.000000000 -0500
++++ CLHEP/CMakeLists.txt 2016-06-20 14:40:57.000000000 -0500
+@@ -37,7 +37,7 @@
+ # If Policy CMP0042 exists, use OLD to prefer the use of install names
+ # instead of the new @rpath default.
+ if(POLICY CMP0042)
+- cmake_policy(SET CMP0042 NEW)
++ cmake_policy(SET CMP0042 OLD)
+ endif()
+
+ set(CMAKE_MODULE_PATH
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
new file mode 100644
index 0000000000..02a9da9e27
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Clhep(Package):
+ """CLHEP is a C++ Class Library for High Energy Physics. """
+ homepage = "http://proj-clhep.web.cern.ch/proj-clhep/"
+ url = "http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/clhep-2.2.0.5.tgz"
+ list_url = "https://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/"
+
+ version('2.3.2.2', '567b304b0fa017e1e9fbf199f456ebe9')
+ version('2.3.1.1', '16efca7641bc118c9d217cc96fe90bf5')
+ version('2.3.1.0', 'b084934fc26a4182a08c09c292e19161')
+ version('2.3.0.0', 'a00399a2ca867f2be902c22fc71d7e2e')
+ version('2.2.0.8', '5a23ed3af785ac100a25f6cb791846af')
+ version('2.2.0.5', '1584e8ce6ebf395821aed377df315c7c')
+ version('2.2.0.4', '71d2c7c2e39d86a0262e555148de01c1')
+
+ variant('debug', default=False, description="Switch to the debug version of CLHEP.")
+ variant('cxx11', default=True, description="Compile using c++11 dialect.")
+ variant('cxx14', default=False, description="Compile using c++14 dialect.")
+
+ depends_on('cmake@2.8.12.2:', when='@2.2.0.4:2.3.0.0', type='build')
+ depends_on('cmake@3.2:', when='@2.3.0.1:', type='build')
+
+ def patch(self):
+ filter_file('SET CMP0042 OLD',
+ 'SET CMP0042 NEW',
+ '%s/%s/CLHEP/CMakeLists.txt'
+ % (self.stage.path, self.spec.version))
+
+ def install(self, spec, prefix):
+ # Handle debug
+ # Pull out the BUILD_TYPE so we can change it (Release is default)
+ cmake_args = [arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg]
+ build_type = 'Debug' if '+debug' in spec else 'MinSizeRel'
+ cmake_args.extend(['-DCMAKE_BUILD_TYPE=' + build_type])
+
+ if '+cxx11' in spec:
+ env['CXXFLAGS'] = self.compiler.cxx11_flag
+ cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
+ self.compiler.cxx11_flag)
+
+ if '+cxx14' in spec:
+ env['CXXFLAGS'] = self.compiler.cxx14_flag
+ cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
+ self.compiler.cxx14_flag)
+
+ # Note that the tar file is unusual in that there's a
+ # CLHEP directory (addtional layer)
+ cmake_args.append("../CLHEP")
+
+ # Run cmake in a build directory
+ with working_dir('build', create=True):
+ cmake(*cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cloog/package.py b/var/spack/repos/builtin/packages/cloog/package.py
index db3d2ac928..a979ae83fc 100644
--- a/var/spack/repos/builtin/packages/cloog/package.py
+++ b/var/spack/repos/builtin/packages/cloog/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cloog(Package):
"""CLooG is a free software and library to generate code for
scanning Z-polyhedra. That is, it finds a code (e.g. in C,
diff --git a/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch b/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch
new file mode 100644
index 0000000000..afe6f871ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch
@@ -0,0 +1,23 @@
+diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake
+index eb9602a..edca154 100644
+--- a/Modules/Compiler/Intel-C.cmake
++++ b/Modules/Compiler/Intel-C.cmake
+@@ -16,14 +16,14 @@ endif()
+
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+ set(CMAKE_C11_STANDARD_COMPILE_OPTION "${_std}=c11")
+- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=c11")
++ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=gnu11")
+ endif()
+
+-if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1)
++if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
+ set(CMAKE_C90_STANDARD_COMPILE_OPTION "${_std}=c89")
+- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=c89")
++ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=gnu89")
+ set(CMAKE_C99_STANDARD_COMPILE_OPTION "${_std}=c99")
+- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=c99")
++ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=gnu99")
+ endif()
+
+ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1)
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index 7b2a125fe5..60c95b9184 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -24,35 +24,55 @@
##############################################################################
from spack import *
+
class Cmake(Package):
"""A cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software."""
- homepage = 'https://www.cmake.org'
- url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz'
+ homepage = 'https://www.cmake.org'
+ url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz'
+ list_url = 'https://cmake.org/files/'
+ list_depth = 2
+ version('3.7.1', 'd031d5a06e9f1c5367cdfc56fbd2a1c8')
+ version('3.6.1', 'd6dd661380adacdb12f41b926ec99545')
+ version('3.6.0', 'aa40fbecf49d99c083415c2411d12db9')
version('3.5.2', '701386a1b5ec95f8d1075ecf96383e02')
version('3.5.1', 'ca051f4a66375c89d1a524e726da0296')
version('3.5.0', '33c5d09d4c33d4ffcc63578a6ba8777e')
version('3.4.3', '4cb3ff35b2472aae70f542116d616e63')
version('3.4.0', 'cd3034e0a44256a0917e254167217fc8')
version('3.3.1', '52638576f4e1e621fed6c3410d3a1b12')
+ version('3.1.0', '188eb7dc9b1b82b363bc51c0d3f1d461')
version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f')
version('2.8.10.2', '097278785da7182ec0aea8769d06860c')
- variant('ncurses', default=True, description='Enables the build of the ncurses gui')
- variant('openssl', default=True, description="Enables CMake's OpenSSL features")
- variant('qt', default=False, description='Enables the build of cmake-gui')
- variant('doc', default=False, description='Enables the generation of html and man page documentation')
+ variant('ownlibs', default=True, description='Use CMake-provided third-party libraries')
+ variant('qt', default=False, description='Enables the build of cmake-gui')
+ variant('doc', default=False, description='Enables the generation of html and man page documentation')
+ variant('openssl', default=True, description="Enables CMake's OpenSSL features")
+ variant('ncurses', default=True, description='Enables the build of the ncurses gui')
+
+ depends_on('curl', when='~ownlibs')
+ depends_on('expat', when='~ownlibs')
+ # depends_on('jsoncpp', when='~ownlibs') # circular dependency
+ depends_on('zlib', when='~ownlibs')
+ depends_on('bzip2', when='~ownlibs')
+ depends_on('xz', when='~ownlibs')
+ depends_on('libarchive', when='~ownlibs')
+ depends_on('qt', when='+qt')
+ depends_on('python@2.7.11:', when='+doc', type='build')
+ depends_on('py-sphinx', when='+doc', type='build')
+ depends_on('openssl', when='+openssl')
+ depends_on('ncurses', when='+ncurses')
- depends_on('ncurses', when='+ncurses')
- depends_on('openssl', when='+openssl')
- depends_on('qt', when='+qt')
- depends_on('python@2.7.11:', when='+doc')
- depends_on('py-sphinx', when='+doc')
+ # Cannot build with Intel, should be fixed in 3.6.2
+ # https://gitlab.kitware.com/cmake/cmake/issues/16226
+ patch('intel-c-gnu11.patch', when='@3.6.0:3.6.1')
def url_for_version(self, version):
"""Handle CMake's version-based custom URLs."""
- return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (version.up_to(2), version)
+ return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (
+ version.up_to(2), version)
def validate(self, spec):
"""
@@ -70,12 +90,27 @@ class Cmake(Package):
# Consistency check
self.validate(spec)
- # configure, build, install:
- options = ['--prefix=%s' % prefix]
- options.append('--parallel=%s' % str(make_jobs))
+ options = [
+ '--prefix={0}'.format(prefix),
+ '--parallel={0}'.format(make_jobs)]
+ if spec.satisfies("@3.2:"):
+ options.append(
+ # jsoncpp requires CMake to build
+ # use CMake-provided library to avoid circular dependency
+ '--no-system-jsoncpp'
+ )
+
+ if '+ownlibs' in spec:
+ # Build and link to the CMake-provided third-party libraries
+ options.append('--no-system-libs')
+ else:
+ # Build and link to the Spack-installed third-party libraries
+ options.append('--system-libs')
if '+qt' in spec:
options.append('--qt-gui')
+ else:
+ options.append('--no-qt-gui')
if '+doc' in spec:
options.append('--sphinx-html')
@@ -85,6 +120,10 @@ class Cmake(Package):
options.append('--')
options.append('-DCMAKE_USE_OPENSSL=ON')
- configure(*options)
+ bootstrap = Executable('./bootstrap')
+ bootstrap(*options)
+
make()
+ if self.run_tests:
+ make('test') # some tests fail, takes forever
make('install')
diff --git a/var/spack/repos/builtin/packages/cmocka/package.py b/var/spack/repos/builtin/packages/cmocka/package.py
index 41f80d9761..274b78379a 100644
--- a/var/spack/repos/builtin/packages/cmocka/package.py
+++ b/var/spack/repos/builtin/packages/cmocka/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cmocka(Package):
"""Unit-testing framework in pure C"""
homepage = "https://cmocka.org/"
@@ -32,9 +33,11 @@ class Cmocka(Package):
version('1.0.1', 'ed861e501a21a92b2af63e466df2015e')
parallel = False
+ depends_on('cmake', type='build')
+
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
+ cmake('..', *std_cmake_args)
- make()
- make("install")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py
new file mode 100644
index 0000000000..b5debf9537
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cmor/package.py
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cmor(AutotoolsPackage):
+ """Climate Model Output Rewriter is used to produce CF-compliant netCDF
+ files. The structure of the files created by the library and the metadata
+ they contain fulfill the requirements of many of the climate community's
+ standard model experiments."""
+
+ homepage = "http://cmor.llnl.gov"
+ url = "https://github.com/PCMDI/cmor/archive/3.1.2.tar.gz"
+
+ version('3.2.0', 'b48105105d4261012c19cd65e89ff7a6')
+ version('3.1.2', '72f7227159c901e4bcf80d2c73a8ce77')
+
+ variant('fortran', default=True, description='Enable Fortran API')
+ variant('python', default=False, description='Enable PYTHON support')
+
+ depends_on('uuid')
+ depends_on('netcdf')
+ depends_on('udunits2')
+ depends_on('hdf5@:1.8')
+
+ extends('python', when='+python')
+ depends_on('python@:2.7', when='+python')
+ depends_on('py-numpy', type=('build', 'run'), when='+python')
+
+ @AutotoolsPackage.precondition('configure')
+ def validate(self):
+ if '+fortran' in self.spec and not self.compiler.fc:
+ msg = 'cannot build a fortran variant without a fortran compiler'
+ raise RuntimeError(msg)
+
+ def configure_args(self):
+ extra_args = ['--disable-debug']
+
+ if '+fortran' in self.spec:
+ extra_args.append('--enable-fortran')
+ else:
+ extra_args.append('--disable-fortran')
+
+ return extra_args
+
+ def install(self, spec, prefix):
+ make('install')
+
+ if '+python' in spec:
+ setup_py('install', '--prefix=' + prefix)
diff --git a/var/spack/repos/builtin/packages/cnmem/package.py b/var/spack/repos/builtin/packages/cnmem/package.py
index f4c05f5b5f..0c62023952 100644
--- a/var/spack/repos/builtin/packages/cnmem/package.py
+++ b/var/spack/repos/builtin/packages/cnmem/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cnmem(Package):
"""CNMem mempool for CUDA devices"""
homepage = "https://github.com/NVIDIA/cnmem"
@@ -31,6 +32,6 @@ class Cnmem(Package):
version('git', git='https://github.com/NVIDIA/cnmem.git', branch="master")
def install(self, spec, prefix):
- cmake('.',*std_cmake_args)
- make()
- make('install')
+ cmake('.', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/compiz/package.py b/var/spack/repos/builtin/packages/compiz/package.py
new file mode 100644
index 0000000000..ec21f5b4f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/compiz/package.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Compiz(Package):
+ """compiz - OpenGL window and compositing manager.
+
+ Compiz is an OpenGL compositing manager that use
+ GLX_EXT_texture_from_pixmap for binding redirected top-level
+ windows to texture objects. It has a flexible plug-in system
+ and it is designed to run well on most graphics hardware."""
+
+ homepage = "http://www.compiz.org/"
+ url = "https://www.x.org/archive/individual/app/compiz-0.7.8.tar.gz"
+
+ version('0.7.8', 'e99977d9170a7bd5d571004eed038428')
+
+ depends_on('libxcb')
+ depends_on('libxcomposite')
+ depends_on('libxfixes')
+ depends_on('libxdamage')
+ depends_on('libxrandr')
+ depends_on('libxinerama')
+ depends_on('libice')
+ depends_on('libsm')
+ depends_on('libxml2')
+ depends_on('libxslt')
+
+ # TODO: add dependencies
+ # libstartup-notification-1.0 >= 0.7
+ depends_on('libxrender')
+ depends_on('libpng')
+ depends_on('glib')
+ depends_on('gconf')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/compositeproto/package.py b/var/spack/repos/builtin/packages/compositeproto/package.py
new file mode 100644
index 0000000000..1b3fbda0af
--- /dev/null
+++ b/var/spack/repos/builtin/packages/compositeproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Compositeproto(Package):
+ """Composite Extension.
+
+ This package contains header files and documentation for the composite
+ extension. Library and server implementations are separate."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/compositeproto"
+ url = "https://www.x.org/archive/individual/proto/compositeproto-0.4.2.tar.gz"
+
+ version('0.4.2', '2dea7c339432b3363faf2d29c208e7b5')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py
new file mode 100644
index 0000000000..9715542126
--- /dev/null
+++ b/var/spack/repos/builtin/packages/conduit/package.py
@@ -0,0 +1,313 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+import socket
+import os
+
+import llnl.util.tty as tty
+
+
+def cmake_cache_entry(name, value):
+ """
+ Helper that creates CMake cache entry strings used in
+ 'host-config' files.
+ """
+ return 'set("{0}" "{1}" CACHE PATH "")\n\n'.format(name, value)
+
+
+class Conduit(Package):
+ """Conduit is an open source project from Lawrence Livermore National
+ Laboratory that provides an intuitive model for describing hierarchical
+ scientific data in C++, C, Fortran, and Python. It is used for data
+ coupling between packages in-core, serialization, and I/O tasks."""
+
+ homepage = "http://software.llnl.gov/conduit"
+ url = "https://github.com/LLNL/conduit/archive/v0.2.1.tar.gz"
+
+ version('0.2.1', 'cd2b42c76f70ac3546582b6da77c6028')
+ version('0.2.0', 'd595573dedf55514c11d7391092fd760')
+
+ version('master', git='https://github.com/LLNL/conduit.git')
+
+ ###########################################################################
+ # package variants
+ ###########################################################################
+
+ variant("shared", default=True, description="Build Conduit as shared libs")
+
+ variant("cmake", default=True,
+ description="Build CMake (if off, attempt to use cmake from PATH)")
+
+ # variants for python support
+ variant("python", default=True, description="Build Conduit Python support")
+
+ # variants for comm and i/o
+ variant("mpi", default=True, description="Build Conduit MPI Support")
+ variant("hdf5", default=True, description="Build Conduit HDF5 support")
+ variant("silo", default=True, description="Build Conduit Silo support")
+
+ # variants for dev-tools (docs, etc)
+ variant("doc", default=False, description="Build Conduit's documentation")
+
+ ###########################################################################
+ # package dependencies
+ ###########################################################################
+
+ #######################
+ # CMake
+ #######################
+ # cmake 3.3.1 is the version we tested
+ depends_on("cmake@3.3.1", when="+cmake")
+
+ #######################
+ # Python
+ #######################
+ extends("python", when="+python")
+ # TODO: blas and lapack are disabled due to build
+ # issues Cyrus experienced on OSX 10.11.6
+ depends_on("py-numpy~blas~lapack", when="+python")
+
+ #######################
+ # I/O Packages
+ #######################
+ # TODO: cxx variant is disabled due to build issue Cyrus
+ # experienced on BGQ. When on, the static build tries
+ # to link agains shared libs.
+ #
+ # we are not using hdf5's mpi or fortran features.
+ depends_on("hdf5~cxx~mpi~fortran", when="+shared")
+ depends_on("hdf5~shared~cxx~mpi~fortran", when="~shared")
+
+ # we are not using silo's fortran features
+ depends_on("silo~fortran", when="+shared")
+ depends_on("silo~shared~fortran", when="~shared")
+
+ #######################
+ # MPI
+ #######################
+ depends_on("mpi", when="+mpi")
+
+ #######################
+ # Documentation related
+ #######################
+ depends_on("py-sphinx", when="+python+doc")
+ depends_on("doxygen", when="+doc")
+
+ def install(self, spec, prefix):
+ """
+ Build and install Conduit.
+ """
+ with working_dir('spack-build', create=True):
+ host_cfg_fname = self.create_host_config(spec, prefix)
+ cmake_args = []
+ # if we have a static build, we need to avoid any of
+ # spack's default cmake settings related to rpaths
+ # (see: https://github.com/LLNL/spack/issues/2658)
+ if "+shared" in spec:
+ cmake_args.extend(std_cmake_args)
+ else:
+ for arg in std_cmake_args:
+ if arg.count("RPATH") == 0:
+ cmake_args.append(arg)
+ cmake_args.extend(["-C", host_cfg_fname, "../src"])
+ cmake(*cmake_args)
+ make()
+ make("install")
+
+ def create_host_config(self, spec, prefix):
+ """
+ This method creates a 'host-config' file that specifies
+ all of the options used to configure and build conduit.
+
+ For more details see about 'host-config' files see:
+ http://software.llnl.gov/conduit/building.html
+ """
+
+ #######################
+ # Compiler Info
+ #######################
+ c_compiler = env["SPACK_CC"]
+ cpp_compiler = env["SPACK_CXX"]
+ f_compiler = None
+
+ if self.compiler.fc:
+ # even if this is set, it may not exist so do one more sanity check
+ if os.path.isfile(env["SPACK_FC"]):
+ f_compiler = env["SPACK_FC"]
+
+ #######################################################################
+ # 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
+ ##############################################
+
+ if "+cmake" in spec:
+ cmake_exe = join_path(spec['cmake'].prefix.bin, "cmake")
+ else:
+ cmake_exe = which("cmake")
+ if cmake_exe is None:
+ msg = 'failed to find CMake (and cmake variant is off)'
+ raise RuntimeError(msg)
+ cmake_exe = cmake_exe.command
+
+ host_cfg_fname = "%s-%s-%s.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))
+
+ cfg.write("# fortran compiler used by spack\n")
+ if f_compiler is not None:
+ cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "ON"))
+ cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", f_compiler))
+ else:
+ cfg.write("# no fortran compiler found\n\n")
+ cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "OFF"))
+
+ #######################
+ # Python
+ #######################
+
+ cfg.write("# Python Support\n")
+
+ if "+python" in spec:
+ python_exe = join_path(spec['python'].prefix.bin, "python")
+ cfg.write("# Enable python module builds\n")
+ cfg.write(cmake_cache_entry("ENABLE_PYTHON", "ON"))
+ cfg.write("# python from spack \n")
+ cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", python_exe))
+ # install module to standard style site packages dir
+ # so we can support spack activate
+ py_ver_short = "python{0}".format(spec["python"].version.up_to(2))
+ pym_prefix = join_path("${CMAKE_INSTALL_PREFIX}",
+ "lib",
+ py_ver_short,
+ "site-packages")
+ # use pym_prefix as the install path
+ cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX",
+ pym_prefix))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF"))
+
+ if "+doc" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_DOCS", "ON"))
+
+ cfg.write("# sphinx from spack \n")
+ sphinx_build_exe = join_path(spec['py-sphinx'].prefix.bin,
+ "sphinx-build")
+ cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE", sphinx_build_exe))
+
+ cfg.write("# doxygen from uberenv\n")
+ doxygen_exe = join_path(spec['doxygen'].prefix.bin, "doxygen")
+ cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE", doxygen_exe))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_DOCS", "OFF"))
+
+ #######################
+ # 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))
+ # we use `mpicc` as `MPI_CXX_COMPILER` b/c we don't want to
+ # introduce linking deps to the MPI C++ libs (we aren't using
+ # C++ features of MPI) -- this happens with some versions of
+ # OpenMPI
+ cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", spec['mpi'].mpicc))
+ cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER",
+ spec['mpi'].mpifc))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
+
+ #######################################################################
+ # I/O Packages
+ #######################################################################
+
+ cfg.write("# I/O Packages\n\n")
+
+ #######################
+ # HDF5
+ #######################
+
+ cfg.write("# hdf5 from spack \n")
+
+ if "+hdf5" in spec:
+ cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix))
+ else:
+ cfg.write("# hdf5 not built by spack \n")
+
+ #######################
+ # Silo
+ #######################
+
+ cfg.write("# silo from spack \n")
+
+ if "+silo" in spec:
+ cfg.write(cmake_cache_entry("SILO_DIR", spec['silo'].prefix))
+ else:
+ cfg.write("# silo not built by spack \n")
+
+ 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/constype/package.py b/var/spack/repos/builtin/packages/constype/package.py
new file mode 100644
index 0000000000..dcf88fdd55
--- /dev/null
+++ b/var/spack/repos/builtin/packages/constype/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Constype(Package):
+ """constype prints on the standard output the Sun code for the type of
+ display that the specified device is.
+
+ It was originally written for SunOS, but has been ported to other
+ SPARC OS'es and to Solaris on both SPARC & x86."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/constype"
+ url = "https://www.x.org/archive/individual/app/constype-1.0.4.tar.gz"
+
+ version('1.0.4', '2333b9ac9fd32e58b05afa651c4590a3')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py
new file mode 100644
index 0000000000..429be8542d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/converge/package.py
@@ -0,0 +1,69 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+import os
+
+
+class Converge(Package):
+ """CONVERGE is a revolutionary computational fluid dynamics (CFD) program
+ that eliminates the grid generation bottleneck from the simulation process.
+ CONVERGE was developed by engine simulation experts and is straightforward
+ to use for both engine and non-engine simulations. Unlike many CFD
+ programs, CONVERGE automatically generates a perfectly orthogonal,
+ structured grid at runtime based on simple, user-defined grid control
+ parameters. This grid generation method completely eliminates the need to
+ manually generate a grid. In addition, CONVERGE offers many other features
+ to expedite the setup process and to ensure that your simulations are as
+ computationally efficient as possible.
+
+ Note: CONVERGE is licensed software. You will need to create an account on
+ the CONVERGE homepage and download CONVERGE yourself. Spack will search
+ your current directory for the download file. Alternatively, add this file
+ to a mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://www.convergecfd.com/"
+ url = "file://%s/converge_install_2.3.16.tar.gz" % os.getcwd()
+
+ version('2.3.16', '8b80f1e73a63181c427c7732ad279986')
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ # The Converge Getting Started Guide recommends:
+ # MPICH: 3.1.4
+ # HP-MPI: 2.0.3+
+ # OpenMPI: 1.6.*
+ depends_on('mpi', when='+mpi')
+
+ # Licensing
+ license_required = True
+ license_comment = '#'
+ license_files = ['license/license.lic']
+ license_vars = ['RLM_LICENSE']
+ license_url = 'http://www.reprisesoftware.com/RLM_License_Administration.pdf'
+
+ def install(self, spec, prefix):
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py
index cb8f596b41..94cfa11341 100644
--- a/var/spack/repos/builtin/packages/coreutils/package.py
+++ b/var/spack/repos/builtin/packages/coreutils/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Coreutils(Package):
"""The GNU Core Utilities are the basic file, shell and text
manipulation utilities of the GNU operating system. These are
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
new file mode 100644
index 0000000000..3a175ea1a2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -0,0 +1,208 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import os
+import shutil
+import copy
+
+from spack import *
+
+
+class Cp2k(Package):
+ """CP2K is a quantum chemistry and solid state physics software package
+ that can perform atomistic simulations of solid state, liquid, molecular,
+ periodic, material, crystal, and biological systems
+ """
+ homepage = 'https://www.cp2k.org'
+ url = 'https://sourceforge.net/projects/cp2k/files/cp2k-3.0.tar.bz2'
+
+ version('3.0', 'c05bc47335f68597a310b1ed75601d35')
+
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('plumed', default=False, description='Enable PLUMED support')
+
+ depends_on('python', type='build')
+
+ depends_on('lapack')
+ depends_on('blas')
+ depends_on('fftw')
+ depends_on('libint@:1.2', when='@3.0')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('scalapack', when='+mpi')
+ depends_on('plumed+shared+mpi', when='+plumed+mpi')
+ depends_on('plumed+shared~mpi', when='+plumed~mpi')
+ depends_on('pexsi', when='+mpi')
+ depends_on('wannier90', when='+mpi')
+ depends_on('elpa', when='+mpi')
+
+ # TODO : add dependency on libsmm, libxsmm
+ # TODO : add dependency on CUDA
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ # Construct a proper filename for the architecture file
+ cp2k_architecture = '{0.architecture}-{0.compiler.name}'.format(spec)
+ cp2k_version = 'sopt' if '~mpi' in spec else 'popt'
+ makefile_basename = '.'.join([cp2k_architecture, cp2k_version])
+ makefile = join_path('arch', makefile_basename)
+
+ # Write the custom makefile
+ with open(makefile, 'w') as mkf:
+ # Optimization flags
+ optflags = {
+ 'gcc': ['-O2',
+ '-ffast-math',
+ '-ffree-form',
+ '-ffree-line-length-none',
+ '-ftree-vectorize',
+ '-funroll-loops',
+ '-mtune=native'],
+ 'intel': ['-O2',
+ '-pc64',
+ '-unroll',
+ '-heap-arrays 64']
+ }
+ cppflags = [
+ '-D__FFTW3',
+ '-D__LIBINT',
+ '-I' + spec['fftw'].prefix.include
+ ]
+ fcflags = copy.deepcopy(optflags[self.spec.compiler.name])
+ fcflags.extend([
+ '-I' + spec['fftw'].prefix.include
+ ])
+ fftw = find_libraries(['libfftw3'], root=spec['fftw'].prefix.lib)
+ ldflags = [fftw.search_flags]
+ libs = [
+ join_path(spec['libint'].prefix.lib, 'libint.so'),
+ join_path(spec['libint'].prefix.lib, 'libderiv.so'),
+ join_path(spec['libint'].prefix.lib, 'libr12.so')
+ ]
+ if '+plumed' in self.spec:
+ # Include Plumed.inc in the Makefile
+ mkf.write('include {0}\n'.format(
+ join_path(self.spec['plumed'].prefix.lib,
+ 'plumed',
+ 'src',
+ 'lib',
+ 'Plumed.inc')
+ ))
+ # Add required macro
+ cppflags.extend(['-D__PLUMED2'])
+ libs.extend([
+ join_path(self.spec['plumed'].prefix.lib,
+ 'libplumed.{0}'.format(dso_suffix))
+ ])
+
+ mkf.write('CC = {0.compiler.cc}\n'.format(self))
+ if '%intel' in self.spec:
+ # CPP is a commented command in Intel arch of CP2K
+ # This is the hack through which cp2k developers avoid doing :
+ #
+ # ${CPP} <file>.F > <file>.f90
+ #
+ # and use `-fpp` instead
+ mkf.write('CPP = # {0.compiler.cc} -P\n'.format(self))
+ mkf.write('AR = xiar -r\n')
+ else:
+ mkf.write('CPP = {0.compiler.cc} -E\n'.format(self))
+ mkf.write('AR = ar -r\n')
+ fc = self.compiler.fc if '~mpi' in spec else self.spec['mpi'].mpifc
+ mkf.write('FC = {0}\n'.format(fc))
+ mkf.write('LD = {0}\n'.format(fc))
+ # Intel
+ if '%intel' in self.spec:
+ cppflags.extend([
+ '-D__INTEL_COMPILER',
+ '-D__MKL'
+ ])
+ fcflags.extend([
+ '-diag-disable 8290,8291,10010,10212,11060',
+ '-free',
+ '-fpp'
+ ])
+ # MPI
+ if '+mpi' in self.spec:
+ cppflags.extend([
+ '-D__parallel',
+ '-D__LIBPEXSI',
+ '-D__WANNIER90',
+ '-D__ELPA3',
+ '-D__SCALAPACK'
+ ])
+ fcflags.extend([
+ '-I' + join_path(
+ spec['elpa'].prefix,
+ 'include',
+ 'elpa-{0}'.format(str(spec['elpa'].version)),
+ 'modules'
+ ),
+ '-I' + join_path(spec['pexsi'].prefix, 'fortran')
+ ])
+ scalapack = spec['scalapack'].scalapack_libs
+ ldflags.append(scalapack.search_flags)
+ libs.extend([
+ join_path(spec['elpa'].prefix.lib,
+ 'libelpa.{0}'.format(dso_suffix)),
+ join_path(spec['wannier90'].prefix.lib, 'libwannier.a'),
+ join_path(spec['pexsi'].prefix.lib, 'libpexsi.a'),
+ join_path(spec['superlu-dist'].prefix.lib,
+ 'libsuperlu_dist.a'),
+ join_path(
+ spec['parmetis'].prefix.lib,
+ 'libparmetis.{0}'.format(dso_suffix)
+ ),
+ join_path(
+ spec['metis'].prefix.lib,
+ 'libmetis.{0}'.format(dso_suffix)
+ ),
+ ])
+ libs.extend(scalapack)
+ libs.extend(self.spec['mpi'].mpicxx_shared_libs)
+ libs.extend(self.compiler.stdcxx_libs)
+ # LAPACK / BLAS
+ lapack = spec['lapack'].lapack_libs
+ blas = spec['blas'].blas_libs
+
+ ldflags.append((lapack + blas).search_flags)
+ libs.extend([str(x) for x in (fftw, lapack, blas)])
+
+ # Write compiler flags to file
+ mkf.write('CPPFLAGS = {0}\n'.format(' '.join(cppflags)))
+ mkf.write('FCFLAGS = {0}\n'.format(' '.join(fcflags)))
+ mkf.write('LDFLAGS = {0}\n'.format(' '.join(ldflags)))
+ mkf.write('LIBS = {0}\n'.format(' '.join(libs)))
+
+ with working_dir('makefiles'):
+ # Apparently the Makefile bases its paths on PWD
+ # so we need to set PWD = os.getcwd()
+ pwd_backup = env['PWD']
+ env['PWD'] = os.getcwd()
+ make('ARCH={0}'.format(cp2k_architecture),
+ 'VERSION={0}'.format(cp2k_version))
+ env['PWD'] = pwd_backup
+ exe_dir = join_path('exe', cp2k_architecture)
+ shutil.copytree(exe_dir, self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cppad/package.py b/var/spack/repos/builtin/packages/cppad/package.py
new file mode 100644
index 0000000000..1ec31bbeef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cppad/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cppad(CMakePackage):
+ """A Package for Differentiation of C++ Algorithms."""
+
+ homepage = "https://www.coin-or.org/CppAD/"
+
+ version('20170114', '565a534dc813fa1289764222cd8c11ea')
+ version('develop', git='https://github.com/coin-or/CppAD.git')
+
+ depends_on('cmake', type='build')
+
+ def url_for_version(self, version):
+ """Handle version-based custom URLs."""
+ return "http://www.coin-or.org/download/source/CppAD/cppad-%s.gpl.tgz" % (version)
+
+ def cmake_args(self):
+ # This package does not obey CMAKE_INSTALL_PREFIX
+ args = [
+ "-Dcppad_prefix=%s" % (self.prefix),
+ "-Dcmake_install_docdir=share/cppad/doc"
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py
index 16f052ef2f..fd48fcb7e3 100644
--- a/var/spack/repos/builtin/packages/cppcheck/package.py
+++ b/var/spack/repos/builtin/packages/cppcheck/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cppcheck(Package):
"""A tool for static C/C++ code analysis."""
homepage = "http://cppcheck.sourceforge.net/"
diff --git a/var/spack/repos/builtin/packages/cppunit/package.py b/var/spack/repos/builtin/packages/cppunit/package.py
new file mode 100644
index 0000000000..78956798b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cppunit/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cppunit(AutotoolsPackage):
+ """Obsolete Unit testing framework for C++"""
+
+ homepage = "https://wiki.freedesktop.org/www/Software/cppunit/"
+ url = "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz"
+
+ version('1.13.2', '0eaf8bb1dcf4d16b12bec30d0732370390d35e6f')
diff --git a/var/spack/repos/builtin/packages/cram/package.py b/var/spack/repos/builtin/packages/cram/package.py
index 7e05587087..bef26cdcbd 100644
--- a/var/spack/repos/builtin/packages/cram/package.py
+++ b/var/spack/repos/builtin/packages/cram/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Cram(Package):
"""Cram runs many small MPI jobs inside one large MPI job."""
homepage = "https://github.com/llnl/cram"
@@ -33,6 +34,7 @@ class Cram(Package):
extends('python')
depends_on("mpi")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake(".", *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py
index 77895a7331..c92f262a9a 100644
--- a/var/spack/repos/builtin/packages/cryptopp/package.py
+++ b/var/spack/repos/builtin/packages/cryptopp/package.py
@@ -25,20 +25,26 @@
import glob
from spack import *
+
class Cryptopp(Package):
"""Crypto++ is an open-source C++ library of cryptographic schemes. The
- library supports a number of different cryptography algorithms, including
- authenticated encryption schemes (GCM, CCM), hash functions (SHA-1, SHA2),
- public-key encryption (RSA, DSA), and a few obsolete/historical encryption
- algorithms (MD5, Panama)."""
+ library supports a number of different cryptography algorithms,
+ including authenticated encryption schemes (GCM, CCM), hash
+ functions (SHA-1, SHA2), public-key encryption (RSA, DSA), and a
+ few obsolete/historical encryption algorithms (MD5, Panama).
+
+ """
homepage = "http://www.cryptopp.com"
- base_url = "http://www.cryptopp.com"
version('5.6.3', '3c5b70e2ec98b7a24988734446242d07')
version('5.6.2', '7ed022585698df48e65ce9218f6c6a67')
version('5.6.1', '96cbeba0907562b077e26bcffb483828')
+ def url_for_version(self, version):
+ url = "{0}/{1}{2}.zip"
+ return url.format(self.homepage, self.name, version.joined)
+
def install(self, spec, prefix):
make()
@@ -48,7 +54,3 @@ class Cryptopp(Package):
mkdirp(prefix.lib)
install('libcryptopp.a', prefix.lib)
-
- def url_for_version(self, version):
- version_string = str(version).replace('.', '')
- return '%s/cryptopp%s.zip' % (Cryptopp.base_url, version_string)
diff --git a/var/spack/repos/builtin/packages/cscope/package.py b/var/spack/repos/builtin/packages/cscope/package.py
index 88d522f486..73017ffc57 100644
--- a/var/spack/repos/builtin/packages/cscope/package.py
+++ b/var/spack/repos/builtin/packages/cscope/package.py
@@ -24,18 +24,14 @@
##############################################################################
from spack import *
-class Cscope(Package):
+
+class Cscope(AutotoolsPackage):
"""Cscope is a developer's tool for browsing source code."""
- homepage = "http://http://cscope.sourceforge.net/"
+
+ homepage = "http://cscope.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/cscope/cscope/15.8b/cscope-15.8b.tar.gz"
version('15.8b', '8f9409a238ee313a96f9f87fe0f3b176')
# Can be configured to use flex (not necessary)
# ./configure --with-flex
-
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
-
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py
index 40c2cc6893..9cea3c40e8 100644
--- a/var/spack/repos/builtin/packages/cube/package.py
+++ b/var/spack/repos/builtin/packages/cube/package.py
@@ -22,14 +22,12 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Cube(Package):
- """
- Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space
- consisting of the dimensions:
+ """Cube the profile viewer for Score-P and Scalasca profiles. It displays a
+ multi-dimensional performance space consisting of the dimensions:
- performance metric
- call path
- system resource
@@ -38,18 +36,26 @@ class Cube(Package):
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
+ version('4.3.4', '50f73060f55311cb12c5b3cb354d59fa',
+ url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.4.tar.gz')
version('4.3.3', '07e109248ed8ffc7bdcce614264a2909',
url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz')
-
version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20',
url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz")
- # TODO : add variant that builds GUI on top of Qt
+ variant('gui', default=False, description='Build CUBE GUI')
+
+ depends_on('zlib')
+ depends_on('qt@4.6:', when='+gui')
def install(self, spec, prefix):
configure_args = ["--prefix=%s" % prefix,
- "--without-paraver",
- "--without-gui"]
+ "--without-paraver"]
+
+ # TODO : need to handle cross compiling build
+ if '+gui' not in spec:
+ configure_args.append('--without-gui')
+
configure(*configure_args)
- make(parallel=False)
+ make()
make("install", parallel=False)
diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
index 96694670ad..ed8518f98f 100644
--- a/var/spack/repos/builtin/packages/cuda/package.py
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -26,39 +26,46 @@ from spack import *
from glob import glob
import os
+
class Cuda(Package):
- """CUDA is a parallel computing platform and programming model invented by
- NVIDIA. It enables dramatic increases in computing performance by harnessing
- the power of the graphics processing unit (GPU).
+ """CUDA is a parallel computing platform and programming model invented
+ by NVIDIA. It enables dramatic increases in computing performance by
+ harnessing the power of the graphics processing unit (GPU).
+
+ Note: NVIDIA does not provide a download URL for CUDA so you will
+ need to download it yourself. Go to
+ https://developer.nvidia.com/cuda-downloads and select your Operating
+ System, Architecture, Distribution, and Version. For the Installer
+ Type, select runfile and click Download. Spack will search your
+ current directory for this file. Alternatively, add this file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html.
- Note: NVIDIA does not provide a download URL for CUDA so you will need to
- download it yourself. Go to https://developer.nvidia.com/cuda-downloads
- and select your Operating System, Architecture, Distribution, and Version.
- For the Installer Type, select runfile and click Download. Spack will search
- your current directory for this file. Alternatively, add this file to a
- mirror so that Spack can find it. For instructions on how to set up a mirror,
- see http://software.llnl.gov/spack/mirrors.html
+ Note: This package does not currently install the drivers necessary
+ to run CUDA. These will need to be installed manually. See:
+ http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for
+ details.
- Note: This package does not currently install the drivers necessary to run
- CUDA. These will need to be installed manually. See:
- http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux for details."""
+ """
homepage = "http://www.nvidia.com/object/cuda_home_new.html"
+ version('8.0.44', '6dca912f9b7e2b7569b0074a41713640', expand=False,
+ url="file://%s/cuda_8.0.44_linux.run" % os.getcwd())
version('7.5.18', '4b3bcecf0dfc35928a0898793cf3e4c6', expand=False,
url="file://%s/cuda_7.5.18_linux.run" % os.getcwd())
version('6.5.14', '90b1b8f77313600cc294d9271741f4da', expand=False,
url="file://%s/cuda_6.5.14_linux_64.run" % os.getcwd())
-
def install(self, spec, prefix):
runfile = glob(os.path.join(self.stage.path, 'cuda*.run'))[0]
chmod = which('chmod')
chmod('+x', runfile)
runfile = which(runfile)
- # Note: NVIDIA does not officially support many newer versions of compilers.
- # For example, on CentOS 6, you must use GCC 4.4.7 or older. See:
+ # Note: NVIDIA does not officially support many newer versions of
+ # compilers. For example, on CentOS 6, you must use GCC 4.4.7 or
+ # older. See:
# http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#system-requirements
# for details.
@@ -68,4 +75,3 @@ class Cuda(Package):
'--toolkit', # install CUDA Toolkit
'--toolkitpath=%s' % prefix
)
-
diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py
index e3de6ee5a1..a22ac52714 100644
--- a/var/spack/repos/builtin/packages/curl/package.py
+++ b/var/spack/repos/builtin/packages/curl/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Curl(Package):
"""cURL is an open source command line tool and library for
transferring data with URL syntax"""
@@ -31,6 +32,10 @@ class Curl(Package):
homepage = "http://curl.haxx.se"
url = "http://curl.haxx.se/download/curl-7.46.0.tar.bz2"
+ version('7.50.3', 'bd177fd6deecce00cfa7b5916d831c5e')
+ version('7.50.2', '6e161179f7af4b9f8b6ea21420132719')
+ version('7.50.1', '015f6a0217ca6f2c5442ca406476920b')
+ version('7.49.1', '6bb1f7af5b58b30e4e6414b8c1abccab')
version('7.47.1', '9ea3123449439bbd960cd25cf98796fb')
version('7.46.0', '9979f989a2a9930d10f1b3deeabc2148')
version('7.45.0', '62c1a352b28558f25ba6209214beadc8')
diff --git a/var/spack/repos/builtin/packages/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py
index d69f3e5009..ef6374619b 100644
--- a/var/spack/repos/builtin/packages/czmq/package.py
+++ b/var/spack/repos/builtin/packages/czmq/package.py
@@ -25,33 +25,37 @@
from spack import *
import os
+
class Czmq(Package):
""" A C interface to the ZMQ library """
homepage = "http://czmq.zeromq.org"
url = "https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz"
- version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1', url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
+ version('3.0.2', '23e9885f7ee3ce88d99d0425f52e9be1',
+ url='https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz')
- depends_on('libtool')
- depends_on('automake')
- depends_on('autoconf')
- depends_on('pkg-config')
+ depends_on('libtool', type='build')
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('pkg-config', type='build')
depends_on('zeromq')
def install(self, spec, prefix):
- bash = which("bash")
# Work around autogen.sh oddities
+ # bash = which("bash")
# bash("./autogen.sh")
mkdirp("config")
autoreconf = which("autoreconf")
autoreconf("--install", "--verbose", "--force",
- "-I", "config",
- "-I", os.path.join(spec['pkg-config'].prefix, "share", "aclocal"),
- "-I", os.path.join(spec['automake'].prefix, "share", "aclocal"),
- "-I", os.path.join(spec['libtool'].prefix, "share", "aclocal"),
- )
+ "-I", "config",
+ "-I", os.path.join(spec['pkg-config'].prefix,
+ "share", "aclocal"),
+ "-I", os.path.join(spec['automake'].prefix,
+ "share", "aclocal"),
+ "-I", os.path.join(spec['libtool'].prefix,
+ "share", "aclocal"),
+ )
configure("--prefix=%s" % prefix)
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/daal/package.py b/var/spack/repos/builtin/packages/daal/package.py
new file mode 100644
index 0000000000..a39064df9e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/daal/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+from spack.pkg.builtin.intel import IntelInstaller
+
+
+class Daal(IntelInstaller):
+ """Intel Data Analytics Acceleration Library.
+
+ Note: You will have to add the download file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://software.intel.com/en-us/daal"
+
+ version('2016.2.181', 'aad2aa70e5599ebfe6f85b29d8719d46',
+ url="file://%s/l_daal_2016.2.181.tgz" % os.getcwd())
+ version('2016.3.210', 'ad747c0dd97dace4cad03cf2266cad28',
+ url="file://%s/l_daal_2016.3.210.tgz" % os.getcwd())
+
+ def install(self, spec, prefix):
+
+ self.intel_prefix = os.path.join(prefix, "pkg")
+ IntelInstaller.install(self, spec, prefix)
+
+ daal_dir = os.path.join(self.intel_prefix, "daal")
+ for f in os.listdir(daal_dir):
+ os.symlink(os.path.join(daal_dir, f), os.path.join(self.prefix, f))
diff --git a/var/spack/repos/builtin/packages/dakota/package.py b/var/spack/repos/builtin/packages/dakota/package.py
index 3a8ddf28ef..e8f7d0889b 100644
--- a/var/spack/repos/builtin/packages/dakota/package.py
+++ b/var/spack/repos/builtin/packages/dakota/package.py
@@ -26,17 +26,22 @@ from spack import *
class Dakota(Package):
- """
- The Dakota toolkit provides a flexible, extensible interface between analysis codes and iterative systems
- analysis methods. Dakota contains algorithms for:
+ """The Dakota toolkit provides a flexible, extensible interface between
+ analysis codes and iterative systems analysis methods. Dakota
+ contains algorithms for:
- optimization with gradient and non gradient-based methods;
- - uncertainty quantification with sampling, reliability, stochastic expansion, and epistemic methods;
+ - uncertainty quantification with sampling, reliability, stochastic
+ - expansion, and epistemic methods;
- parameter estimation with nonlinear least squares methods;
- - sensitivity/variance analysis with design of experiments and parameter study methods.
+ - sensitivity/variance analysis with design of experiments and
+ - parameter study methods.
+
+ These capabilities may be used on their own or as components within
+ advanced strategies such as hybrid optimization, surrogate-based
+ optimization, mixed integer nonlinear programming, or optimization
+ under uncertainty.
- These capabilities may be used on their own or as components within advanced strategies such as hybrid optimization,
- surrogate-based optimization, mixed integer nonlinear programming, or optimization under uncertainty.
"""
homepage = 'https://dakota.sandia.gov/'
@@ -45,8 +50,10 @@ class Dakota(Package):
version('6.3', '05a58d209fae604af234c894c3f73f6d')
- variant('debug', default=False, description='Builds a debug version of the libraries')
- variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
variant('mpi', default=True, description='Activates MPI support')
depends_on('blas')
@@ -55,6 +62,7 @@ class Dakota(Package):
depends_on('python')
depends_on('boost')
+ depends_on('cmake', type='build')
def url_for_version(self, version):
return Dakota._url_str.format(version=version)
@@ -63,12 +71,17 @@ class Dakota(Package):
options = []
options.extend(std_cmake_args)
- options.extend(['-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'),
- '-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if '+shared' in spec else 'OFF')])
+ options.extend([
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'Debug' if '+debug' in spec else 'Release'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF')])
if '+mpi' in spec:
- options.extend(['-DDAKOTA_HAVE_MPI:BOOL=ON',
- '-DMPI_CXX_COMPILER:STRING=%s' % join_path(spec['mpi'].prefix.bin, 'mpicxx')])
+ options.extend([
+ '-DDAKOTA_HAVE_MPI:BOOL=ON',
+ '-DMPI_CXX_COMPILER:STRING=%s' % join_path(
+ spec['mpi'].prefix.bin, 'mpicxx')])
build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path
diff --git a/var/spack/repos/builtin/packages/damageproto/package.py b/var/spack/repos/builtin/packages/damageproto/package.py
new file mode 100644
index 0000000000..84e0fac311
--- /dev/null
+++ b/var/spack/repos/builtin/packages/damageproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Damageproto(Package):
+ """X Damage Extension.
+
+ This package contains header files and documentation for the X Damage
+ extension. Library and server implementations are separate."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/damageproto"
+ url = "https://www.x.org/releases/individual/proto/damageproto-1.2.1.tar.gz"
+
+ version('1.2.1', 'bf8c47b7f48625230cff155180f8ddce')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/damselfly/package.py b/var/spack/repos/builtin/packages/damselfly/package.py
index 42fab63f98..a37728c92b 100644
--- a/var/spack/repos/builtin/packages/damselfly/package.py
+++ b/var/spack/repos/builtin/packages/damselfly/package.py
@@ -24,15 +24,19 @@
##############################################################################
from spack import *
+
class Damselfly(Package):
"""Damselfly is a model-based parallel network simulator."""
homepage = "https://github.com/llnl/damselfly"
url = "https://github.com/llnl/damselfly"
- version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895', git='https://github.com/llnl/damselfly.git', tag='v1.0')
+ version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895',
+ git='https://github.com/llnl/damselfly.git', tag='v1.0')
+
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
- cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
- make()
- make('install')
+ cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py
new file mode 100644
index 0000000000..a031374381
--- /dev/null
+++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class DarshanRuntime(Package):
+ """Darshan (runtime) is a scalable HPC I/O characterization tool
+ designed to capture an accurate picture of application I/O behavior,
+ including properties such as patterns of access within files, with
+ minimum overhead. DarshanRuntime package should be installed on
+ systems where you intend to instrument MPI applications."""
+
+ homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
+ url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
+
+ version('3.1.0', '439d717323e6265b2612ed127886ae52')
+ version('3.0.0', '732577fe94238936268d74d7d74ebd08')
+
+ depends_on('mpi')
+ depends_on('zlib')
+
+ variant('slurm', default=False, description='Use Slurm Job ID')
+ variant('cobalt', default=False, description='Use Coblat Job Id')
+ variant('pbs', default=False, description='Use PBS Job Id')
+
+ def install(self, spec, prefix):
+
+ job_id = 'NONE'
+ if '+slurm' in spec:
+ job_id = 'SLURM_JOBID'
+ if '+cobalt' in spec:
+ job_id = 'COBALT_JOBID'
+ if '+pbs' in spec:
+ job_id = 'PBS_JOBID'
+
+ # TODO: BG-Q and other platform configure options
+ options = ['CC=%s' % spec['mpi'].mpicc,
+ '--with-mem-align=8',
+ '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH',
+ '--with-jobid-env=%s' % job_id,
+ '--with-zlib=%s' % spec['zlib'].prefix]
+
+ with working_dir('spack-build', create=True):
+ configure = Executable('../darshan-runtime/configure')
+ configure('--prefix=%s' % prefix, *options)
+ make()
+ make('install')
+
+ def setup_environment(self, spack_env, run_env):
+ # default path for log file, could be user or site specific setting
+ darshan_log_dir = '%s' % os.environ['HOME']
+ run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)
diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py
new file mode 100644
index 0000000000..47b0497ca8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/darshan-util/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DarshanUtil(Package):
+ """Darshan (util) is collection of tools for parsing and summarizing log
+ files produced by Darshan (runtime) instrumentation. This package is
+ typically installed on systems (front-end) where you intend to analyze
+ log files produced by Darshan (runtime)."""
+
+ homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
+ url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
+
+ version('3.1.0', '439d717323e6265b2612ed127886ae52')
+ version('3.0.0', '732577fe94238936268d74d7d74ebd08')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+
+ options = ['CC=%s' % self.compiler.cc,
+ '--with-zlib=%s' % spec['zlib'].prefix]
+
+ with working_dir('spack-build', create=True):
+ configure = Executable('../darshan-util/configure')
+ configure('--prefix=%s' % prefix, *options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/datamash/package.py b/var/spack/repos/builtin/packages/datamash/package.py
new file mode 100644
index 0000000000..85adeca996
--- /dev/null
+++ b/var/spack/repos/builtin/packages/datamash/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Datamash(Package):
+ """GNU datamash is a command-line program which performs basic numeric,
+ textual and statistical operations on input textual data files.
+ """
+
+ homepage = "https://www.gnu.org/software/datamash/"
+ url = "http://ftp.gnu.org/gnu/datamash/datamash-1.0.5.tar.gz"
+
+ version('1.1.0', '79a6affca08107a095e97e4237fc8775')
+ version('1.0.7', '9f317bab07454032ba9c068e7f17b04b')
+ version('1.0.6', 'ff26fdef0f343cb695cf1853e14a1a5b')
+ version('1.0.5', '9a29549dc7feca49fdc5fab696614e11')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py
index 130ba2ea1f..fdca68f53f 100644
--- a/var/spack/repos/builtin/packages/dbus/package.py
+++ b/var/spack/repos/builtin/packages/dbus/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Dbus(Package):
"""D-Bus is a message bus system, a simple way for applications to
talk to one another. D-Bus supplies both a system daemon (for
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 49dc971d3a..66267b2d9a 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -23,126 +23,174 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import sys
+import os
-class Dealii(Package):
- """C++ software library providing well-documented tools to build finite element codes for a broad variety of PDEs."""
+
+class Dealii(CMakePackage):
+ """C++ software library providing well-documented tools to build finite
+ element codes for a broad variety of PDEs."""
homepage = "https://www.dealii.org"
- url = "https://github.com/dealii/dealii/releases/download/v8.4.0/dealii-8.4.0.tar.gz"
+ url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
+
+ # Don't add RPATHs to this package for the full build DAG.
+ # only add for immediate deps.
+ transitive_rpaths = False
+ version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7')
+ version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d')
version('8.4.0', 'ac5dbf676096ff61e092ce98c80c2b00')
- version('dev', git='https://github.com/dealii/dealii.git')
+ version('8.3.0', 'fc6cdcb16309ef4bea338a4f014de6fa')
+ version('8.2.1', '71c728dbec14f371297cd405776ccf08')
+ version('8.1.0', 'aa8fadc2ce5eb674f44f997461bf668d')
+ version('develop', git='https://github.com/dealii/dealii.git')
variant('mpi', default=True, description='Compile with MPI')
- variant('arpack', default=True, description='Compile with Arpack and PArpack (only with MPI)')
- variant('doc', default=False, description='Compile with documentation')
- variant('gsl' , default=True, description='Compile with GSL')
- variant('hdf5', default=True, description='Compile with HDF5 (only with MPI)')
+ variant('arpack', default=True,
+ description='Compile with Arpack and PArpack (only with MPI)')
+ variant('doc', default=False,
+ description='Compile with documentation')
+ variant('gsl', default=True, description='Compile with GSL')
+ variant('hdf5', default=True,
+ description='Compile with HDF5 (only with MPI)')
variant('metis', default=True, description='Compile with Metis')
- variant('netcdf', default=True, description='Compile with Netcdf (only with MPI)')
+ variant('netcdf', default=True,
+ description='Compile with Netcdf (only with MPI)')
variant('oce', default=True, description='Compile with OCE')
- variant('p4est', default=True, description='Compile with P4est (only with MPI)')
- variant('petsc', default=True, description='Compile with Petsc (only with MPI)')
- variant('slepc', default=True, description='Compile with Slepc (only with Petsc and MPI)')
- variant('trilinos', default=True, description='Compile with Trilinos (only with MPI)')
+ variant('p4est', default=True,
+ description='Compile with P4est (only with MPI)')
+ variant('petsc', default=True,
+ description='Compile with Petsc (only with MPI)')
+ variant('slepc', default=True,
+ description='Compile with Slepc (only with Petsc and MPI)')
+ variant('trilinos', default=True,
+ description='Compile with Trilinos (only with MPI)')
+ variant('python', default=True,
+ description='Compile with Python bindings')
+ variant('int64', default=False,
+ description='Compile with 64 bit indices support')
# required dependencies, light version
- depends_on ("blas")
- # Boost 1.58 is blacklisted, see https://github.com/dealii/dealii/issues/1591
- # require at least 1.59
- depends_on ("boost@1.59.0:", when='~mpi')
- depends_on ("boost@1.59.0:+mpi", when='+mpi')
- depends_on ("bzip2")
- depends_on ("cmake")
- depends_on ("lapack")
- depends_on ("muparser")
- depends_on ("suite-sparse")
- depends_on ("tbb")
- depends_on ("zlib")
+ depends_on("blas")
+ # Boost 1.58 is blacklisted, see
+ # https://github.com/dealii/dealii/issues/1591
+ # Require at least 1.59
+ # +python won't affect @:8.4.2
+ depends_on("boost@1.59.0:+thread+system+serialization+iostreams",
+ when='@:8.4.2~mpi')
+ depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi",
+ when='@:8.4.2+mpi')
+ # since @8.5.0: (and @develop) python bindings are introduced:
+ depends_on("boost@1.59.0:+thread+system+serialization+iostreams",
+ when='@8.5.0:~mpi~python')
+ depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi",
+ when='@8.5.0:+mpi~python')
+ depends_on("boost@1.59.0:+thread+system+serialization+iostreams+python",
+ when='@8.5.0:~mpi+python')
+ depends_on(
+ "boost@1.59.0:+thread+system+serialization+iostreams+mpi+python",
+ when='@8.5.0:+mpi+python')
+ depends_on("bzip2")
+ depends_on("lapack")
+ depends_on("muparser")
+ depends_on("suite-sparse")
+ depends_on("tbb")
+ depends_on("zlib")
# optional dependencies
- depends_on ("mpi", when="+mpi")
- depends_on ("arpack-ng+mpi", when='+arpack+mpi')
- depends_on ("doxygen", when='+doc')
- depends_on ("gsl", when='@8.5.0:+gsl')
- depends_on ("gsl", when='@dev+gsl')
- depends_on ("hdf5+mpi~cxx", when='+hdf5+mpi') #FIXME NetCDF declares dependency with ~cxx, why?
- depends_on ("metis@5:", when='+metis')
- depends_on ("netcdf+mpi", when="+netcdf+mpi")
- depends_on ("netcdf-cxx", when='+netcdf+mpi')
- depends_on ("oce", when='+oce')
- depends_on ("p4est", when='+p4est+mpi')
- depends_on ("petsc+mpi", when='+petsc+mpi')
- depends_on ("slepc", when='+slepc+petsc+mpi')
- depends_on ("trilinos", when='+trilinos+mpi')
-
- # developer dependnecies
- depends_on ("numdiff", when='@dev')
- depends_on ("astyle@2.04", when='@dev')
+ depends_on("mpi", when="+mpi")
+ depends_on("arpack-ng+mpi", when='+arpack+mpi')
+ depends_on("doxygen+graphviz", when='+doc')
+ depends_on("graphviz", when='+doc')
+ depends_on("gsl", when='@8.5.0:+gsl')
+ depends_on("hdf5+mpi", when='+hdf5+mpi')
+ depends_on("metis@5:", when='+metis')
+ depends_on("netcdf+mpi", when="+netcdf+mpi")
+ depends_on("netcdf-cxx", when='+netcdf+mpi')
+ depends_on("oce", when='+oce')
+ depends_on("p4est", when='+p4est+mpi')
+ depends_on("petsc+mpi", when='@8.4.2:+petsc+mpi~int64')
+ depends_on('python', when='@8.5.0:+python')
+ depends_on("slepc", when='@8.4.2:+slepc+petsc+mpi~int64')
+ depends_on("petsc@:3.6.4+mpi", when='@:8.4.1+petsc+mpi~int64')
+ depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi~int64')
+ depends_on("trilinos", when='+trilinos+mpi')
+
+ def build_type(self):
+ # CMAKE_BUILD_TYPE should be DebugRelease | Debug | Release
+ return 'DebugRelease'
- def install(self, spec, prefix):
+ def cmake_args(self):
+ spec = self.spec
options = []
- options.extend(std_cmake_args)
- # CMAKE_BUILD_TYPE should be DebugRelease | Debug | Release
- for word in options[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- options.remove(word)
-
- dsuf = 'dylib' if sys.platform == 'darwin' else 'so'
+ lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
options.extend([
- '-DCMAKE_BUILD_TYPE=DebugRelease',
'-DDEAL_II_COMPONENT_EXAMPLES=ON',
'-DDEAL_II_WITH_THREADS:BOOL=ON',
'-DBOOST_DIR=%s' % spec['boost'].prefix,
'-DBZIP2_DIR=%s' % spec['bzip2'].prefix,
- # CMake's FindBlas/Lapack may pickup system's blas/lapack instead of Spack's.
- # Be more specific to avoid this.
- # Note that both lapack and blas are provided in -DLAPACK_XYZ variables
+ # CMake's FindBlas/Lapack may pickup system's blas/lapack instead
+ # of Spack's. Be more specific to avoid this.
+ # Note that both lapack and blas are provided in -DLAPACK_XYZ.
'-DLAPACK_FOUND=true',
- '-DLAPACK_INCLUDE_DIRS=%s;%s' %
- (spec['lapack'].prefix.include,
- spec['blas'].prefix.include),
- '-DLAPACK_LIBRARIES=%s;%s' %
- (join_path(spec['lapack'].prefix.lib,'liblapack.%s' % dsuf), # FIXME don't hardcode names
- join_path(spec['blas'].prefix.lib,'libblas.%s' % dsuf)), # FIXME don't hardcode names
- '-DMUPARSER_DIR=%s ' % spec['muparser'].prefix,
+ '-DLAPACK_INCLUDE_DIRS=%s;%s' % (
+ spec['lapack'].prefix.include, spec['blas'].prefix.include),
+ '-DLAPACK_LIBRARIES=%s' % lapack_blas.joined(';'),
+ '-DMUPARSER_DIR=%s' % spec['muparser'].prefix,
'-DUMFPACK_DIR=%s' % spec['suite-sparse'].prefix,
'-DTBB_DIR=%s' % spec['tbb'].prefix,
'-DZLIB_DIR=%s' % spec['zlib'].prefix
])
+ if spec.satisfies('@8.5.0:'):
+ options.extend([
+ '-DDEAL_II_COMPONENT_PYTHON_BINDINGS=%s' %
+ ('ON' if '+python' in spec else 'OFF')
+ ])
+
+ # Set directory structure:
+ if spec.satisfies('@:8.2.1'):
+ options.extend(['-DDEAL_II_COMPONENT_COMPAT_FILES=OFF'])
+ else:
+ options.extend([
+ '-DDEAL_II_EXAMPLES_RELDIR=share/deal.II/examples',
+ '-DDEAL_II_DOCREADME_RELDIR=share/deal.II/',
+ '-DDEAL_II_DOCHTML_RELDIR=share/deal.II/doc'
+ ])
+
# MPI
if '+mpi' in spec:
options.extend([
'-DDEAL_II_WITH_MPI:BOOL=ON',
- '-DCMAKE_C_COMPILER=%s' % join_path(self.spec['mpi'].prefix.bin, 'mpicc'), # FIXME: avoid hardcoding mpi wrappers names
- '-DCMAKE_CXX_COMPILER=%s' % join_path(self.spec['mpi'].prefix.bin, 'mpic++'),
- '-DCMAKE_Fortran_COMPILER=%s' % join_path(self.spec['mpi'].prefix.bin, 'mpif90'),
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
])
else:
options.extend([
'-DDEAL_II_WITH_MPI:BOOL=OFF',
])
- # Optional dependencies for which librariy names are the same as CMake variables
- for library in ('gsl','hdf5','p4est','petsc','slepc','trilinos','metis'):
+ # Optional dependencies for which library names are the same as CMake
+ # variables:
+ for library in (
+ 'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'):
if library in spec:
options.extend([
- '-D{library}_DIR={value}'.format(library=library.upper(), value=spec[library].prefix),
- '-DDEAL_II_WITH_{library}:BOOL=ON'.format(library=library.upper())
+ '-D%s_DIR=%s' % (library.upper(), spec[library].prefix),
+ '-DDEAL_II_WITH_%s:BOOL=ON' % library.upper()
])
else:
options.extend([
- '-DDEAL_II_WITH_{library}:BOOL=OFF'.format(library=library.upper())
+ '-DDEAL_II_WITH_%s:BOOL=OFF' % library.upper()
])
# doxygen
options.extend([
- '-DDEAL_II_COMPONENT_DOCUMENTATION=%s' % ('ON' if '+doc' in spec else 'OFF'),
+ '-DDEAL_II_COMPONENT_DOCUMENTATION=%s' %
+ ('ON' if '+doc' in spec else 'OFF'),
])
-
# arpack
if '+arpack' in spec:
options.extend([
@@ -157,13 +205,25 @@ class Dealii(Package):
# since Netcdf is spread among two, need to do it by hand:
if '+netcdf' in spec:
+ # take care of lib64 vs lib installed lib locations:
+ if os.path.isdir(spec['netcdf-cxx'].prefix.lib):
+ netcdfcxx_lib_dir = spec['netcdf-cxx'].prefix.lib
+ else:
+ netcdfcxx_lib_dir = spec['netcdf-cxx'].prefix.lib64
+ if os.path.isdir(spec['netcdf'].prefix.lib):
+ netcdf_lib_dir = spec['netcdf'].prefix.lib
+ else:
+ netcdf_lib_dir = spec['netcdf'].prefix.lib64
+
options.extend([
'-DNETCDF_FOUND=true',
- '-DNETCDF_LIBRARIES=%s;%s' %
- (join_path(spec['netcdf-cxx'].prefix.lib,'libnetcdf_c++.%s' % dsuf),
- join_path(spec['netcdf'].prefix.lib,'libnetcdf.%s' % dsuf)),
- '-DNETCDF_INCLUDE_DIRS=%s;%s' %
- (spec['netcdf-cxx'].prefix.include,
+ '-DNETCDF_LIBRARIES=%s;%s' % (
+ join_path(netcdfcxx_lib_dir,
+ 'libnetcdf_c++.%s' % dso_suffix),
+ join_path(netcdf_lib_dir,
+ 'libnetcdf.%s' % dso_suffix)),
+ '-DNETCDF_INCLUDE_DIRS=%s;%s' % (
+ spec['netcdf-cxx'].prefix.include,
spec['netcdf'].prefix.include),
])
else:
@@ -182,101 +242,12 @@ class Dealii(Package):
'-DDEAL_II_WITH_OPENCASCADE=OFF'
])
- cmake('.', *options)
-
- make()
- make("test")
- make("install")
-
- # run some MPI examples with different solvers from PETSc and Trilinos
- env['DEAL_II_DIR'] = prefix
- print('=====================================')
- print('============ EXAMPLES ===============')
- print('=====================================')
- # take bare-bones step-3
- print('=====================================')
- print('============ Step-3 =================')
- print('=====================================')
- with working_dir('examples/step-3'):
- cmake('.')
- make('release')
- make('run',parallel=False)
-
- # An example which uses Metis + PETSc
- # FIXME: switch step-18 to MPI
- with working_dir('examples/step-18'):
- print('=====================================')
- print('============= Step-18 ===============')
- print('=====================================')
- # list the number of cycles to speed up
- filter_file(r'(end_time = 10;)', ('end_time = 3;'), 'step-18.cc')
- if '^petsc' in spec and '^metis' in spec:
- cmake('.')
- make('release')
- make('run',parallel=False)
-
- # take step-40 which can use both PETSc and Trilinos
- # FIXME: switch step-40 to MPI run
- with working_dir('examples/step-40'):
- print('=====================================')
- print('========== Step-40 PETSc ============')
- print('=====================================')
- # list the number of cycles to speed up
- filter_file(r'(const unsigned int n_cycles = 8;)', ('const unsigned int n_cycles = 2;'), 'step-40.cc')
- cmake('.')
- if '^petsc' in spec:
- make('release')
- make('run',parallel=False)
-
- print('=====================================')
- print('========= Step-40 Trilinos ==========')
- print('=====================================')
- # change Linear Algebra to Trilinos
- filter_file(r'(\/\/ #define FORCE_USE_OF_TRILINOS.*)', ('#define FORCE_USE_OF_TRILINOS'), 'step-40.cc')
- if '^trilinos+hypre' in spec:
- make('release')
- make('run',parallel=False)
-
- print('=====================================')
- print('=== Step-40 Trilinos SuperluDist ====')
- print('=====================================')
- # change to direct solvers
- filter_file(r'(LA::SolverCG solver\(solver_control\);)', ('TrilinosWrappers::SolverDirect::AdditionalData data(false,"Amesos_Superludist"); TrilinosWrappers::SolverDirect solver(solver_control,data);'), 'step-40.cc')
- filter_file(r'(LA::MPI::PreconditionAMG preconditioner;)', (''), 'step-40.cc')
- filter_file(r'(LA::MPI::PreconditionAMG::AdditionalData data;)', (''), 'step-40.cc')
- filter_file(r'(preconditioner.initialize\(system_matrix, data\);)', (''), 'step-40.cc')
- filter_file(r'(solver\.solve \(system_matrix, completely_distributed_solution, system_rhs,)', ('solver.solve (system_matrix, completely_distributed_solution, system_rhs);'), 'step-40.cc')
- filter_file(r'(preconditioner\);)', (''), 'step-40.cc')
- if '^trilinos+superlu-dist' in spec:
- make('release')
- make('run',paralle=False)
-
- print('=====================================')
- print('====== Step-40 Trilinos MUMPS =======')
- print('=====================================')
- # switch to Mumps
- filter_file(r'(Amesos_Superludist)', ('Amesos_Mumps'), 'step-40.cc')
- if '^trilinos+mumps' in spec:
- make('release')
- make('run',parallel=False)
-
- print('=====================================')
- print('============ Step-36 ================')
- print('=====================================')
- with working_dir('examples/step-36'):
- if 'slepc' in spec:
- cmake('.')
- make('release')
- make('run',parallel=False)
+ # 64 bit indices
+ options.extend([
+ '-DDEAL_II_WITH_64BIT_INDICES=%s' % ('+int64' in spec)
+ ])
- print('=====================================')
- print('============ Step-54 ================')
- print('=====================================')
- with working_dir('examples/step-54'):
- if 'oce' in spec:
- cmake('.')
- make('release')
- make('run',parallel=False)
+ return options
def setup_environment(self, spack_env, env):
env.set('DEAL_II_DIR', self.prefix)
diff --git a/var/spack/repos/builtin/packages/dia/package.py b/var/spack/repos/builtin/packages/dia/package.py
index 38742b7e7d..94cd75656d 100644
--- a/var/spack/repos/builtin/packages/dia/package.py
+++ b/var/spack/repos/builtin/packages/dia/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Dia(Package):
"""Dia is a program for drawing structured diagrams."""
homepage = 'https://wiki.gnome.org/Apps/Dia'
@@ -31,10 +32,10 @@ class Dia(Package):
version('0.97.3', '0e744a0f6a6c4cb6a089e4d955392c3c')
- depends_on('intltool')
+ depends_on('intltool', type='build')
depends_on('gtkplus@2.6.0:')
depends_on('cairo')
- #depends_on('libart') # optional dependency, not yet supported by spack.
+ # depends_on('libart') # optional dependency, not yet supported by spack.
depends_on('libpng')
depends_on('libxslt')
depends_on('python')
diff --git a/var/spack/repos/builtin/packages/dmxproto/package.py b/var/spack/repos/builtin/packages/dmxproto/package.py
new file mode 100644
index 0000000000..34213bba5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dmxproto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dmxproto(Package):
+ """Distributed Multihead X (DMX) Extension.
+
+ This extension defines a protocol for clients to access a front-end proxy
+ X server that controls multiple back-end X servers making up a large
+ display."""
+
+ homepage = "http://dmx.sourceforge.net/"
+ url = "https://www.x.org/archive/individual/proto/dmxproto-2.3.1.tar.gz"
+
+ version('2.3.1', '7c52af95aac192e8de31bd9a588ce121')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index 9c22174610..f1e1a08c8f 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -23,7 +23,6 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-import glob
from spack import *
@@ -35,9 +34,18 @@ class DocbookXml(Package):
version('4.5', '03083e288e87a7e829e437358da7ef9e')
def install(self, spec, prefix):
- cp = which('cp')
+ for item in os.listdir('.'):
+ src = os.path.abspath(item)
+ dst = os.path.join(prefix, item)
+ if os.path.isdir(item):
+ install_tree(src, dst, symlinks=True)
+ else:
+ install(src, dst)
- install_args = ['-a', '-t', prefix]
- install_args.extend(glob.glob('*'))
+ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
+ catalog = os.path.join(self.spec.prefix, 'catalog.xml')
+ spack_env.set('XML_CATALOG_FILES', catalog, separator=' ')
- cp(*install_args)
+ def setup_environment(self, spack_env, run_env):
+ catalog = os.path.join(self.spec.prefix, 'catalog.xml')
+ run_env.set('XML_CATALOG_FILES', catalog, separator=' ')
diff --git a/var/spack/repos/builtin/packages/docbook-xsl/package.py b/var/spack/repos/builtin/packages/docbook-xsl/package.py
new file mode 100644
index 0000000000..5de9cecdbb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/docbook-xsl/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import os
+from spack import *
+
+
+class DocbookXsl(Package):
+ """Docbook XSL vocabulary."""
+ homepage = "http://docbook.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/docbook/docbook-xsl/1.79.1/docbook-xsl-1.79.1.tar.bz2"
+
+ version('1.79.1', 'b48cbf929a2ad85e6672f710777ca7bc')
+
+ depends_on('docbook-xml')
+
+ def install(self, spec, prefix):
+ for item in os.listdir('.'):
+ src = os.path.abspath(item)
+ dst = os.path.join(prefix, item)
+ if os.path.isdir(item):
+ install_tree(src, dst, symlinks=True)
+ else:
+ install(src, dst)
+
+ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
+ catalog = os.path.join(self.spec.prefix, 'catalog.xml')
+ spack_env.set('XML_CATALOG_FILES', catalog, separator=' ')
+
+ def setup_environment(self, spack_env, run_env):
+ catalog = os.path.join(self.spec.prefix, 'catalog.xml')
+ run_env.set('XML_CATALOG_FILES', catalog, separator=' ')
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index b2e9582b5a..560e6aa95f 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -35,18 +35,20 @@ class Doxygen(Package):
homepage = "http://www.stack.nl/~dimitri/doxygen/"
url = "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.10.src.tar.gz"
+ version('1.8.12', '08e0f7850c4d22cb5188da226b209a96')
version('1.8.11', 'f4697a444feaed739cfa2f0644abc19b')
version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
# graphviz appears to be a run-time optional dependency
- variant('graphviz', default=True, description='Build with dot command support from Graphviz.') # NOQA: ignore=E501
+ variant('graphviz', default=False,
+ description='Build with dot command support from Graphviz.')
- depends_on("cmake@2.8.12:")
- depends_on("flex")
- depends_on("bison")
+ depends_on("cmake@2.8.12:", type='build')
+ depends_on("flex", type='build')
+ depends_on("bison", type='build')
# optional dependencies
- depends_on("graphviz", when="+graphviz")
+ depends_on("graphviz", when="+graphviz", type='run')
def install(self, spec, prefix):
cmake('.', *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/dri2proto/package.py b/var/spack/repos/builtin/packages/dri2proto/package.py
index 25ea783c0c..d05e7ea231 100644
--- a/var/spack/repos/builtin/packages/dri2proto/package.py
+++ b/var/spack/repos/builtin/packages/dri2proto/package.py
@@ -24,15 +24,23 @@
##############################################################################
from spack import *
+
class Dri2proto(Package):
- """DRI2 Protocol Headers."""
- homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/"
- url = "http://xorg.freedesktop.org/releases/individual/proto/dri2proto-2.8.tar.gz"
+ """Direct Rendering Infrastructure 2 Extension.
+
+ This extension defines a protocol to securely allow user applications to
+ access the video hardware without requiring data to be passed through the
+ X server."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/dri2proto/"
+ url = "https://www.x.org/releases/individual/proto/dri2proto-2.8.tar.gz"
version('2.8', '19ea18f63d8ae8053c9fa84b60365b77')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
- make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/dri3proto/package.py b/var/spack/repos/builtin/packages/dri3proto/package.py
new file mode 100644
index 0000000000..cd2594d5da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dri3proto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Dri3proto(Package):
+ """Direct Rendering Infrastructure 3 Extension.
+
+ This extension defines a protocol to securely allow user applications to
+ access the video hardware without requiring data to be passed through the
+ X server."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/dri3proto/"
+ url = "https://www.x.org/releases/individual/proto/dri3proto-1.0.tar.gz"
+
+ version('1.0', '25e84a49a076862277ee12aebd49ff5f')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/dtcmp/package.py b/var/spack/repos/builtin/packages/dtcmp/package.py
index b50b2ae3ae..e59e246d47 100644
--- a/var/spack/repos/builtin/packages/dtcmp/package.py
+++ b/var/spack/repos/builtin/packages/dtcmp/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Dtcmp(Package):
"""The Datatype Comparison Library provides comparison operations and
parallel sort algorithms for MPI applications."""
diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py
index 735936f087..420ab0fc68 100644
--- a/var/spack/repos/builtin/packages/dyninst/package.py
+++ b/var/spack/repos/builtin/packages/dyninst/package.py
@@ -24,13 +24,24 @@
##############################################################################
from spack import *
+
class Dyninst(Package):
"""API for dynamic binary instrumentation. Modify programs while they
are executing without recompiling, re-linking, or re-executing."""
+
homepage = "https://paradyn.org"
- url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz"
+ url = "https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz"
list_url = "http://www.dyninst.org/downloads/dyninst-8.x"
+ # version 9.2.1b was the latest git commit when trying to port to a
+ # ppc64le system to get fixes in computeAddrWidth independent of
+ # endianness. This version can be removed if the next release includes
+ # this change. The actual commit was
+ # b8596ad4023ec40ac07e669ff8ea3ec06e262703
+ version('9.2.1b', git='https://github.com/dyninst/dyninst.git',
+ commit='859cb778e20b619443c943c96dd1851da763142b')
+ version('9.2.0', 'ad023f85e8e57837ed9de073b59d6bab',
+ url="https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz")
version('9.1.0', '5c64b77521457199db44bec82e4988ac',
url="http://www.paradyn.org/release9.1.0/DyninstAPI-9.1.0.tgz")
version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7',
@@ -40,30 +51,47 @@ class Dyninst(Package):
version('8.1.1', 'd1a04e995b7aa70960cd1d1fac8bd6ac',
url="http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz")
+ variant('stat_dysect', default=False,
+ description="patch for STAT's DySectAPI")
+
depends_on("libelf")
depends_on("libdwarf")
depends_on("boost@1.42:")
+ depends_on('cmake', type='build')
+
+ patch('stat_dysect.patch', when='+stat_dysect')
+ patch('stackanalysis_h.patch', when='@9.2.0')
# new version uses cmake
def install(self, spec, prefix):
+ if spec.satisfies('@:8.1'):
+ configure("--prefix=" + prefix)
+ make()
+ make("install")
+ return
+
libelf = spec['libelf'].prefix
libdwarf = spec['libdwarf'].prefix
with working_dir('spack-build', create=True):
- cmake('..',
- '-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
- '-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DLIBELF_INCLUDE_DIR=%s' % join_path(libelf.include, 'libelf'),
- '-DLIBELF_LIBRARIES=%s' % join_path(libelf.lib, 'libelf.so'),
- '-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
- '-DLIBDWARF_LIBRARIES=%s' % join_path(libdwarf.lib, 'libdwarf.so'),
- *std_cmake_args)
-
+ args = ['..',
+ '-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include,
+ '-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DLIBELF_INCLUDE_DIR=%s' % join_path(
+ libelf.include, 'libelf'),
+ '-DLIBELF_LIBRARIES=%s' % join_path(
+ libelf.lib, 'libelf.so'),
+ '-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include,
+ '-DLIBDWARF_LIBRARIES=%s' % join_path(
+ libdwarf.lib, 'libdwarf.so')]
+ if spec.satisfies('arch=linux-redhat7-ppc64le'):
+ args.append('-Darch_ppc64_little_endian=1')
+ args += std_cmake_args
+ cmake(*args)
make()
make("install")
-
@when('@:8.1')
def install(self, spec, prefix):
configure("--prefix=" + prefix)
diff --git a/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch
new file mode 100644
index 0000000000..2c04d935d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch
@@ -0,0 +1,11 @@
+--- a/dataflowAPI/h/stackanalysis.h 2016-06-29 14:54:14.000000000 -0700
++++ b/dataflowAPI/h/stackanalysis.h 2016-08-02 09:50:13.619079000 -0700
+@@ -331,7 +331,7 @@
+
+ // To build intervals, we must replay the effect of each instruction.
+ // To avoid sucking enormous time, we keep those transfer functions around...
+- typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs>>
++ typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs> >
+ InstructionEffects;
+
+ DATAFLOW_EXPORT StackAnalysis();
diff --git a/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch
new file mode 100644
index 0000000000..c15403683f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch
@@ -0,0 +1,96 @@
+From 3aebb41ce0ea5b578a1ebf6810446c660066c525 Mon Sep 17 00:00:00 2001
+From: Jesper Puge Nielsen <nielsen34@llnl.gov>
+Date: Wed, 12 Aug 2015 21:07:52 -0700
+Subject: [PATCH] =?UTF-8?q?Exposed=20stackwalker=20and=20proc=20callback=20status=20to=20DySect
+=20=C3c?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+---
+ dyninstAPI/h/BPatch_process.h | 13 +++++++++++++
+ dyninstAPI/src/BPatch_process.C | 18 ++++++++++++++++++
+ dyninstAPI/src/dynProcess.h | 3 ++-
+ 3 files changed, 33 insertions(+), 1 deletions(-)
+
+diff --git a/dyninstAPI/h/BPatch_process.h b/dyninstAPI/h/BPatch_process.h
+index 5e01bbb..1316bb2 100644
+--- a/dyninstAPI/h/BPatch_process.h
++++ b/dyninstAPI/h/BPatch_process.h
+@@ -225,6 +225,10 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace {
+ //
+ // this function should go away as soon as Paradyn links against Dyninst
+ PCProcess *lowlevel_process() const { return llproc; }
++
++ // Expose walker from Dyninst proces
++ void *get_walker() const;
++
+ // These internal funcs trigger callbacks registered to matching events
+ bool triggerStopThread(instPoint *intPoint, func_instance *intFunc,
+ int cb_ID, void *retVal);
+@@ -281,6 +285,15 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace {
+
+ bool continueExecution();
+
++ // BPatch_process::keepStopped
++ //
++ // Changes the desired process stat to prevent
++ // Dyninst from resuming the process after
++ // handling the current event.
++ // Must be called from an event handler.
++
++ void keepStopped();
++
+ // BPatch_process::terminateExecution
+ //
+ // Terminate mutatee process
+diff --git a/dyninstAPI/src/BPatch_process.C b/dyninstAPI/src/BPatch_process.C
+index 115f215..809e797 100644
+--- a/dyninstAPI/src/BPatch_process.C
++++ b/dyninstAPI/src/BPatch_process.C
+@@ -507,6 +507,19 @@ bool BPatch_process::continueExecution()
+ }
+
+ /*
++ * BPatch_process::keepStopped
++ *
++ * Changes the desired process stat to prevent
++ * Dyninst from resuming the process after
++ * handling the current event.
++ * Must be called from an event handler.
++ */
++void BPatch_process::keepStopped()
++{
++ llproc->setDesiredProcessState(PCProcess::ps_stopped);
++}
++
++/*
+ * BPatch_process::terminateExecution
+ *
+ * Kill the thread.
+@@ -1754,3 +1767,8 @@ bool BPatch_process::protectAnalyzedCode()
+ }
+ return ret;
+ }
++
++void *BPatch_process::get_walker() const
++{
++ return llproc->get_walker();
++}
+diff --git a/dyninstAPI/src/dynProcess.h b/dyninstAPI/src/dynProcess.h
+index 54b0c6e..00721d1 100644
+--- a/dyninstAPI/src/dynProcess.h
++++ b/dyninstAPI/src/dynProcess.h
+@@ -302,7 +302,8 @@ public:
+ // Stackwalking internals
+ bool walkStack(pdvector<Frame> &stackWalk, PCThread *thread);
+ bool getActiveFrame(Frame &frame, PCThread *thread);
+-
++ Dyninst::Stackwalker::Walker *get_walker() { return stackwalker_; }
++
+ void addSignalHandler(Address, unsigned);
+ bool isInSignalHandler(Address addr);
+
+--
+1.7.1
+
diff --git a/var/spack/repos/builtin/packages/editres/package.py b/var/spack/repos/builtin/packages/editres/package.py
new file mode 100644
index 0000000000..52ad33b133
--- /dev/null
+++ b/var/spack/repos/builtin/packages/editres/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Editres(Package):
+ """Dynamic resource editor for X Toolkit applications."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/editres"
+ url = "https://www.x.org/archive/individual/app/editres-1.0.6.tar.gz"
+
+ version('1.0.6', '310c504347ca499874593ac96e935353')
+
+ depends_on('libxaw')
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxmu')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py
index e20fcffdd7..1d7df47b21 100644
--- a/var/spack/repos/builtin/packages/eigen/package.py
+++ b/var/spack/repos/builtin/packages/eigen/package.py
@@ -22,36 +22,42 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Eigen(Package):
- """
- Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms
+ """Eigen is a C++ template library for linear algebra matrices,
+ vectors, numerical solvers, and related algorithms.
"""
homepage = 'http://eigen.tuxfamily.org/'
- url = 'http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2'
+ url = 'https://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2'
- version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184', url='http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2')
+ version('3.3.1', 'edb6799ef413b0868aace20d2403864c')
+ version('3.2.10', 'a85bb68c82988648c3d53ba9768d7dcbcfe105f8')
+ version('3.2.9', '59ab81212f8eb2534b1545a9b42c38bf618a0d71')
+ version('3.2.8', '64f4aef8012a424c7e079eaf0be71793ab9bc6e0')
+ version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184')
- variant('debug', default=False, description='Builds the library in debug mode')
+ variant('debug', default=False,
+ description='Builds the library in debug mode')
variant('metis', default=True, description='Enables metis backend')
variant('scotch', default=True, description='Enables scotch backend')
variant('fftw', default=True, description='Enables FFTW backend')
- variant('suitesparse', default=True, description='Enables SuiteSparse support')
+ variant('suitesparse', default=True,
+ description='Enables SuiteSparse support')
+ variant('mpfr', default=True,
+ description='Enables support for multi-precisions FP via mpfr')
# TODO : dependency on googlehash, superlu, adolc missing
-
- depends_on('cmake')
+ depends_on('cmake', type='build')
depends_on('metis@5:', when='+metis')
depends_on('scotch', when='+scotch')
depends_on('fftw', when='+fftw')
depends_on('suite-sparse', when='+suitesparse')
- depends_on('mpfr@2.3.0:') # Eigen 3.2.7 requires at least 2.3.0
- depends_on('gmp')
+ depends_on('mpfr@2.3.0:', when="+mpfr")
+ depends_on('gmp', when="+mpfr")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index ecb5759ddc..ef8c2433c9 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Elfutils(Package):
"""elfutils is a collection of various binary tools such as
eu-objdump, eu-readelf, and other utilities that allow you to
@@ -47,4 +48,3 @@ class Elfutils(Package):
configure('--prefix=%s' % prefix, '--enable-maintainer-mode')
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py
index b089e585dd..acaf863935 100644
--- a/var/spack/repos/builtin/packages/elk/package.py
+++ b/var/spack/repos/builtin/packages/elk/package.py
@@ -87,12 +87,12 @@ class Elk(Package):
# BLAS/LAPACK support
# Note: BLAS/LAPACK must be compiled with OpenMP support
# if the +openmp variant is chosen
- blas = 'blas.a'
+ blas = 'blas.a'
lapack = 'lapack.a'
if '+blas' in spec:
- blas = spec['blas'].blas_shared_lib
+ blas = spec['blas'].blas_libs.joined()
if '+lapack' in spec:
- lapack = spec['lapack'].lapack_shared_lib
+ lapack = spec['lapack'].lapack_libs.joined()
# lapack must come before blas
config['LIB_LPK'] = ' '.join([lapack, blas])
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index ae81422495..b433bf40b0 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -34,7 +34,16 @@ class Elpa(Package):
homepage = 'http://elpa.mpcdf.mpg.de/'
url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
- version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6', url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz')
+ version(
+ '2016.05.003',
+ '88a9f3f3bfb63e16509dd1be089dcf2c',
+ url='http://elpa.mpcdf.mpg.de/html/Releases/2016.05.003/elpa-2016.05.003.tar.gz'
+ )
+ version(
+ '2015.11.001',
+ 'de0f35b7ee7c971fd0dca35c900b87e6',
+ url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
+ )
variant('openmp', default=False, description='Activates OpenMP support')
@@ -45,7 +54,24 @@ class Elpa(Package):
def install(self, spec, prefix):
- options = ["--prefix=%s" % prefix]
+ options = [
+ 'CC={0}'.format(self.spec['mpi'].mpicc),
+ 'FC={0}'.format(self.spec['mpi'].mpifc),
+ 'CXX={0}'.format(self.spec['mpi'].mpicxx),
+ 'FCFLAGS={0}'.format(
+ spec['lapack'].lapack_libs.joined()
+ ),
+ 'LDFLAGS={0}'.format(
+ spec['lapack'].lapack_libs.joined()
+ ),
+ 'SCALAPACK_FCFLAGS={0}'.format(
+ spec['scalapack'].scalapack_libs.joined()
+ ),
+ 'SCALAPACK_LDFLAGS={0}'.format(
+ spec['scalapack'].scalapack_libs.joined()
+ ),
+ '--prefix={0}'.format(self.prefix)
+ ]
if '+openmp' in spec:
options.append("--enable-openmp")
diff --git a/var/spack/repos/builtin/packages/emacs/package.py b/var/spack/repos/builtin/packages/emacs/package.py
index 4b05864a1e..1f9caee24c 100644
--- a/var/spack/repos/builtin/packages/emacs/package.py
+++ b/var/spack/repos/builtin/packages/emacs/package.py
@@ -24,22 +24,44 @@
##############################################################################
from spack import *
+
class Emacs(Package):
"""The Emacs programmable text editor."""
+
homepage = "https://www.gnu.org/software/emacs"
url = "http://ftp.gnu.org/gnu/emacs/emacs-24.5.tar.gz"
+ version('25.1', '95c12e6a9afdf0dcbdd7d2efa26ca42c')
version('24.5', 'd74b597503a68105e61b5b9f6d065b44')
+ variant('X', default=False, description="Enable an X toolkit")
+ variant('toolkit', default='gtk',
+ description="Select an X toolkit (gtk, athena)")
+
depends_on('ncurses')
- # Emacs also depends on:
- # GTK or other widget library
- # libtiff, png, etc.
- # For now, we assume the system provides all that stuff.
- # For Ubuntu 14.04 LTS:
- # sudo apt-get install libgtk-3-dev libxpm-dev libtiff5-dev libjpeg8-dev libgif-dev libpng12-dev
+ depends_on('libtiff', when='+X')
+ depends_on('libpng', when='+X')
+ depends_on('libxpm', when='+X')
+ depends_on('giflib', when='+X')
+ depends_on('libx11', when='+X')
+ depends_on('libxaw', when='+X toolkit=athena')
+ depends_on('gtkplus+X', when='+X toolkit=gtk')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ args = []
+ toolkit = spec.variants['toolkit'].value
+ if '+X' in spec:
+ if toolkit not in ('gtk', 'athena'):
+ raise InstallError("toolkit must be in (gtk, athena), not %s" %
+ toolkit)
+ args = [
+ '--with-x',
+ '--with-x-toolkit={0}'.format(toolkit)
+ ]
+ else:
+ args = ['--without-x']
+
+ configure('--prefix={0}'.format(prefix), *args)
+
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/encodings/package.py b/var/spack/repos/builtin/packages/encodings/package.py
new file mode 100644
index 0000000000..67b21a6e07
--- /dev/null
+++ b/var/spack/repos/builtin/packages/encodings/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Encodings(Package):
+ """X.org encodings font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/encodings"
+ url = "https://www.x.org/archive/individual/font/encodings-1.0.4.tar.gz"
+
+ version('1.0.4', '1a631784ce204d667abcc329b851670c')
+
+ depends_on('font-util')
+
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py
index fe7a5ee4f6..11ddb12876 100644
--- a/var/spack/repos/builtin/packages/environment-modules/package.py
+++ b/var/spack/repos/builtin/packages/environment-modules/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import os
class EnvironmentModules(Package):
@@ -30,33 +31,50 @@ class EnvironmentModules(Package):
modification of a user's environment via modulefiles."""
homepage = "https://sourceforge.net/p/modules/wiki/Home/"
- url = "http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz"
+ url = "http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz"
version('3.2.10', '8b097fdcb90c514d7540bb55a3cb90fb')
# Dependencies:
- depends_on('tcl')
+ depends_on('tcl', type=('build', 'link', 'run'))
def install(self, spec, prefix):
tcl_spec = spec['tcl']
+ # We are looking for tclConfig.sh
+ tcl_config_name = 'tclConfig.sh'
+ tcl_config_dir_options = [tcl_spec.prefix.lib,
+ tcl_spec.prefix.lib64]
+
+ tcl_config_found = False
+ for tcl_config_dir in tcl_config_dir_options:
+ tcl_config_found = os.path.exists(
+ join_path(tcl_config_dir, tcl_config_name))
+ if tcl_config_found:
+ break
+
+ if not tcl_config_found:
+ raise InstallError('Failed to locate ' + tcl_config_name)
+
# See: https://sourceforge.net/p/modules/bugs/62/
- CPPFLAGS = ['-DUSE_INTERP_ERRORLINE']
+ cpp_flags = ['-DUSE_INTERP_ERRORLINE']
+
config_args = [
"--without-tclx",
"--with-tclx-ver=0.0",
- "--prefix=%s" % prefix,
- "--with-tcl=%s" % join_path(tcl_spec.prefix, 'lib'), # It looks for tclConfig.sh
- "--with-tcl-ver=%d.%d" % (tcl_spec.version.version[0], tcl_spec.version.version[1]),
+ "--prefix=" + prefix,
+ # It looks for tclConfig.sh
+ "--with-tcl=" + tcl_config_dir,
+ "--with-tcl-ver=%d.%d" % (
+ tcl_spec.version.version[0], tcl_spec.version.version[1]),
'--disable-debug',
'--disable-dependency-tracking',
'--disable-silent-rules',
- '--disable-versioning',
- '--datarootdir=%s' % prefix.share,
- 'CPPFLAGS=%s' % ' '.join(CPPFLAGS)
+ '--disable-versioning',
+ '--datarootdir=' + prefix.share,
+ 'CPPFLAGS=' + ' '.join(cpp_flags)
]
-
configure(*config_args)
make()
make('install')
diff --git a/var/spack/repos/builtin/packages/espresso/package.py b/var/spack/repos/builtin/packages/espresso/package.py
index ef6a3ccc7b..d2c825513c 100644
--- a/var/spack/repos/builtin/packages/espresso/package.py
+++ b/var/spack/repos/builtin/packages/espresso/package.py
@@ -23,23 +23,30 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-
import os
+
class Espresso(Package):
+ """QE is an integrated suite of Open-Source computer codes for
+ electronic-structure calculations and materials modeling at
+ the nanoscale. It is based on density-functional theory, plane
+ waves, and pseudopotentials.
"""
- QE is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials
- modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.
- """
+
homepage = 'http://quantum-espresso.org'
url = 'http://www.qe-forge.org/gf/download/frsrelease/204/912/espresso-5.3.0.tar.gz'
+ version(
+ '5.4.0',
+ '8bb78181b39bd084ae5cb7a512c1cfe7',
+ url='http://www.qe-forge.org/gf/download/frsrelease/211/968/espresso-5.4.0.tar.gz'
+ )
version('5.3.0', '6848fcfaeb118587d6be36bd10b7f2c3')
- variant('mpi', default=True, description='Build Quantum-ESPRESSO with mpi support')
+ variant('mpi', default=True, description='Builds with mpi support')
variant('openmp', default=False, description='Enables openMP support')
variant('scalapack', default=True, description='Enables scalapack support')
- variant('elpa', default=True, description='Use elpa as an eigenvalue solver')
+ variant('elpa', default=True, description='Uses elpa as an eigenvalue solver')
depends_on('blas')
depends_on('lapack')
@@ -47,7 +54,12 @@ class Espresso(Package):
depends_on('mpi', when='+mpi')
depends_on('fftw~mpi', when='~mpi')
depends_on('fftw+mpi', when='+mpi')
- depends_on('scalapack', when='+scalapack+mpi') # TODO : + mpi needed to avoid false dependencies installation
+ # TODO : + mpi needed to avoid false dependencies installation
+ depends_on('scalapack', when='+scalapack+mpi')
+
+ # Spurious problems running in parallel the Makefile
+ # generated by qe configure
+ parallel = False
def check_variants(self, spec):
error = 'you cannot ask for \'+{variant}\' when \'+mpi\' is not active'
@@ -76,7 +88,7 @@ class Espresso(Package):
# Add a list of directories to search
search_list = []
- for name, dependency_spec in spec.dependencies.iteritems():
+ for dependency_spec in spec.dependencies():
search_list.extend([dependency_spec.prefix.lib,
dependency_spec.prefix.lib64])
@@ -87,10 +99,9 @@ class Espresso(Package):
configure(*options)
make('all')
- if spec.architecture.startswith('darwin'):
+ if spec.satisfies('platform=darwin'):
mkdirp(prefix.bin)
for filename in glob("bin/*.x"):
install(filename, prefix.bin)
else:
make('install')
-
diff --git a/var/spack/repos/builtin/packages/espressopp/package.py b/var/spack/repos/builtin/packages/espressopp/package.py
new file mode 100644
index 0000000000..2903a02f7d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/espressopp/package.py
@@ -0,0 +1,82 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Espressopp(CMakePackage):
+ """ESPResSo++ is an extensible, flexible, fast and parallel simulation
+ software for soft matter research. It is a highly versatile software
+ package for the scientific simulation and analysis of coarse-grained
+ 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"
+
+ version('develop', git='https://github.com/espressopp/espressopp.git', branch='master')
+ version('1.9.4.1', '0da74a6d4e1bfa6a2a24fca354245a4f')
+ version('1.9.4', 'f2a27993a83547ad014335006eea74ea')
+
+ variant('debug', default=False, description='Build debug version')
+ variant('ug', default=False, description='Build user guide')
+ variant('pdf', default=False, description='Build user guide in pdf format')
+ variant('dg', default=False, description='Build developer guide')
+
+ depends_on("cmake@2.8:", type='build')
+ depends_on("mpi")
+ depends_on("boost+serialization+filesystem+system+python+mpi", when='@1.9.4:')
+ extends("python")
+ depends_on("python@2:2.7.13")
+ depends_on("py-mpi4py@2.0.0:", when='@1.9.4', type=('build', 'run'))
+ depends_on("py-mpi4py@1.3.1:", when='@1.9.4.1:', type=('build', 'run'))
+ depends_on("fftw")
+ depends_on("py-sphinx", when="+ug", type='build')
+ depends_on("py-sphinx", when="+pdf", type='build')
+ depends_on('py-numpy', when="+ug", type='build')
+ depends_on('py-numpy', when="+pdf", type='build')
+ depends_on('py-matplotlib', when="+ug", type='build')
+ depends_on('py-matplotlib', when="+pdf", type='build')
+ depends_on("texlive", when="+pdf", type='build')
+ depends_on("doxygen", when="+dg", type='build')
+
+ def build_type(self):
+ spec = self.spec
+ if '+debug' in spec:
+ return 'Debug'
+ else:
+ return 'Release'
+
+ def cmake_args(self):
+ return ['-DEXTERNAL_MPI4PY=ON', '-DEXTERNAL_BOOST=ON']
+
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory()):
+ make()
+ if '+ug' in spec:
+ make("ug", parallel=False)
+ if '+pdf' in spec:
+ make("ug-pdf", parallel=False)
+ if '+dg' in spec:
+ make("doc", parallel=False)
diff --git a/var/spack/repos/builtin/packages/etsf-io/package.py b/var/spack/repos/builtin/packages/etsf-io/package.py
new file mode 100644
index 0000000000..c1e6f2eded
--- /dev/null
+++ b/var/spack/repos/builtin/packages/etsf-io/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class EtsfIo(Package):
+ """ETSF_IO is a library implementing the Nanoquanta/ETSF file
+ format specifications.
+
+ ETSF_IO enables an architecture-independent exchange of crystallographic
+ data, electronic wavefunctions, densities and potentials, as well as
+ spectroscopic data. It is meant to be used by quantum-physical and
+ quantum-chemical applications relying upon Density Functional Theory (DFT).
+ """
+
+ homepage = "http://www.etsf.eu/resources/software/libraries_and_tools"
+ url = "https://launchpad.net/etsf-io/1.0/1.0.4/+download/etsf_io-1.0.4.tar.gz"
+
+ version('1.0.4', '32d0f7143278bd925b334c69fa425da1')
+
+ depends_on("netcdf-fortran")
+ depends_on("hdf5+mpi~cxx", when='+mpi') # required for NetCDF-4 support
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix]
+ oapp = options.append
+
+ # Specify installation directory for Fortran module files
+ # Default is [INCLUDEDIR/FC_TYPE]
+ oapp("--with-moduledir=%s" % prefix.include)
+
+ # Netcdf4/HDF
+ hdf_libs = "-L%s -lhdf5_hl -lhdf5" % spec["hdf5"].prefix.lib
+ options.extend([
+ "--with-netcdf-incs=-I%s" % spec["netcdf-fortran"].prefix.include,
+ "--with-netcdf-libs=-L%s -lnetcdff -lnetcdf %s" % (
+ spec["netcdf-fortran"].prefix.lib, hdf_libs),
+ ])
+
+ configure(*options)
+
+ make()
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py
new file mode 100644
index 0000000000..76b437a38a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/everytrace-example/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class EverytraceExample(CMakePackage):
+ """Get stack trace EVERY time a program exits."""
+
+ homepage = "https://github.com/citibeth/everytrace-example"
+ version('develop',
+ git='https://github.com/citibeth/everytrace-example.git',
+ branch='develop')
+
+ depends_on('everytrace+mpi+fortran')
+
+ # Currently the only MPI this everytrace works with.
+ depends_on('openmpi')
+
+ def setup_environment(self, spack_env, env):
+ env.prepend_path('PATH', join_path(self.prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py
new file mode 100644
index 0000000000..d884c7b165
--- /dev/null
+++ b/var/spack/repos/builtin/packages/everytrace/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Everytrace(CMakePackage):
+ """Get stack trace EVERY time a program exits."""
+
+ homepage = "https://github.com/citibeth/everytrace"
+ url = "https://github.com/citibeth/everytrace/tarball/0.2.0"
+
+ version('0.2.0', '2af0e5b6255064d5191accebaa70d222')
+ version('develop',
+ git='https://github.com/citibeth/everytrace.git', branch='develop')
+
+ variant('mpi', default=True, description='Enables MPI parallelism')
+ variant('fortran', default=True,
+ description='Enable use with Fortran programs')
+
+ depends_on('mpi', when='+mpi')
+
+ def cmake_args(self):
+ spec = self.spec
+ return [
+ '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'),
+ '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO')]
+
+ def setup_environment(self, spack_env, env):
+ env.prepend_path('PATH', join_path(self.prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/evieext/package.py b/var/spack/repos/builtin/packages/evieext/package.py
new file mode 100644
index 0000000000..afc0245f50
--- /dev/null
+++ b/var/spack/repos/builtin/packages/evieext/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Evieext(Package):
+ """Extended Visual Information Extension (XEVIE).
+
+ This extension defines a protocol for a client to determine information
+ about core X visuals beyond what the core protocol provides."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/evieproto"
+ url = "https://www.x.org/archive/individual/proto/evieext-1.1.1.tar.gz"
+
+ version('1.1.1', '018a7d24d0c7926d594246320bcb6a86')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch b/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch
new file mode 100644
index 0000000000..014381de88
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch
@@ -0,0 +1,9 @@
+diff --git a/cmake-exodus b/cmake-exodus
+index 67ccd34..9b749e3 100755
+--- a/cmake-exodus
++++ b/cmake-exodus
+@@ -1,3 +1,4 @@
++#!/bin/bash
+ EXTRA_ARGS=$@
+
+ ### The following assumes you are building in a subdirectory of ACCESS Root
diff --git a/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch b/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch
deleted file mode 100644
index 25355269ca..0000000000
--- a/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/cmake-exodus b/cmake-exodus
-index 787fd9d..ed073a2 100755
---- a/cmake-exodus
-+++ b/cmake-exodus
-@@ -1,4 +1,6 @@
--EXTRA_ARGS=$@
-+#!/bin/bash
-+
-+EXTRA_ARGS=-DSEACASProj_ENABLE_CXX11=OFF
-
- ### Change this to point to the compilers you want to use
- CC=gcc
diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py
index 5e9227af46..67024673b2 100644
--- a/var/spack/repos/builtin/packages/exodusii/package.py
+++ b/var/spack/repos/builtin/packages/exodusii/package.py
@@ -27,47 +27,60 @@ from spack import *
# TODO: Add support for a C++11 enabled installation that filters out the
# TODO: "C++11-Disabled" flag (but only if the spec compiler supports C++11).
-# TODO: Add support for parallel installation that uses MPI.
+# TODO: Use variant forwarding to forward the 'mpi' variant to the direct
+# TODO: dependencies 'hdf5' and 'netcdf'.
-# TODO: Create installation options for NetCDF that support larger page size
-# TODO: suggested by Exodus (see the repository "README" file).
class Exodusii(Package):
- """Exodus II is a C++/Fortran library developed to store and retrieve data for
- finite element analyses. It's used for preprocessing (problem definition),
- postprocessing (results visualization), and data transfer between codes.
- An Exodus II data file is a random access, machine independent, binary
- file that is written and read via C, C++, or Fortran API routines."""
+ """Exodus II is a C++/Fortran library developed to store and retrieve
+ data for finite element analyses. It's used for preprocessing
+ (problem definition), postprocessing (results visualization), and
+ data transfer between codes. An Exodus II data file is a random
+ access, machine independent, binary file that is written and read
+ via C, C++, or Fortran API routines.
+
+ """
homepage = "https://github.com/gsjaardema/seacas"
url = "https://github.com/gsjaardema/seacas/archive/master.zip"
- version('2016-02-08', git='https://github.com/gsjaardema/seacas.git', commit='dcf3529')
+ version('2016-08-09', git='https://github.com/gsjaardema/seacas.git', commit='2ffeb1b')
- # TODO: Make this a build dependency once build dependencies are supported
- # (see: https://github.com/LLNL/spack/pull/378).
- depends_on('cmake@2.8.7:')
- depends_on('hdf5~shared~mpi')
- depends_on('netcdf~mpi')
+ variant('mpi', default=True, description='Enables MPI parallelism.')
- patch('exodus-cmake.patch')
+ depends_on('cmake@2.8.11:', type='build')
+ depends_on('mpi', when='+mpi')
- def patch(self):
- ff = FileFilter('cmake-exodus')
+ # https://github.com/gsjaardema/seacas/blob/master/NetCDF-Mapping.md
+ depends_on('netcdf maxdims=65536 maxvars=524288')
+ depends_on('hdf5+shared')
- ff.filter('CMAKE_INSTALL_PREFIX:PATH=${ACCESS}',
- 'CMAKE_INSTALL_PREFIX:PATH=%s' % self.spec.prefix, string=True)
- ff.filter('NetCDF_DIR:PATH=${TPL}',
- 'NetCDF_DIR:PATH=%s' % self.spec['netcdf'].prefix, string=True)
- ff.filter('HDF5_ROOT:PATH=${TPL}',
- 'HDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix, string=True)
+ patch('cmake-exodus.patch')
def install(self, spec, prefix):
- mkdirp('build')
- cd('build')
+ cc_path = spec['mpi'].mpicc if '+mpi' in spec else self.compiler.cc
+ cxx_path = spec['mpi'].mpicxx if '+mpi' in spec else self.compiler.cxx
+
+ config_args = std_cmake_args[:]
+ config_args.extend([
+ # General Flags #
+ '-DSEACASProj_ENABLE_CXX11:BOOL=OFF',
+ '-DSEACASProj_ENABLE_Zoltan:BOOL=OFF',
+ '-DHDF5_ROOT:PATH={0}'.format(spec['hdf5'].prefix),
+ '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf'].prefix),
+
+ # MPI Flags #
+ '-DTPL_ENABLE_MPI={0}'.format('ON' if '+mpi' in spec else 'OFF'),
+ '-DCMAKE_C_COMPILER={0}'.format(cc_path),
+ '-DCMAKE_CXX_COMPILER={0}'.format(cxx_path),
+ ])
+
+ build_directory = join_path(self.stage.source_path, 'spack-build')
+ source_directory = self.stage.source_path
- cmake_exodus = Executable('../cmake-exodus')
- cmake_exodus()
+ with working_dir(build_directory, create=True):
+ mcmake = Executable(join_path(source_directory, 'cmake-exodus'))
+ mcmake(*config_args)
- make()
- make('install')
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/exonerate/package.py b/var/spack/repos/builtin/packages/exonerate/package.py
new file mode 100644
index 0000000000..7921e64058
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exonerate/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Exonerate(Package):
+ """Pairwise sequence alignment of DNA and proteins"""
+
+ homepage = "http://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate"
+ url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.2.0.tar.gz"
+
+ version('2.4.0', '126fbade003b80b663a1d530c56f1904')
+
+ depends_on('pkg-config', type="build")
+ depends_on('glib')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix), '--disable-debug',
+ '--disable-dependency-tracking')
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index 51e827b2c5..13ac816ea5 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -24,19 +24,10 @@
##############################################################################
from spack import *
-class Expat(Package):
- """<eXpat/> is an XML parser library written in C"""
- homepage = "http://expat.sourceforge.net/"
- url = "http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz"
-
- version('2.1.0', 'dd7dab7a5fea97d2a6a43f511449b7cd')
-
- depends_on('cmake')
- def install(self, spec, prefix):
-
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make('install')
+class Expat(AutotoolsPackage):
+ """Expat is an XML parser library written in C."""
+ homepage = "http://expat.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/expat/expat/2.2.0/expat-2.2.0.tar.bz2"
+ version('2.2.0', '2f47841c829facb346eb6e3fab5212e2')
diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py
index 84c410e4ba..cb20a8109e 100644
--- a/var/spack/repos/builtin/packages/extrae/package.py
+++ b/var/spack/repos/builtin/packages/extrae/package.py
@@ -25,7 +25,23 @@
from spack import *
# typical working line with extrae 3.0.1
-# ./configure --prefix=/usr/local --with-mpi=/usr/lib64/mpi/gcc/openmpi --with-unwind=/usr/local --with-papi=/usr --with-dwarf=/usr --with-elf=/usr --with-dyninst=/usr --with-binutils=/usr --with-xml-prefix=/usr --enable-openmp --enable-nanos --enable-pthread --disable-parallel-merge LDFLAGS=-pthread
+# ./configure
+# --prefix=/usr/local
+# --with-mpi=/usr/lib64/mpi/gcc/openmpi
+# --with-unwind=/usr/local
+# --with-papi=/usr
+# --with-dwarf=/usr
+# --with-elf=/usr
+# --with-dyninst=/usr
+# --with-binutils=/usr
+# --with-xml-prefix=/usr
+# --enable-openmp
+# --enable-nanos
+# --enable-pthread
+# --disable-parallel-merge
+#
+# LDFLAGS=-pthread
+
class Extrae(Package):
"""Extrae is the package devoted to generate tracefiles which can
@@ -37,8 +53,8 @@ class Extrae(Package):
programming models either alone or in conjunction with MPI :
OpenMP, CUDA, OpenCL, pthread, OmpSs"""
homepage = "http://www.bsc.es/computer-sciences/extrae"
- url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.0.1.tar.bz2"
- version('3.0.1', 'a6a8ca96cd877723cd8cc5df6bdb922b')
+ url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.3.0.tar.bz2"
+ version('3.3.0', 'f46e3f1a6086b5b3ac41c9585b42952d')
depends_on("mpi")
depends_on("dyninst")
@@ -46,6 +62,9 @@ class Extrae(Package):
depends_on("boost")
depends_on("libdwarf")
depends_on("papi")
+ depends_on("libelf")
+ depends_on("libxml2")
+ depends_on("binutils+libiberty")
def install(self, spec, prefix):
if 'openmpi' in spec:
@@ -55,16 +74,19 @@ class Extrae(Package):
elif 'mvapich2' in spec:
mpi = spec['mvapich2']
- configure("--prefix=%s" % prefix,
- "--with-mpi=%s" % mpi.prefix,
- "--with-unwind=%s" % spec['libunwind'].prefix,
- "--with-dyninst=%s" % spec['dyninst'].prefix,
- "--with-boost=%s" % spec['boost'].prefix,
- "--with-dwarf=%s" % spec['libdwarf'].prefix,
- "--with-papi=%s" % spec['papi'].prefix,
- "--with-dyninst-headers=%s" % spec['dyninst'].prefix.include,
- "--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib)
+ configure("--prefix=%s" % prefix,
+ "--with-mpi=%s" % mpi.prefix,
+ "--with-unwind=%s" % spec['libunwind'].prefix,
+ "--with-dyninst=%s" % spec['dyninst'].prefix,
+ "--with-boost=%s" % spec['boost'].prefix,
+ "--with-dwarf=%s" % spec['libdwarf'].prefix,
+ "--with-papi=%s" % spec['papi'].prefix,
+ "--with-dyninst-headers=%s" % spec[
+ 'dyninst'].prefix.include,
+ "--with-elf=%s" % spec['libelf'].prefix,
+ "--with-xml-prefix=%s" % spec['libxml2'].prefix,
+ "--with-binutils=%s" % spec['binutils'].prefix,
+ "--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib)
make()
make("install", parallel=False)
-
diff --git a/var/spack/repos/builtin/packages/exuberant-ctags/package.py b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
index c49d0624f6..10be30ab8b 100644
--- a/var/spack/repos/builtin/packages/exuberant-ctags/package.py
+++ b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class ExuberantCtags(Package):
"""The canonical ctags generator"""
homepage = "ctags.sourceforge.net"
diff --git a/var/spack/repos/builtin/packages/fastqc/fastqc.patch b/var/spack/repos/builtin/packages/fastqc/fastqc.patch
new file mode 100644
index 0000000000..a0a1155905
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastqc/fastqc.patch
@@ -0,0 +1,30 @@
+--- fastqc.orig 2015-11-20 09:25:00.000000000 +0000
++++ fastqc 2016-10-24 19:06:16.734000000 +0000
+@@ -38,12 +38,21 @@
+ $delimiter = ';';
+ }
+
+-if ($ENV{CLASSPATH}) {
+- $ENV{CLASSPATH} .= "$delimiter$RealBin$delimiter$RealBin/sam-1.103.jar$delimiter$RealBin/jbzip2-0.9.jar$delimiter$RealBin/cisd-jhdf5.jar";
+-}
+-else {
+- $ENV{CLASSPATH} = "$RealBin$delimiter$RealBin/sam-1.103.jar$delimiter$RealBin/jbzip2-0.9.jar$delimiter$RealBin/cisd-jhdf5.jar";
+-}
++# The lib dir is $RealBin/../lib
++# start with list of jars we need and prefix them with the lib dir
++# then stick CLASSPATH onto the front (empty or otherwise...)
++# then filter out anything that's empty (perhaps CLASSPATH...)
++# then join all the remainings bits with the delimiter.
++use File::Basename;
++use File::Spec::Functions;
++my $_lib = catfile(dirname($RealBin), 'lib');
++$ENV{CLASSPATH} =
++ join($delimiter,
++ grep {$_}
++ ($ENV{CLASSPATH},
++ $_lib,
++ map {"$_lib/$_"}
++ qw(sam-1.103.jar jbzip2-0.9.jar cisd-jhdf5.jar)));
+
+ my @java_args;
+ my @files;
diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py
new file mode 100644
index 0000000000..e2a1b54210
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastqc/package.py
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree, mkpath
+from distutils.file_util import copy_file
+
+
+class Fastqc(Package):
+ """A quality control tool for high throughput sequence data."""
+
+ homepage = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/"
+ url = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip"
+
+ version('0.11.5', '3524f101c0ab0bae77c7595983170a76')
+
+ depends_on('jdk', type='run')
+ depends_on('perl') # for fastqc "script", any perl will do
+
+ patch('fastqc.patch', level=0)
+
+ def install(self, spec, prefix):
+ mkpath(self.prefix.bin)
+ mkpath(self.prefix.lib)
+ copy_file('fastqc', self.prefix.bin)
+ for j in ['cisd-jhdf5.jar', 'jbzip2-0.9.jar', 'sam-1.103.jar']:
+ copy_file(j, self.prefix.lib)
+ for d in ['Configuration', 'net', 'org', 'Templates', 'uk']:
+ copy_tree(d, join_path(self.prefix.lib, d))
+ chmod = which('chmod')
+ chmod('+x', join_path(self.prefix.bin, 'fastqc'))
+
+ # In theory the 'run' dependency on 'jdk' above should take
+ # care of this for me. In practice, it does not.
+ def setup_environment(self, spack_env, env):
+ """Add <prefix> to the path; the package has a script at the
+ top level.
+ """
+ env.prepend_path('PATH', join_path(self.spec['jdk'].prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/fastx-toolkit/package.py b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
new file mode 100644
index 0000000000..04b4d24b39
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FastxToolkit(Package):
+ """The FASTX-Toolkit is a collection of command line tools for
+ Short-Reads FASTA/FASTQ files preprocessing."""
+
+ homepage = "http://hannonlab.cshl.edu/fastx_toolkit/"
+ url = "https://github.com/agordon/fastx_toolkit/releases/download/0.0.14/fastx_toolkit-0.0.14.tar.bz2"
+
+ version('0.0.14', 'bf1993c898626bb147de3d6695c20b40')
+
+ depends_on('libgtextutils')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch b/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch
new file mode 100644
index 0000000000..52e36ab00b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt 2016-08-16 02:30:13.466078087 +0200
++++ b/CMakeLists.txt 2016-08-16 02:30:36.879586772 +0200
+@@ -553,7 +553,7 @@
+ set(ENV{HDF5_ROOT} "$ENV{HDF5_DIR}")
+ endif()
+ set(HDF5_PREFER_PARALLEL TRUE)
+- find_package(HDF5)
++ find_package(HDF5 COMPONENTS C)
+ set_package_properties(HDF5 PROPERTIES TYPE OPTIONAL
+ DESCRIPTION "Hierarchical Data Format 5 (HDF5)"
+ URL "https://www.hdfgroup.org/HDF5")
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
new file mode 100644
index 0000000000..4be94a96b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -0,0 +1,198 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fenics(Package):
+ """FEniCS is organized as a collection of interoperable components
+ that together form the FEniCS Project. These components include
+ the problem-solving environment DOLFIN, the form compiler FFC, the
+ finite element tabulator FIAT, the just-in-time compiler Instant,
+ the code generation interface UFC, the form language UFL and a
+ range of additional components."""
+
+ homepage = "http://fenicsproject.org/"
+ url = "https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-1.6.0.tar.gz"
+
+ base_url = "https://bitbucket.org/fenics-project/{pkg}/downloads/{pkg}-{version}.tar.gz"
+
+ variant('hdf5', default=True, description='Compile with HDF5')
+ variant('parmetis', default=True, description='Compile with ParMETIS')
+ variant('scotch', default=True, description='Compile with Scotch')
+ variant('petsc', default=True, description='Compile with PETSc')
+ variant('slepc', default=True, description='Compile with SLEPc')
+ variant('trilinos', default=True, description='Compile with Trilinos')
+ variant('suite-sparse', default=True,
+ description='Compile with SuiteSparse solvers')
+ variant('vtk', default=False, description='Compile with VTK')
+ variant('qt', default=False, description='Compile with QT')
+ variant('mpi', default=True,
+ description='Enables the distributed memory support')
+ variant('openmp', default=True,
+ description='Enables the shared memory support')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+
+ # not part of spack list for now
+ # variant('petsc4py', default=True, description='Uses PETSc4py')
+ # variant('slepc4py', default=True, description='Uses SLEPc4py')
+ # variant('pastix', default=True, description='Compile with Pastix')
+
+ patch('petsc-3.7.patch', when='@1.6.1^petsc@3.7:')
+ patch('petsc-version-detection.patch', when='@:1.6.1')
+ patch('hdf5~cxx-detection.patch')
+
+ extends('python')
+
+ depends_on('eigen@3.2.0:', type='build')
+ depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('parmetis@4.0.2:^metis+real64', when='+parmetis')
+ depends_on('scotch~metis', when='+scotch~mpi')
+ depends_on('scotch+mpi~metis', when='+scotch+mpi')
+ depends_on('petsc@3.4:', when='+petsc')
+ depends_on('slepc@3.4:', when='+slepc')
+ depends_on('trilinos', when='+trilinos')
+ depends_on('vtk', when='+vtk')
+ depends_on('suite-sparse', when='+suite-sparse')
+ depends_on('qt', when='+qt')
+
+ depends_on('py-ply', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-sympy', type=('build', 'run'))
+ depends_on('swig@3.0.3:', type=('build', 'run'))
+ depends_on('cmake@2.8.12:', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-sphinx@1.0.1:', when='+doc', type='build')
+
+ releases = [
+ {
+ 'version': '2016.1.0',
+ 'md5': '92e8d00f6487a575987201f0b0d19173',
+ 'resources': {
+ 'ffc': '35457ae164e481ba5c9189ebae060a47',
+ 'fiat': 'ac0c49942831ee434301228842bcc280',
+ 'instant': '0e3dbb464c4d90d691f31f0fdd63d4f6',
+ 'ufl': '37433336e5c9b58d1d5ab4acca9104a7',
+ }
+ },
+ {
+ 'version': '1.6.0',
+ 'md5': '35cb4baf7ab4152a40fb7310b34d5800',
+ 'resources': {
+ 'ffc': '358faa3e9da62a1b1a717070217b793e',
+ 'fiat': 'f4509d05c911fd93cea8d288a78a6c6f',
+ 'instant': '5f2522eb032a5bebbad6597b6fe0732a',
+ 'ufl': 'c40c5f04eaa847377ab2323122284016',
+ }
+ },
+ {
+ 'version': '1.5.0',
+ 'md5': '9b589a3534299a5e6d22c13c5eb30bb8',
+ 'resources': {
+ 'ffc': '343f6d30e7e77d329a400fd8e73e0b63',
+ 'fiat': 'da3fa4dd8177bb251e7f68ec9c7cf6c5',
+ 'instant': 'b744023ded27ee9df4a8d8c6698c0d58',
+ 'ufl': '130d7829cf5a4bd5b52bf6d0955116fd',
+ }
+ },
+ ]
+
+ for release in releases:
+ version(release['version'], release['md5'], url=base_url.format(
+ pkg='dolfin', version=release['version']))
+ for name, md5 in release['resources'].items():
+ resource(name=name,
+ url=base_url.format(pkg=name, **release),
+ md5=md5,
+ destination='depends',
+ when='@{version}'.format(**release),
+ placement=name)
+
+ def cmake_is_on(self, option):
+ return 'ON' if option in self.spec else 'OFF'
+
+ def install(self, spec, prefix):
+ for package in ['ufl', 'ffc', 'fiat', 'instant']:
+ with working_dir(join_path('depends', package)):
+ setup_py('install', '--prefix=%s' % prefix)
+
+ cmake_args = [
+ '-DCMAKE_BUILD_TYPE:STRING={0}'.format(
+ 'Debug' if '+debug' in spec else 'RelWithDebInfo'),
+ '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
+ self.cmake_is_on('+shared')),
+ '-DDOLFIN_SKIP_BUILD_TESTS:BOOL=ON',
+ '-DDOLFIN_ENABLE_OPENMP:BOOL={0}'.format(
+ self.cmake_is_on('+openmp')),
+ '-DDOLFIN_ENABLE_CHOLMOD:BOOL={0}'.format(
+ self.cmake_is_on('suite-sparse')),
+ '-DDOLFIN_ENABLE_HDF5:BOOL={0}'.format(
+ self.cmake_is_on('hdf5')),
+ '-DDOLFIN_ENABLE_MPI:BOOL={0}'.format(
+ self.cmake_is_on('mpi')),
+ '-DDOLFIN_ENABLE_PARMETIS:BOOL={0}'.format(
+ self.cmake_is_on('parmetis')),
+ '-DDOLFIN_ENABLE_PASTIX:BOOL={0}'.format(
+ self.cmake_is_on('pastix')),
+ '-DDOLFIN_ENABLE_PETSC:BOOL={0}'.format(
+ self.cmake_is_on('petsc')),
+ '-DDOLFIN_ENABLE_PETSC4PY:BOOL={0}'.format(
+ self.cmake_is_on('py-petsc4py')),
+ '-DDOLFIN_ENABLE_PYTHON:BOOL={0}'.format(
+ self.cmake_is_on('python')),
+ '-DDOLFIN_ENABLE_QT:BOOL={0}'.format(
+ self.cmake_is_on('qt')),
+ '-DDOLFIN_ENABLE_SCOTCH:BOOL={0}'.format(
+ self.cmake_is_on('scotch')),
+ '-DDOLFIN_ENABLE_SLEPC:BOOL={0}'.format(
+ self.cmake_is_on('slepc')),
+ '-DDOLFIN_ENABLE_SLEPC4PY:BOOL={0}'.format(
+ self.cmake_is_on('py-slepc4py')),
+ '-DDOLFIN_ENABLE_SPHINX:BOOL={0}'.format(
+ self.cmake_is_on('py-sphinx')),
+ '-DDOLFIN_ENABLE_TRILINOS:BOOL={0}'.format(
+ self.cmake_is_on('trilinos')),
+ '-DDOLFIN_ENABLE_UMFPACK:BOOL={0}'.format(
+ self.cmake_is_on('suite-sparse')),
+ '-DDOLFIN_ENABLE_VTK:BOOL={0}'.format(
+ self.cmake_is_on('vtk')),
+ '-DDOLFIN_ENABLE_ZLIB:BOOL={0}'.format(
+ self.cmake_is_on('zlib')),
+ ]
+
+ cmake_args.extend(std_cmake_args)
+
+ with working_dir('build', create=True):
+ cmake('..', *cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/fenics/petsc-3.7.patch b/var/spack/repos/builtin/packages/fenics/petsc-3.7.patch
new file mode 100644
index 0000000000..c1ba5c4da6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/petsc-3.7.patch
@@ -0,0 +1,394 @@
+diff -Naur dolfin-1.6.0/dolfin/common/SubSystemsManager.cpp dolfin-1.6.0.new/dolfin/common/SubSystemsManager.cpp
+--- dolfin-1.6.0/dolfin/common/SubSystemsManager.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/common/SubSystemsManager.cpp 2016-06-26 23:42:56.391929550 +0200
+@@ -179,7 +179,7 @@
+ PetscInitialized(&is_initialized);
+ if (is_initialized)
+ {
+- PetscOptionsInsert(&argc, &argv, PETSC_NULL);
++ PetscOptionsInsert(NULL, &argc, &argv, PETSC_NULL);
+ }
+ else
+ {
+@@ -187,12 +187,12 @@
+ PetscInitializeNoArguments();
+
+ // Set options to avoid common failures with some 3rd party solvers
+- PetscOptionsSetValue("-mat_mumps_icntl_7", "0");
+- PetscOptionsSetValue("-mat_superlu_dist_colperm", "MMD_AT_PLUS_A");
++ PetscOptionsSetValue(NULL, "-mat_mumps_icntl_7", "0");
++ PetscOptionsSetValue(NULL, "-mat_superlu_dist_colperm", "MMD_AT_PLUS_A");
+
+ // Pass command line arguments to PETSc (will overwrite any
+ // default above)
+- PetscOptionsInsert(&argc, &argv, PETSC_NULL);
++ PetscOptionsInsert(NULL, &argc, &argv, PETSC_NULL);
+ }
+
+ // Set PETSc
+diff -Naur dolfin-1.6.0/dolfin/la/PETScKrylovSolver.cpp dolfin-1.6.0.new/dolfin/la/PETScKrylovSolver.cpp
+--- dolfin-1.6.0/dolfin/la/PETScKrylovSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/PETScKrylovSolver.cpp 2016-06-26 23:33:02.418351380 +0200
+@@ -564,6 +564,11 @@
+ return solve(x, b);
+ }
+ //-----------------------------------------------------------------------------
++PetscErrorCode PETScKrylovSolver::ksp_monitor_norm(KSP ksp, PetscInt n, PetscReal rnorm, void *vf)
++{
++ KSPMonitorTrueResidualNorm(ksp, n, rnorm, static_cast<PetscViewerAndFormat *>(vf));
++}
++//-----------------------------------------------------------------------------
+ void PETScKrylovSolver::set_petsc_ksp_options()
+ {
+ PetscErrorCode ierr;
+@@ -585,7 +590,8 @@
+ const bool monitor_convergence = parameters["monitor_convergence"];
+ if (monitor_convergence)
+ {
+- ierr = KSPMonitorSet(_ksp, KSPMonitorTrueResidualNorm, 0, 0);
++ PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_DEFAULT, &_vf);
++ ierr = KSPMonitorSet(_ksp, ksp_monitor_norm, _vf, 0);
+ if (ierr != 0) petsc_error(ierr, __FILE__, "KSPMonitorSet");
+ }
+
+diff -Naur dolfin-1.6.0/dolfin/la/PETScKrylovSolver.h dolfin-1.6.0.new/dolfin/la/PETScKrylovSolver.h
+--- dolfin-1.6.0/dolfin/la/PETScKrylovSolver.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/PETScKrylovSolver.h 2016-06-26 23:19:40.767042975 +0200
+@@ -179,6 +179,12 @@
+ // PETSc solver pointer
+ KSP _ksp;
+
++ // viewer for monitoring
++ PetscViewerAndFormat* _vf;
++
++ // monitoring function
++ static PetscErrorCode ksp_monitor_norm(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx);
++
+ // DOLFIN-defined PETScUserPreconditioner
+ PETScUserPreconditioner* pc_dolfin;
+
+diff -Naur dolfin-1.6.0/dolfin/la/PETScLUSolver.cpp dolfin-1.6.0.new/dolfin/la/PETScLUSolver.cpp
+--- dolfin-1.6.0/dolfin/la/PETScLUSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/PETScLUSolver.cpp 2016-06-26 23:13:36.903732301 +0200
+@@ -246,14 +246,14 @@
+ if (parameters["num_threads"].is_set())
+ {
+ // Use number of threads specified for LU solver
+- ierr = PetscOptionsSetValue("-mat_pastix_threadnbr",
++ ierr = PetscOptionsSetValue(NULL, "-mat_pastix_threadnbr",
+ parameters["num_threads"].value_str().c_str());
+ if (ierr != 0) petsc_error(ierr, __FILE__, "PetscOptionsSetValue");
+ }
+ else
+ {
+ // Use global number of threads
+- ierr = PetscOptionsSetValue("-mat_pastix_threadnbr",
++ ierr = PetscOptionsSetValue(NULL, "-mat_pastix_threadnbr",
+ dolfin::parameters["num_threads"].value_str().c_str());
+ if (ierr != 0) petsc_error(ierr, __FILE__, "PetscOptionsSetValue");
+ }
+diff -Naur dolfin-1.6.0/dolfin/la/PETScOptions.cpp dolfin-1.6.0.new/dolfin/la/PETScOptions.cpp
+--- dolfin-1.6.0/dolfin/la/PETScOptions.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/PETScOptions.cpp 2016-06-26 23:37:58.613121118 +0200
+@@ -54,7 +54,7 @@
+ {
+ SubSystemsManager::init_petsc();
+ PetscErrorCode ierr;
+- ierr = PetscOptionsClearValue(option.c_str());
++ ierr = PetscOptionsClearValue(NULL, option.c_str());
+ if (ierr != 0)
+ {
+ dolfin_error("PETScOptions.cpp",
+diff -Naur dolfin-1.6.0/dolfin/la/PETScOptions.h dolfin-1.6.0.new/dolfin/la/PETScOptions.h
+--- dolfin-1.6.0/dolfin/la/PETScOptions.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/PETScOptions.h 2016-06-26 23:37:54.352023709 +0200
+@@ -65,7 +65,7 @@
+
+ PetscErrorCode ierr;
+ std::string _option = "-" + option;
+- ierr = PetscOptionsSetValue(_option.c_str(),
++ ierr = PetscOptionsSetValue(NULL, _option.c_str(),
+ boost::lexical_cast<std::string>(value).c_str());
+ if (ierr != 0)
+ {
+diff -Naur dolfin-1.6.0/dolfin/la/SLEPcEigenSolver.cpp dolfin-1.6.0.new/dolfin/la/SLEPcEigenSolver.cpp
+--- dolfin-1.6.0/dolfin/la/SLEPcEigenSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/SLEPcEigenSolver.cpp 2016-06-26 23:35:25.930631132 +0200
+@@ -99,6 +99,19 @@
+ solve(_matA->size(0));
+ }
+ //-----------------------------------------------------------------------------
++PetscErrorCode SLEPcEigenSolver::eps_monitor(EPS eps, PetscInt its, PetscInt nconv, PetscScalar* eigr,
++ PetscScalar* eigi, PetscReal* errest,
++ PetscInt nest, void *vf)
++{
++ EPSMonitorAll(eps, its, nconv, eigr, eigi, errest, nest,
++ static_cast<PetscViewerAndFormat *>(vf));
++}
++//-----------------------------------------------------------------------------
++PetscErrorCode SLEPcEigenSolver::ksp_monitor(KSP ksp, PetscInt n, PetscReal rnorm, void *vf)
++{
++ KSPMonitorDefault(ksp, n, rnorm, static_cast<PetscViewerAndFormat *>(vf));
++}
++//-----------------------------------------------------------------------------
+ void SLEPcEigenSolver::solve(std::size_t n)
+ {
+ dolfin_assert(_matA);
+@@ -139,10 +152,11 @@
+ {
+ KSP ksp;
+ ST st;
+- EPSMonitorSet(_eps, EPSMonitorAll, NULL, NULL);
++ PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_DEFAULT, &_vf);
++ EPSMonitorSet(_eps, eps_monitor, _vf, NULL);
+ EPSGetST(_eps, &st);
+ STGetKSP(st, &ksp);
+- KSPMonitorSet(ksp, KSPMonitorDefault, NULL, NULL);
++ KSPMonitorSet(ksp, ksp_monitor, _vf, NULL);
+ EPSView(_eps, PETSC_VIEWER_STDOUT_SELF);
+ }
+
+diff -Naur dolfin-1.6.0/dolfin/la/SLEPcEigenSolver.h dolfin-1.6.0.new/dolfin/la/SLEPcEigenSolver.h
+--- dolfin-1.6.0/dolfin/la/SLEPcEigenSolver.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/la/SLEPcEigenSolver.h 2016-06-26 23:36:08.784610612 +0200
+@@ -231,6 +231,11 @@
+ // SLEPc solver pointer
+ EPS _eps;
+
++ PetscViewerAndFormat* _vf;
++ static PetscErrorCode eps_monitor(EPS eps, int its, int nconv, PetscScalar *eigr,
++ PetscScalar *eigi, PetscReal* errest,
++ int nest, void *mctx);
++ static PetscErrorCode ksp_monitor(KSP ksp, PetscInt n, PetscReal rnorm, void *vf);
+ };
+
+ }
+diff -Naur dolfin-1.6.0/dolfin/nls/PETScSNESSolver.cpp dolfin-1.6.0.new/dolfin/nls/PETScSNESSolver.cpp
+--- dolfin-1.6.0/dolfin/nls/PETScSNESSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/PETScSNESSolver.cpp 2016-06-26 23:19:40.166029256 +0200
+@@ -195,6 +195,15 @@
+ return this->solve(nonlinear_problem, x);
+ }
+ //-----------------------------------------------------------------------------
++PetscErrorCode
++PETScSNESSolver::snes_monitor(SNES snes, PetscInt its,
++ PetscReal fgnorm, void *vf)
++{
++ PetscViewerAndFormat * _vf = static_cast<PetscViewerAndFormat *>(vf);
++ SNESMonitorDefault(snes, its, fgnorm, _vf);
++ return(0);
++}
++//-----------------------------------------------------------------------------
+ void
+ PETScSNESSolver::init(NonlinearProblem& nonlinear_problem,
+ GenericVector& x)
+@@ -237,9 +246,11 @@
+ }
+
+ // Set some options from the parameters
+- if (report)
+- SNESMonitorSet(_snes, SNESMonitorDefault, PETSC_NULL, PETSC_NULL);
+-
++ if (report) {
++ PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_DEFAULT, &_snes_ctx.vf);
++ SNESMonitorSet(_snes, PETScSNESSolver::snes_monitor, _snes_ctx.vf, PETSC_NULL);
++ }
++
+ // Set the bounds, if any
+ set_bounds(x);
+
+@@ -293,8 +304,8 @@
+ SNESGetLineSearch(_snes, &linesearch);
+ #endif
+
+- if (report)
+- SNESLineSearchSetMonitor(linesearch, PETSC_TRUE);
++ // if (report)
++ // SNESLineSearchSetMonitor(linesearch, PETSC_TRUE);
+ const std::string line_search_type = std::string(parameters["line_search"]);
+ SNESLineSearchSetType(linesearch, line_search_type.c_str());
+
+@@ -466,6 +477,24 @@
+ }
+ #endif
+ //-----------------------------------------------------------------------------
++PetscErrorCode
++PETScSNESSolver::ksp_monitor(KSP ksp, PetscInt n,
++ PetscReal rnorm, void *vf)
++{
++ PetscViewerAndFormat * _vf = static_cast<PetscViewerAndFormat *>(vf);
++ KSPMonitorDefault(ksp, n, rnorm, _vf);
++ return(0);
++}
++//-----------------------------------------------------------------------------
++PetscErrorCode
++PETScSNESSolver::ksp_monitor_norm(KSP ksp, PetscInt n,
++ PetscReal rnorm, void *vf)
++{
++ PetscViewerAndFormat * _vf = static_cast<PetscViewerAndFormat *>(vf);
++ KSPMonitorTrueResidualNorm(ksp, n, rnorm, _vf);
++ return(0);
++}
++//-----------------------------------------------------------------------------
+ void PETScSNESSolver::set_linear_solver_parameters()
+ {
+ KSP ksp;
+@@ -482,7 +511,7 @@
+ PetscObjectGetComm((PetscObject)_snes, &comm);
+
+ if (parameters["report"])
+- KSPMonitorSet(ksp, KSPMonitorDefault, PETSC_NULL, PETSC_NULL);
++ KSPMonitorSet(ksp, PETScSNESSolver::ksp_monitor, _snes_ctx.vf, PETSC_NULL);
+
+ const std::string linear_solver = parameters["linear_solver"];
+ const std::string preconditioner = parameters["preconditioner"];
+@@ -518,7 +547,7 @@
+ KSPSetInitialGuessNonzero(ksp, PETSC_FALSE);
+
+ if (krylov_parameters["monitor_convergence"])
+- KSPMonitorSet(ksp, KSPMonitorTrueResidualNorm, 0, 0);
++ KSPMonitorSet(ksp, PETScSNESSolver::ksp_monitor_norm, _snes_ctx.vf, 0);
+
+ // Set tolerances
+ const int max_iters = krylov_parameters["maximum_iterations"];
+diff -Naur dolfin-1.6.0/dolfin/nls/PETScSNESSolver.h dolfin-1.6.0.new/dolfin/nls/PETScSNESSolver.h
+--- dolfin-1.6.0/dolfin/nls/PETScSNESSolver.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/PETScSNESSolver.h 2016-06-26 22:31:21.554129282 +0200
+@@ -24,6 +24,7 @@
+
+ #include <map>
+ #include <petscsnes.h>
++#include <petscviewer.h>
+ #include <memory>
+ #include <dolfin/nls/NewtonSolver.h>
+ #include <dolfin/parameter/Parameters.h>
+@@ -124,8 +125,15 @@
+ Vec f_tmp;
+ const PETScVector* xl;
+ const PETScVector* xu;
++ PetscViewerAndFormat* vf;
+ };
+
++
++ // monitoring functions
++ static PetscErrorCode snes_monitor(SNES snes, PetscInt its, PetscReal fgnorm, void* ctx);
++ static PetscErrorCode ksp_monitor(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx);
++ static PetscErrorCode ksp_monitor_norm(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx);
++
+ // PETSc solver pointer
+ SNES _snes;
+
+diff -Naur dolfin-1.6.0/dolfin/nls/PETScTAOSolver.cpp dolfin-1.6.0.new/dolfin/nls/PETScTAOSolver.cpp
+--- dolfin-1.6.0/dolfin/nls/PETScTAOSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/PETScTAOSolver.cpp 2016-06-27 19:14:47.367885081 +0200
+@@ -186,6 +186,15 @@
+ init(optimisation_problem, x.down_cast<PETScVector>(), lb, ub);
+ }
+ //-----------------------------------------------------------------------------
++PetscErrorCode
++PETScTAOSolver::ksp_monitor_norm(KSP ksp, PetscInt n,
++ PetscReal rnorm, void * vf)
++{
++ PetscViewerAndFormat * _vf = static_cast<PetscViewerAndFormat *>(vf);
++ KSPMonitorTrueResidualNorm(ksp, n, rnorm, _vf);
++ return(0);
++}
++//-----------------------------------------------------------------------------
+ void PETScTAOSolver::init(OptimisationProblem& optimisation_problem,
+ PETScVector& x,
+ const PETScVector& lb,
+@@ -365,9 +374,7 @@
+ set_tao(parameters["method"]);
+
+ // Set tolerances
+- TaoSetTolerances(_tao, parameters["function_absolute_tol"],
+- parameters["function_relative_tol"],
+- parameters["gradient_absolute_tol"],
++ TaoSetTolerances(_tao, parameters["gradient_absolute_tol"],
+ parameters["gradient_relative_tol"],
+ parameters["gradient_t_tol"]);
+
+@@ -490,8 +497,10 @@
+ KSPSetInitialGuessNonzero(ksp, PETSC_FALSE);
+
+ // KSP monitor
+- if (krylov_parameters["monitor_convergence"])
+- KSPMonitorSet(ksp, KSPMonitorTrueResidualNorm, 0, 0);
++ if (krylov_parameters["monitor_convergence"]) {
++ PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_DEFAULT, &vf);
++ KSPMonitorSet(ksp, ksp_monitor_norm, vf, 0);
++ }
+
+ // Get integer tolerances (to take care of casting to PetscInt)
+ const int max_iter = krylov_parameters["maximum_iterations"];
+diff -Naur dolfin-1.6.0/dolfin/nls/PETScTAOSolver.h dolfin-1.6.0.new/dolfin/nls/PETScTAOSolver.h
+--- dolfin-1.6.0/dolfin/nls/PETScTAOSolver.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/PETScTAOSolver.h 2016-06-27 19:08:00.634361160 +0200
+@@ -146,6 +146,10 @@
+ // TAO pointer
+ Tao _tao;
+
++ // monitoring functions
++ PetscViewerAndFormat* vf;
++ static PetscErrorCode ksp_monitor_norm(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx);
++
+ // Update parameters when tao/ksp/pc_types are explictly given
+ void update_parameters(const std::string tao_type,
+ const std::string ksp_type,
+diff -Naur dolfin-1.6.0/dolfin/nls/TAOLinearBoundSolver.cpp dolfin-1.6.0.new/dolfin/nls/TAOLinearBoundSolver.cpp
+--- dolfin-1.6.0/dolfin/nls/TAOLinearBoundSolver.cpp 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/TAOLinearBoundSolver.cpp 2016-06-27 19:17:10.390216576 +0200
+@@ -313,9 +313,7 @@
+ dolfin_assert(_tao);
+
+ // Set tolerances
+- TaoSetTolerances(_tao, parameters["function_absolute_tol"],
+- parameters["function_relative_tol"],
+- parameters["gradient_absolute_tol"],
++ TaoSetTolerances(_tao, parameters["gradient_absolute_tol"],
+ parameters["gradient_relative_tol"],
+ parameters["gradient_t_tol"]);
+
+@@ -340,6 +338,15 @@
+ set_solver(method);
+ }
+ //-----------------------------------------------------------------------------
++PetscErrorCode
++TAOLinearBoundSolver::ksp_monitor_norm(KSP ksp, PetscInt n,
++ PetscReal rnorm, void * vf)
++{
++ PetscViewerAndFormat * _vf = static_cast<PetscViewerAndFormat *>(vf);
++ KSPMonitorTrueResidualNorm(ksp, n, rnorm, _vf);
++ return(0);
++}
++//-----------------------------------------------------------------------------
+ void TAOLinearBoundSolver::set_ksp_options()
+ {
+ dolfin_assert(_tao);
+@@ -360,8 +367,10 @@
+ else
+ KSPSetInitialGuessNonzero(ksp, PETSC_FALSE);
+
+- if (krylov_parameters["monitor_convergence"])
+- KSPMonitorSet(ksp, KSPMonitorTrueResidualNorm, 0, 0);
++ if (krylov_parameters["monitor_convergence"]) {
++ PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_DEFAULT, &vf);
++ KSPMonitorSet(ksp, ksp_monitor_norm, vf, 0);
++ }
+
+ // Set tolerances
+ const int max_ksp_it = krylov_parameters["maximum_iterations"];
+diff -Naur dolfin-1.6.0/dolfin/nls/TAOLinearBoundSolver.h dolfin-1.6.0.new/dolfin/nls/TAOLinearBoundSolver.h
+--- dolfin-1.6.0/dolfin/nls/TAOLinearBoundSolver.h 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0.new/dolfin/nls/TAOLinearBoundSolver.h 2016-06-27 19:08:09.157561005 +0200
+@@ -174,6 +174,10 @@
+ // Tao solver pointer
+ Tao _tao;
+
++ // monitoring functions
++ PetscViewerAndFormat* vf;
++ static PetscErrorCode ksp_monitor_norm(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx);
++
+ // Petsc preconditioner
+ std::shared_ptr<PETScPreconditioner> preconditioner;
+
diff --git a/var/spack/repos/builtin/packages/fenics/petsc-version-detection.patch b/var/spack/repos/builtin/packages/fenics/petsc-version-detection.patch
new file mode 100644
index 0000000000..1429cd7bc6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/petsc-version-detection.patch
@@ -0,0 +1,39 @@
+--- dolfin-1.6.0.orig/cmake/modules/FindPETSc.cmake 2015-07-28 17:05:55.000000000 +0200
++++ dolfin-1.6.0/cmake/modules/FindPETSc.cmake 2016-06-27 17:16:02.484402705 +0200
+@@ -207,13 +207,7 @@
+
+ endif()
+
+-# Build PETSc test program
+-if (DOLFIN_SKIP_BUILD_TESTS)
+- set(PETSC_TEST_RUNS TRUE)
+- set(PETSC_VERSION "UNKNOWN")
+- set(PETSC_VERSION_OK TRUE)
+-elseif (FOUND_PETSC_CONF)
+-
++if (FOUND_PETSC_CONF)
+ # Set flags for building test program
+ set(CMAKE_REQUIRED_INCLUDES ${PETSC_INCLUDE_DIRS})
+ set(CMAKE_REQUIRED_LIBRARIES ${PETSC_LIBRARIES})
+@@ -271,7 +265,10 @@
+ set(PETSC_VERSION_OK TRUE)
+ endif()
+ mark_as_advanced(PETSC_VERSION_OK)
++endif()
+
++ # Build PETSc test program
++if (NOT DOLFIN_SKIP_BUILD_TESTS AND FOUND_PETSC_CONF)
+ # Run PETSc test program
+ set(PETSC_TEST_LIB_CPP
+ "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/petsc_test_lib.cpp")
+@@ -359,7 +356,9 @@
+ else()
+ message(STATUS "PETSc configured without Cusp support")
+ endif()
+-
++else()
++ set(PETSC_TEST_RUNS TRUE)
++
+ endif()
+
+ # Check sizeof(PetscInt)
diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py
new file mode 100644
index 0000000000..15ddfcee16
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ferret/package.py
@@ -0,0 +1,103 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+import os
+
+
+class Ferret(Package):
+ """Ferret is an interactive computer visualization and analysis environment
+ designed to meet the needs of oceanographers and meteorologists
+ analyzing large and complex gridded data sets."""
+ homepage = "http://ferret.noaa.gov/Ferret/"
+ url = "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.tar.gz"
+
+ version('6.96', '51722027c864369f41bab5751dfff8cc',
+ url="ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.tar.gz")
+
+ depends_on("hdf5~mpi~fortran")
+ depends_on("netcdf~mpi")
+ depends_on("netcdf-fortran")
+ depends_on("readline")
+ depends_on("zlib")
+
+ def patch(self):
+ hdf5_prefix = self.spec['hdf5'].prefix
+ netcdff_prefix = self.spec['netcdf-fortran'].prefix
+ readline_prefix = self.spec['readline'].prefix
+ libz_prefix = self.spec['zlib'].prefix
+
+ filter_file(r'^BUILDTYPE.+',
+ 'BUILDTYPE = x86_64-linux',
+ 'FERRET/site_specific.mk')
+ filter_file(r'^INSTALL_FER_DIR.+',
+ 'INSTALL_FER_DIR = %s' % self.spec.prefix,
+ 'FERRET/site_specific.mk')
+ filter_file(r'^HDF5_DIR.+',
+ 'HDF5_DIR = %s' % hdf5_prefix,
+ 'FERRET/site_specific.mk')
+ filter_file(r'^NETCDF4_DIR.+',
+ 'NETCDF4_DIR = %s' % netcdff_prefix,
+ 'FERRET/site_specific.mk')
+ filter_file(r'^READLINE_DIR.+',
+ 'READLINE_DIR = %s' % readline_prefix,
+ 'FERRET/site_specific.mk')
+ filter_file(r'^LIBZ_DIR.+',
+ 'LIBZ_DIR = %s' % libz_prefix,
+ 'FERRET/site_specific.mk')
+ filter_file(r'^JAVA_HOME.+',
+ ' ',
+ 'FERRET/site_specific.mk')
+ filter_file(r'-lm',
+ '-lgfortran -lm',
+ 'FERRET/platform_specific.mk.x86_64-linux')
+
+ def install(self, spec, prefix):
+ hdf5_prefix = spec['hdf5'].prefix
+ netcdff_prefix = spec['netcdf-fortran'].prefix
+ netcdf_prefix = spec['netcdf'].prefix
+ libz_prefix = spec['zlib'].prefix
+ ln = which('ln')
+ ln('-sf',
+ hdf5_prefix + '/lib',
+ hdf5_prefix + '/lib64')
+ ln('-sf',
+ netcdff_prefix + '/lib',
+ netcdff_prefix + '/lib64')
+ ln('-sf',
+ netcdf_prefix + '/lib/libnetcdf.a',
+ netcdff_prefix + '/lib/libnetcdf.a')
+ ln('-sf',
+ netcdf_prefix + '/lib/libnetcdf.la',
+ netcdff_prefix + '/lib/libnetcdf.la')
+ ln('-sf',
+ libz_prefix + '/lib',
+ libz_prefix + '/lib64')
+ os.environ['LDFLAGS'] = '-lquadmath'
+ with working_dir('FERRET', create=False):
+ os.environ['LD_X11'] = '-L/usr/lib/X11 -lX11'
+ os.environ['HOSTTYPE'] = 'x86_64-linux'
+ make(parallel=False)
+ make("install")
diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py
index 434aeea616..838f6ff744 100644
--- a/var/spack/repos/builtin/packages/fftw/package.py
+++ b/var/spack/repos/builtin/packages/fftw/package.py
@@ -22,63 +22,94 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
-
from spack import *
class Fftw(Package):
- """
- FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of
- arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine
- transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for
- most applications.
- """
+ """FFTW is a C subroutine library for computing the discrete Fourier
+ transform (DFT) in one or more dimensions, of arbitrary input
+ size, and of both real and complex data (as well as of even/odd
+ data, i.e. the discrete cosine/sine transforms or DCT/DST). We
+ believe that FFTW, which is free software, should become the FFT
+ library of choice for most applications."""
+
homepage = "http://www.fftw.org"
url = "http://www.fftw.org/fftw-3.3.4.tar.gz"
+ version('3.3.5', '6cc08a3b9c7ee06fdd5b9eb02e06f569')
version('3.3.4', '2edab8c06b24feeb3b82bbb3ebf3e7b3')
- variant('float', default=True, description='Produces a single precision version of the library')
- variant('long_double', default=True, description='Produces a long double precision version of the library')
- variant('quad', default=False, description='Produces a quad precision version of the library (works only with GCC and libquadmath)')
+ patch('pfft-3.3.5.patch', when="@3.3.5+pfft_patches", level=0)
+ patch('pfft-3.3.4.patch', when="@3.3.4+pfft_patches", level=0)
+
+ variant(
+ 'float', default=True,
+ description='Produces a single precision version of the library')
+ variant(
+ 'long_double', default=True,
+ description='Produces a long double precision version of the library')
+ variant(
+ 'quad', default=False,
+ description='Produces a quad precision version of the library '
+ '(works only with GCC and libquadmath)')
variant('openmp', default=False, description="Enable OpenMP support.")
- variant('mpi', default=False, description='Activate MPI support')
+ variant('mpi', default=True, description='Activate MPI support')
+ variant(
+ 'pfft_patches', default=False,
+ description='Add extra transpose functions for PFFT compatibility')
depends_on('mpi', when='+mpi')
+ depends_on('automake', type='build', when='+pfft_patches')
+ depends_on('autoconf', type='build', when='+pfft_patches')
- # TODO : add support for architecture specific optimizations as soon as targets are supported
+ # TODO : add support for architecture specific optimizations as soon as
+ # targets are supported
def install(self, spec, prefix):
- options = ['--prefix=%s' % prefix,
- '--enable-shared',
- '--enable-threads']
- # Add support for OpenMP
+ options = [
+ '--prefix={0}'.format(prefix),
+ '--enable-shared',
+ '--enable-threads'
+ ]
+
+ # Add support for OpenMP
if '+openmp' in spec:
# Note: Apple's Clang does not support OpenMP.
if spec.satisfies('%clang'):
- ver = str(self.compiler.version)
- if ver.endswith('-apple'):
- raise InstallError("Apple's clang does not support OpenMP")
+ ver = str(self.compiler.version)
+ if ver.endswith('-apple'):
+ raise InstallError("Apple's clang does not support OpenMP")
options.append('--enable-openmp')
if not self.compiler.f77 or not self.compiler.fc:
options.append("--disable-fortran")
if '+mpi' in spec:
options.append('--enable-mpi')
+ if '+pfft_patches' in spec:
+ autoreconf = which('autoreconf')
+ autoreconf('-ifv')
+
configure(*options)
make()
+ if self.run_tests:
+ make("check")
make("install")
if '+float' in spec:
configure('--enable-float', *options)
make()
+ if self.run_tests:
+ make("check")
make("install")
if '+long_double' in spec:
configure('--enable-long-double', *options)
make()
+ if self.run_tests:
+ make("check")
make("install")
if '+quad' in spec:
configure('--enable-quad-precision', *options)
make()
+ if self.run_tests:
+ make("check")
make("install")
diff --git a/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch b/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch
new file mode 100644
index 0000000000..4740a60ae4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch
@@ -0,0 +1,865 @@
+--- mpi/conf.c 2014-03-04 19:41:03.000000000 +0100
++++ mpi/conf.c 2015-09-05 05:53:19.085516467 +0200
+@@ -29,6 +29,8 @@ static const solvtab s =
+ SOLVTAB(XM(transpose_pairwise_register)),
+ SOLVTAB(XM(transpose_alltoall_register)),
+ SOLVTAB(XM(transpose_recurse_register)),
++ SOLVTAB(XM(transpose_pairwise_transposed_register)),
++ SOLVTAB(XM(transpose_alltoall_transposed_register)),
+ SOLVTAB(XM(dft_rank_geq2_register)),
+ SOLVTAB(XM(dft_rank_geq2_transposed_register)),
+ SOLVTAB(XM(dft_serial_register)),
+
+--- mpi/Makefile.am 2013-03-18 13:10:45.000000000 +0100
++++ mpi/Makefile.am 2015-09-05 05:53:19.084516437 +0200
+@@ -16,6 +16,7 @@ BUILT_SOURCES = fftw3-mpi.f03.in fftw3-m
+ CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03
+
+ TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h
++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c
+ DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h
+ RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h
+ RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h
+
+--- mpi/mpi-transpose.h 2014-03-04 19:41:03.000000000 +0100
++++ mpi/mpi-transpose.h 2015-09-05 05:53:19.085516467 +0200
+@@ -59,3 +59,5 @@ int XM(mkplans_posttranspose)(const prob
+ void XM(transpose_pairwise_register)(planner *p);
+ void XM(transpose_alltoall_register)(planner *p);
+ void XM(transpose_recurse_register)(planner *p);
++void XM(transpose_pairwise_transposed_register)(planner *p);
++void XM(transpose_alltoall_transposed_register)(planner *p);
+
+--- mpi/transpose-alltoall-transposed.c 1970-01-01 01:00:00.000000000 +0100
++++ mpi/transpose-alltoall-transposed.c 2015-09-05 05:53:19.085516467 +0200
+@@ -0,0 +1,280 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* plans for distributed out-of-place transpose using MPI_Alltoall,
++ and which destroy the input array (also if TRANSPOSED_IN is used) */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT,
++ which makes the first transpose out-of-place
++ but costs an extra copy and requires us
++ to destroy the input */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++
++ MPI_Comm comm;
++ int *send_block_sizes, *send_block_offsets;
++ int *recv_block_sizes, *recv_block_offsets;
++
++ INT rest_Ioff, rest_Ooff;
++
++ int equal_blocks;
++} P;
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ /* in contrast to transpose-alltoall this algorithm can not preserve the input,
++ * since we need at least one transpose before the (out-of-place) Alltoall */
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ return (1
++ && p->I != p->O
++ && (!NO_DESTROY_INPUTP(plnr))
++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out)
++ && ONLY_TRANSPOSEDP(p->flags)
++ );
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->equal_blocks ? "/e" : "",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ R *O;
++ int *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes;
++ int equal_blocks = 1;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */
++ if (ego->copy_transposed_out) {
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_1d)
++ (bt * p->nx * vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++ else /* first transpose is in-place */
++ O = p->I;
++ }
++ else { /* transpose nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ /* Compute sizes/offsets of blocks to send for all-to-all command. */
++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++ if (db != p->block || dbt != p->tblock)
++ equal_blocks = 0;
++
++ /* MPI requires type "int" here; apparently it
++ has no 64-bit API? Grrr. */
++ sbs[pe] = (int) (b * dbt * vn);
++ sbo[pe] = (int) (pe * (b * p->tblock) * vn);
++ rbs[pe] = (int) (db * bt * vn);
++ rbo[pe] = (int) (pe * (p->block * bt) * vn);
++ }
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++ pln->equal_blocks = equal_blocks;
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int copy_transposed_out)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->copy_transposed_out = copy_transposed_out;
++ return &(slv->super);
++}
++
++void XM(transpose_alltoall_transposed_register)(planner *p)
++{
++ int cto;
++ for (cto = 0; cto <= 1; ++cto)
++ REGISTER_SOLVER(p, mksolver(cto));
++}
+
+--- mpi/transpose-pairwise.c 2014-03-04 19:41:03.000000000 +0100
++++ mpi/transpose-pairwise.c 2015-09-05 06:00:05.715433709 +0200
+@@ -53,7 +53,6 @@ static void transpose_chunks(int *sched,
+ {
+ if (sched) {
+ int i;
+- MPI_Status status;
+
+ /* TODO: explore non-synchronous send/recv? */
+
+@@ -74,7 +73,7 @@ static void transpose_chunks(int *sched,
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0xffff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+
+@@ -92,7 +91,7 @@ static void transpose_chunks(int *sched,
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0xffff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+ }
+@@ -350,6 +349,7 @@ nada:
+ X(plan_destroy_internal)(*cld3);
+ X(plan_destroy_internal)(*cld2rest);
+ X(plan_destroy_internal)(*cld2);
++ *cld2 = *cld2rest = *cld3 = NULL;
+ return 0;
+ }
+
+--- mpi/transpose-pairwise-transposed.c 1970-01-01 01:00:00.000000000 +0100
++++ mpi/transpose-pairwise-transposed.c 2015-09-05 06:00:07.280481042 +0200
+@@ -0,0 +1,510 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* Distributed transposes using a sequence of carefully scheduled
++ pairwise exchanges. This has the advantage that it can be done
++ in-place, or out-of-place while preserving the input, using buffer
++ space proportional to the local size divided by the number of
++ processes (i.e. to the total array size divided by the number of
++ processes squared). */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++ INT rest_Ioff, rest_Ooff;
++
++ int n_pes, my_pe, *sched;
++ INT *send_block_sizes, *send_block_offsets;
++ INT *recv_block_sizes, *recv_block_offsets;
++ MPI_Comm comm;
++ int preserve_input;
++} P;
++
++static void transpose_chunks(int *sched, int n_pes, int my_pe,
++ INT *sbs, INT *sbo, INT *rbs, INT *rbo,
++ MPI_Comm comm,
++ R *I, R *O)
++{
++ if (sched) {
++ int i;
++
++ /* TODO: explore non-synchronous send/recv? */
++
++ if (I == O) {
++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS);
++
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe) {
++ if (rbo[pe] != sbo[pe])
++ memmove(O + rbo[pe], O + sbo[pe],
++ sbs[pe] * sizeof(R));
++ }
++ else {
++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R));
++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++
++ X(ifree)(buf);
++ }
++ else { /* I != O */
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe)
++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R));
++ else
++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++ }
++}
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ if(ego->preserve_input) I = O;
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, I);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else if (ego->preserve_input) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, O);
++ }
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, I, O);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans;
++ the planner often prefers transpose-pairwise to transpose-alltoall,
++ at least with LAM MPI on my machine. */
++ return (1
++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr)
++ && p->I != p->O))
++ && ONLY_TRANSPOSEDP(p->flags));
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->sched);
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->preserve_input==2 ?"/p":"",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++/* Given a process which_pe and a number of processes npes, fills
++ the array sched[npes] with a sequence of processes to communicate
++ with for a deadlock-free, optimum-overlap all-to-all communication.
++ (All processes must call this routine to get their own schedules.)
++ The schedule can be re-ordered arbitrarily as long as all processes
++ apply the same permutation to their schedules.
++
++ The algorithm here is based upon the one described in:
++ J. A. M. Schreuder, "Constructing timetables for sport
++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980).
++ In a sport competition, you have N teams and want every team to
++ play every other team in as short a time as possible (maximum overlap
++ between games). This timetabling problem is therefore identical
++ to that of an all-to-all communications problem. In our case, there
++ is one wrinkle: as part of the schedule, the process must do
++ some data transfer with itself (local data movement), analogous
++ to a requirement that each team "play itself" in addition to other
++ teams. With this wrinkle, it turns out that an optimal timetable
++ (N parallel games) can be constructed for any N, not just for even
++ N as in the original problem described by Schreuder.
++*/
++static void fill1_comm_sched(int *sched, int which_pe, int npes)
++{
++ int pe, i, n, s = 0;
++ A(which_pe >= 0 && which_pe < npes);
++ if (npes % 2 == 0) {
++ n = npes;
++ sched[s++] = which_pe;
++ }
++ else
++ n = npes + 1;
++ for (pe = 0; pe < n - 1; ++pe) {
++ if (npes % 2 == 0) {
++ if (pe == which_pe) sched[s++] = npes - 1;
++ else if (npes - 1 == which_pe) sched[s++] = pe;
++ }
++ else if (pe == which_pe) sched[s++] = pe;
++
++ if (pe != which_pe && which_pe < n - 1) {
++ i = (pe - which_pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe + i) % (n - 1);
++
++ i = (which_pe - pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe - i + (n - 1)) % (n - 1);
++ }
++ }
++ A(s == npes);
++}
++
++/* Sort the communication schedule sched for npes so that the schedule
++ on process sortpe is ascending or descending (!ascending). This is
++ necessary to allow in-place transposes when the problem does not
++ divide equally among the processes. In this case there is one
++ process where the incoming blocks are bigger/smaller than the
++ outgoing blocks and thus have to be received in
++ descending/ascending order, respectively, to avoid overwriting data
++ before it is sent. */
++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending)
++{
++ int *sortsched, i;
++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER);
++ fill1_comm_sched(sortsched, sortpe, npes);
++ if (ascending)
++ for (i = 0; i < npes; ++i)
++ sortsched[npes + sortsched[i]] = sched[i];
++ else
++ for (i = 0; i < npes; ++i)
++ sortsched[2*npes - 1 - sortsched[i]] = sched[i];
++ for (i = 0; i < npes; ++i)
++ sched[i] = sortsched[npes + i];
++ X(ifree)(sortsched);
++}
++
++/* make the plans to do the pre-MPI transpositions (shared with
++ transpose-alltoall-transposed) */
++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr,
++ R *I, R *O, int my_pe,
++ plan **cld2, plan **cld2rest, plan **cld3,
++ INT *rest_Ioff, INT *rest_Ooff)
++{
++ INT vn = p->vn;
++ INT b = XM(block)(p->nx, p->block, my_pe);
++ INT bt = p->tblock;
++ INT nyb = p->ny / bt; /* number of equal-sized blocks */
++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */
++
++ *cld2 = *cld2rest = *cld3 = NULL;
++ *rest_Ioff = *rest_Ooff = 0;
++
++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) {
++ INT ny = p->ny * vn;
++ bt *= vn;
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (nyb, bt, b * bt,
++ b, ny, bt,
++ bt, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ if (nyr > 0) {
++ *rest_Ioff = nyb * bt;
++ *rest_Ooff = nyb * b * bt;
++ bt = nyr * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_2d)
++ (b, ny, bt,
++ bt, 1, 1),
++ I + *rest_Ioff,
++ O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++ }
++ }
++ else {
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_4d)
++ (nyb, b * bt * vn, b * bt * vn,
++ b, vn, bt * vn,
++ bt, b * vn, vn,
++ vn, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (b, vn, nyr * vn,
++ nyr, b * vn, vn,
++ vn, 1, 1),
++ I + *rest_Ioff, O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++
++ if (!(p->flags & TRANSPOSED_IN)) {
++ *cld3 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (p->ny, vn, b * vn,
++ b, p->ny * vn, vn,
++ vn, 1, 1),
++ I, I),
++ 0, 0, NO_SLOW);
++ if (!*cld3) goto nada;
++ }
++ }
++
++ return 1;
++
++nada:
++ X(plan_destroy_internal)(*cld3);
++ X(plan_destroy_internal)(*cld2rest);
++ X(plan_destroy_internal)(*cld2);
++ *cld2 = *cld2rest = *cld3 = NULL;
++ return 0;
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ INT *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1;
++ R *I, *O;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ UNUSED(ego);
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++ I = p->I; O = p->O;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O;
++
++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++
++ }
++ else {
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr))
++ O = p->O;
++ else
++ O = p->I;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr);
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block),
++ XM(num_blocks)(p->ny, p->tblock));
++
++ /* Compute sizes/offsets of blocks to exchange between processors */
++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++
++ sbs[pe] = b * dbt * vn;
++ sbo[pe] = pe * (b * p->tblock) * vn;
++ rbs[pe] = db * bt * vn;
++ rbo[pe] = pe * (p->block * bt) * vn;
++
++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) {
++ A(sort_pe == -1); /* only one process should need sorting */
++ sort_pe = pe;
++ ascending = db * p->tblock > p->block * dbt;
++ }
++ }
++ pln->n_pes = n_pes;
++ pln->my_pe = my_pe;
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++
++ if (my_pe >= n_pes) {
++ pln->sched = 0; /* this process is not doing anything */
++ }
++ else {
++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS);
++ fill1_comm_sched(pln->sched, my_pe, n_pes);
++ if (sort_pe >= 0)
++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending);
++ }
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int preserve_input)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->preserve_input = preserve_input;
++ return &(slv->super);
++}
++
++void XM(transpose_pairwise_transposed_register)(planner *p)
++{
++ int preserve_input;
++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input)
++ REGISTER_SOLVER(p, mksolver(preserve_input));
++}
diff --git a/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch b/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch
new file mode 100644
index 0000000000..360a3757f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch
@@ -0,0 +1,858 @@
+--- mpi/conf.c 2014-03-04 19:41:03.000000000 +0100
++++ mpi/conf.c 2015-09-05 05:53:19.085516467 +0200
+@@ -29,6 +29,8 @@ static const solvtab s =
+ SOLVTAB(XM(transpose_pairwise_register)),
+ SOLVTAB(XM(transpose_alltoall_register)),
+ SOLVTAB(XM(transpose_recurse_register)),
++ SOLVTAB(XM(transpose_pairwise_transposed_register)),
++ SOLVTAB(XM(transpose_alltoall_transposed_register)),
+ SOLVTAB(XM(dft_rank_geq2_register)),
+ SOLVTAB(XM(dft_rank_geq2_transposed_register)),
+ SOLVTAB(XM(dft_serial_register)),
+
+--- mpi/Makefile.am 2013-03-18 13:10:45.000000000 +0100
++++ mpi/Makefile.am 2015-09-05 05:53:19.084516437 +0200
+@@ -16,6 +16,7 @@ BUILT_SOURCES = fftw3-mpi.f03.in fftw3-m
+ CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03
+
+ TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h
++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c
+ DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h
+ RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h
+ RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h
+
+--- mpi/mpi-transpose.h 2014-03-04 19:41:03.000000000 +0100
++++ mpi/mpi-transpose.h 2015-09-05 05:53:19.085516467 +0200
+@@ -59,3 +59,5 @@ int XM(mkplans_posttranspose)(const prob
+ void XM(transpose_pairwise_register)(planner *p);
+ void XM(transpose_alltoall_register)(planner *p);
+ void XM(transpose_recurse_register)(planner *p);
++void XM(transpose_pairwise_transposed_register)(planner *p);
++void XM(transpose_alltoall_transposed_register)(planner *p);
+
+--- mpi/transpose-alltoall-transposed.c 1970-01-01 01:00:00.000000000 +0100
++++ mpi/transpose-alltoall-transposed.c 2015-09-05 05:53:19.085516467 +0200
+@@ -0,0 +1,280 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* plans for distributed out-of-place transpose using MPI_Alltoall,
++ and which destroy the input array (also if TRANSPOSED_IN is used) */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT,
++ which makes the first transpose out-of-place
++ but costs an extra copy and requires us
++ to destroy the input */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++
++ MPI_Comm comm;
++ int *send_block_sizes, *send_block_offsets;
++ int *recv_block_sizes, *recv_block_offsets;
++
++ INT rest_Ioff, rest_Ooff;
++
++ int equal_blocks;
++} P;
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ /* in contrast to transpose-alltoall this algorithm can not preserve the input,
++ * since we need at least one transpose before the (out-of-place) Alltoall */
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ return (1
++ && p->I != p->O
++ && (!NO_DESTROY_INPUTP(plnr))
++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out)
++ && ONLY_TRANSPOSEDP(p->flags)
++ );
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->equal_blocks ? "/e" : "",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ R *O;
++ int *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes;
++ int equal_blocks = 1;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */
++ if (ego->copy_transposed_out) {
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_1d)
++ (bt * p->nx * vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++ else /* first transpose is in-place */
++ O = p->I;
++ }
++ else { /* transpose nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ /* Compute sizes/offsets of blocks to send for all-to-all command. */
++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++ if (db != p->block || dbt != p->tblock)
++ equal_blocks = 0;
++
++ /* MPI requires type "int" here; apparently it
++ has no 64-bit API? Grrr. */
++ sbs[pe] = (int) (b * dbt * vn);
++ sbo[pe] = (int) (pe * (b * p->tblock) * vn);
++ rbs[pe] = (int) (db * bt * vn);
++ rbo[pe] = (int) (pe * (p->block * bt) * vn);
++ }
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++ pln->equal_blocks = equal_blocks;
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int copy_transposed_out)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->copy_transposed_out = copy_transposed_out;
++ return &(slv->super);
++}
++
++void XM(transpose_alltoall_transposed_register)(planner *p)
++{
++ int cto;
++ for (cto = 0; cto <= 1; ++cto)
++ REGISTER_SOLVER(p, mksolver(cto));
++}
+
+--- mpi/transpose-pairwise.c 2014-03-04 19:41:03.000000000 +0100
++++ mpi/transpose-pairwise.c 2015-09-05 06:00:05.715433709 +0200
+@@ -53,7 +53,6 @@ static void transpose_chunks(int *sched,
+ {
+ if (sched) {
+ int i;
+- MPI_Status status;
+
+ /* TODO: explore non-synchronous send/recv? */
+
+@@ -74,7 +73,7 @@ static void transpose_chunks(int *sched,
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0xffff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+
+@@ -92,7 +91,7 @@ static void transpose_chunks(int *sched,
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0xffff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+ }
+
+--- mpi/transpose-pairwise-transposed.c 1970-01-01 01:00:00.000000000 +0100
++++ mpi/transpose-pairwise-transposed.c 2015-09-05 06:00:07.280481042 +0200
+@@ -0,0 +1,510 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* Distributed transposes using a sequence of carefully scheduled
++ pairwise exchanges. This has the advantage that it can be done
++ in-place, or out-of-place while preserving the input, using buffer
++ space proportional to the local size divided by the number of
++ processes (i.e. to the total array size divided by the number of
++ processes squared). */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++ INT rest_Ioff, rest_Ooff;
++
++ int n_pes, my_pe, *sched;
++ INT *send_block_sizes, *send_block_offsets;
++ INT *recv_block_sizes, *recv_block_offsets;
++ MPI_Comm comm;
++ int preserve_input;
++} P;
++
++static void transpose_chunks(int *sched, int n_pes, int my_pe,
++ INT *sbs, INT *sbo, INT *rbs, INT *rbo,
++ MPI_Comm comm,
++ R *I, R *O)
++{
++ if (sched) {
++ int i;
++
++ /* TODO: explore non-synchronous send/recv? */
++
++ if (I == O) {
++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS);
++
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe) {
++ if (rbo[pe] != sbo[pe])
++ memmove(O + rbo[pe], O + sbo[pe],
++ sbs[pe] * sizeof(R));
++ }
++ else {
++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R));
++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++
++ X(ifree)(buf);
++ }
++ else { /* I != O */
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe)
++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R));
++ else
++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++ }
++}
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ if(ego->preserve_input) I = O;
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, I);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else if (ego->preserve_input) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, O);
++ }
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, I, O);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans;
++ the planner often prefers transpose-pairwise to transpose-alltoall,
++ at least with LAM MPI on my machine. */
++ return (1
++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr)
++ && p->I != p->O))
++ && ONLY_TRANSPOSEDP(p->flags));
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->sched);
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->preserve_input==2 ?"/p":"",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++/* Given a process which_pe and a number of processes npes, fills
++ the array sched[npes] with a sequence of processes to communicate
++ with for a deadlock-free, optimum-overlap all-to-all communication.
++ (All processes must call this routine to get their own schedules.)
++ The schedule can be re-ordered arbitrarily as long as all processes
++ apply the same permutation to their schedules.
++
++ The algorithm here is based upon the one described in:
++ J. A. M. Schreuder, "Constructing timetables for sport
++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980).
++ In a sport competition, you have N teams and want every team to
++ play every other team in as short a time as possible (maximum overlap
++ between games). This timetabling problem is therefore identical
++ to that of an all-to-all communications problem. In our case, there
++ is one wrinkle: as part of the schedule, the process must do
++ some data transfer with itself (local data movement), analogous
++ to a requirement that each team "play itself" in addition to other
++ teams. With this wrinkle, it turns out that an optimal timetable
++ (N parallel games) can be constructed for any N, not just for even
++ N as in the original problem described by Schreuder.
++*/
++static void fill1_comm_sched(int *sched, int which_pe, int npes)
++{
++ int pe, i, n, s = 0;
++ A(which_pe >= 0 && which_pe < npes);
++ if (npes % 2 == 0) {
++ n = npes;
++ sched[s++] = which_pe;
++ }
++ else
++ n = npes + 1;
++ for (pe = 0; pe < n - 1; ++pe) {
++ if (npes % 2 == 0) {
++ if (pe == which_pe) sched[s++] = npes - 1;
++ else if (npes - 1 == which_pe) sched[s++] = pe;
++ }
++ else if (pe == which_pe) sched[s++] = pe;
++
++ if (pe != which_pe && which_pe < n - 1) {
++ i = (pe - which_pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe + i) % (n - 1);
++
++ i = (which_pe - pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe - i + (n - 1)) % (n - 1);
++ }
++ }
++ A(s == npes);
++}
++
++/* Sort the communication schedule sched for npes so that the schedule
++ on process sortpe is ascending or descending (!ascending). This is
++ necessary to allow in-place transposes when the problem does not
++ divide equally among the processes. In this case there is one
++ process where the incoming blocks are bigger/smaller than the
++ outgoing blocks and thus have to be received in
++ descending/ascending order, respectively, to avoid overwriting data
++ before it is sent. */
++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending)
++{
++ int *sortsched, i;
++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER);
++ fill1_comm_sched(sortsched, sortpe, npes);
++ if (ascending)
++ for (i = 0; i < npes; ++i)
++ sortsched[npes + sortsched[i]] = sched[i];
++ else
++ for (i = 0; i < npes; ++i)
++ sortsched[2*npes - 1 - sortsched[i]] = sched[i];
++ for (i = 0; i < npes; ++i)
++ sched[i] = sortsched[npes + i];
++ X(ifree)(sortsched);
++}
++
++/* make the plans to do the pre-MPI transpositions (shared with
++ transpose-alltoall-transposed) */
++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr,
++ R *I, R *O, int my_pe,
++ plan **cld2, plan **cld2rest, plan **cld3,
++ INT *rest_Ioff, INT *rest_Ooff)
++{
++ INT vn = p->vn;
++ INT b = XM(block)(p->nx, p->block, my_pe);
++ INT bt = p->tblock;
++ INT nyb = p->ny / bt; /* number of equal-sized blocks */
++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */
++
++ *cld2 = *cld2rest = *cld3 = NULL;
++ *rest_Ioff = *rest_Ooff = 0;
++
++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) {
++ INT ny = p->ny * vn;
++ bt *= vn;
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (nyb, bt, b * bt,
++ b, ny, bt,
++ bt, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ if (nyr > 0) {
++ *rest_Ioff = nyb * bt;
++ *rest_Ooff = nyb * b * bt;
++ bt = nyr * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_2d)
++ (b, ny, bt,
++ bt, 1, 1),
++ I + *rest_Ioff,
++ O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++ }
++ }
++ else {
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_4d)
++ (nyb, b * bt * vn, b * bt * vn,
++ b, vn, bt * vn,
++ bt, b * vn, vn,
++ vn, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (b, vn, nyr * vn,
++ nyr, b * vn, vn,
++ vn, 1, 1),
++ I + *rest_Ioff, O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++
++ if (!(p->flags & TRANSPOSED_IN)) {
++ *cld3 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (p->ny, vn, b * vn,
++ b, p->ny * vn, vn,
++ vn, 1, 1),
++ I, I),
++ 0, 0, NO_SLOW);
++ if (!*cld3) goto nada;
++ }
++ }
++
++ return 1;
++
++nada:
++ X(plan_destroy_internal)(*cld3);
++ X(plan_destroy_internal)(*cld2rest);
++ X(plan_destroy_internal)(*cld2);
++ *cld2 = *cld2rest = *cld3 = NULL;
++ return 0;
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ INT *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1;
++ R *I, *O;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ UNUSED(ego);
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++ I = p->I; O = p->O;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O;
++
++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++
++ }
++ else {
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr))
++ O = p->O;
++ else
++ O = p->I;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr);
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block),
++ XM(num_blocks)(p->ny, p->tblock));
++
++ /* Compute sizes/offsets of blocks to exchange between processors */
++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++
++ sbs[pe] = b * dbt * vn;
++ sbo[pe] = pe * (b * p->tblock) * vn;
++ rbs[pe] = db * bt * vn;
++ rbo[pe] = pe * (p->block * bt) * vn;
++
++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) {
++ A(sort_pe == -1); /* only one process should need sorting */
++ sort_pe = pe;
++ ascending = db * p->tblock > p->block * dbt;
++ }
++ }
++ pln->n_pes = n_pes;
++ pln->my_pe = my_pe;
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++
++ if (my_pe >= n_pes) {
++ pln->sched = 0; /* this process is not doing anything */
++ }
++ else {
++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS);
++ fill1_comm_sched(pln->sched, my_pe, n_pes);
++ if (sort_pe >= 0)
++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending);
++ }
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int preserve_input)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->preserve_input = preserve_input;
++ return &(slv->super);
++}
++
++void XM(transpose_pairwise_transposed_register)(planner *p)
++{
++ int preserve_input;
++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input)
++ REGISTER_SOLVER(p, mksolver(preserve_input));
++}
diff --git a/var/spack/repos/builtin/packages/fish/package.py b/var/spack/repos/builtin/packages/fish/package.py
index 9d23a3d63d..fb784b7571 100644
--- a/var/spack/repos/builtin/packages/fish/package.py
+++ b/var/spack/repos/builtin/packages/fish/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Fish(Package):
"""fish is a smart and user-friendly command line shell for OS X, Linux, and
the rest of the family.
@@ -31,8 +32,7 @@ class Fish(Package):
homepage = "http://fishshell.com/"
url = "http://fishshell.com/files/2.2.0/fish-2.2.0.tar.gz"
- list_url = "http://fishshell.com/files/"
- list_depth = 2
+ list_url = "http://fishshell.com/"
version('2.2.0', 'a76339fd14ce2ec229283c53e805faac48c3e99d9e3ede9d82c0554acfc7b77a')
diff --git a/var/spack/repos/builtin/packages/fixesproto/package.py b/var/spack/repos/builtin/packages/fixesproto/package.py
new file mode 100644
index 0000000000..64852b40e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fixesproto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fixesproto(Package):
+ """X Fixes Extension.
+
+ The extension makes changes to many areas of the protocol to resolve
+ issues raised by application interaction with core protocol mechanisms
+ that cannot be adequately worked around on the client side of the wire."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/fixesproto"
+ url = "https://www.x.org/archive/individual/proto/fixesproto-5.0.tar.gz"
+
+ version('5.0', '1b3115574cadd4cbea1f197faa7c1de4')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/flex/package.py b/var/spack/repos/builtin/packages/flex/package.py
index b778538606..23b3c8b21a 100644
--- a/var/spack/repos/builtin/packages/flex/package.py
+++ b/var/spack/repos/builtin/packages/flex/package.py
@@ -25,19 +25,46 @@
from spack import *
-class Flex(Package):
+class Flex(AutotoolsPackage):
"""Flex is a tool for generating scanners."""
- homepage = "http://flex.sourceforge.net/"
- url = "http://download.sourceforge.net/flex/flex-2.5.39.tar.gz"
+ homepage = "https://github.com/westes/flex"
+ url = "https://github.com/westes/flex/releases/download/v2.6.1/flex-2.6.1.tar.gz"
- version('2.6.0', '5724bcffed4ebe39e9b55a9be80859ec')
- version('2.5.39', 'e133e9ead8ec0a58d81166b461244fde')
+ # Problematic version:
+ # See issue #2554; https://github.com/westes/flex/issues/113
+ # version('2.6.2', 'cc6d76c333db7653d5caf423a3335239')
+ version('2.6.1', '05bcd8fb629e0ae130311e8a6106fa82')
+ version('2.6.0', '760be2ee9433e822b6eb65318311c19d')
+ version('2.5.39', '5865e76ac69c05699f476515592750d7')
- depends_on("bison")
+ depends_on('bison', type='build')
+ depends_on('gettext@0.19:', type='build')
+ depends_on('help2man', type='build')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ # Older tarballs don't come with a configure script
+ depends_on('m4', type='build', when='@:2.6.0')
+ depends_on('autoconf', type='build', when='@:2.6.0')
+ depends_on('automake', type='build', when='@:2.6.0')
+ depends_on('libtool', type='build', when='@:2.6.0')
- make()
- make("install")
+ def url_for_version(self, version):
+ url = "https://github.com/westes/flex"
+ if version >= Version('2.6.1'):
+ url += "/releases/download/v{0}/flex-{0}.tar.gz".format(version)
+ elif version == Version('2.6.0'):
+ url += "/archive/v{0}.tar.gz".format(version)
+ elif version >= Version('2.5.37'):
+ url += "/archive/flex-{0}.tar.gz".format(version)
+ else:
+ url += "/archive/flex-{0}.tar.gz".format(version.dashed)
+
+ return url
+
+ def autoreconf(self, spec, prefix):
+ pass
+
+ @when('@:2.6.0')
+ def autoreconf(self, spec, prefix):
+ libtoolize('--install', '--force')
+ autoreconf('--install', '--force')
diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py
new file mode 100644
index 0000000000..c39b17db2c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flint/package.py
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Flint(Package):
+ """FLINT (Fast Library for Number Theory)."""
+
+ homepage = "http://www.flintlib.org"
+ url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz"
+
+ version('2.5.2', 'cda885309362150196aed66a5e0f0383')
+ version('2.4.5', '6504b9deabeafb9313e57153a1730b33')
+ version('develop', git='https://github.com/wbhart/flint2.git')
+
+ # Overlap in functionality between gmp and mpir
+ # All other dependencies must also be built with
+ # one or the other
+ # variant('mpir', default=False,
+ # description='Compile with the MPIR library')
+
+ # Build dependencies
+ depends_on('autoconf', type='build')
+
+ # Other dependencies
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
+
+ def install(self, spec, prefix):
+ options = []
+ options = ["--prefix=%s" % prefix,
+ "--with-gmp=%s" % spec['gmp'].prefix,
+ "--with-mpfr=%s" % spec['mpfr'].prefix]
+
+ # if '+mpir' in spec:
+ # options.extend([
+ # "--with-mpir=%s" % spec['mpir'].prefix
+ # ])
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/fltk/package.py b/var/spack/repos/builtin/packages/fltk/package.py
index f8ac5bc2a4..f29b64b02b 100644
--- a/var/spack/repos/builtin/packages/fltk/package.py
+++ b/var/spack/repos/builtin/packages/fltk/package.py
@@ -26,13 +26,16 @@ from spack import *
class Fltk(Package):
- """
- FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and
- MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its
- built-in GLUT emulation.
+ """FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for
+ UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides
+ modern GUI functionality without the bloat and supports 3D
+ graphics via OpenGL and its built-in GLUT emulation.
+
+ FLTK is designed to be small and modular enough to be statically
+ linked, but works fine as a shared library. FLTK also includes an
+ excellent UI builder called FLUID that can be used to create
+ applications in minutes.
- FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK
- also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
"""
homepage = 'http://www.fltk.org/'
url = 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
@@ -41,7 +44,8 @@ class Fltk(Package):
patch('font.patch', when='@1.3.3')
- variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix,
diff --git a/var/spack/repos/builtin/packages/flux/package.py b/var/spack/repos/builtin/packages/flux/package.py
index 2b972d63ae..7abd9f46bd 100644
--- a/var/spack/repos/builtin/packages/flux/package.py
+++ b/var/spack/repos/builtin/packages/flux/package.py
@@ -25,13 +25,18 @@
from spack import *
import os
-class Flux(Package):
+
+class Flux(AutotoolsPackage):
""" A next-generation resource manager (pre-alpha) """
homepage = "https://github.com/flux-framework/flux-core"
- url = "https://github.com/flux-framework/flux-core"
+ url = "https://github.com/flux-framework/flux-core/releases/download/v0.6.0/flux-core-0.6.0.tar.gz"
+
+ version('0.6.0', md5='d44a0f719744771d168edd205bd8e74e')
+ version('master', branch='master',
+ git='https://github.com/flux-framework/flux-core')
- version('master', branch='master', git='https://github.com/flux-framework/flux-core')
+ variant('docs', default=True, description='Build flux manpages')
# Also needs autotools, but should use the system version if available
depends_on("zeromq@4.0.4:")
@@ -43,21 +48,20 @@ class Flux(Package):
depends_on("libxslt")
depends_on("python")
depends_on("py-cffi")
+ depends_on("jansson")
- # TODO: This provides a catalog, hacked with environment below for now
- depends_on("docbook-xml")
- depends_on("asciidoc")
+ depends_on("asciidoc", type='build', when="+docs")
- def install(self, spec, prefix):
- # Bootstrap with autotools
- bash = which('bash')
- bash('./autogen.sh')
- bash('./autogen.sh') #yes, twice, intentionally
+ depends_on("autoconf", type='build', when='@master')
+ depends_on("automake", type='build', when='@master')
+ depends_on("libtool", type='build', when='@master')
- # Fix asciidoc dependency on xml style sheets and whatnot
- os.environ['XML_CATALOG_FILES'] = os.path.join(spec['docbook-xml'].prefix,
- 'catalog.xml')
- # Configure, compile & install
- configure("--prefix=" + prefix)
- make("install", "V=1")
+ def autoreconf(self, spec, prefix):
+ if os.path.exists('autogen.sh'):
+ # Bootstrap with autotools
+ bash = which('bash')
+ bash('./autogen.sh')
+ bash('./autogen.sh') # yes, twice, intentionally
+ def configure_args(self):
+ return ['--disable-docs'] if '+docs' not in self.spec else []
diff --git a/var/spack/repos/builtin/packages/foam-extend/package.py b/var/spack/repos/builtin/packages/foam-extend/package.py
new file mode 100644
index 0000000000..67397a5b72
--- /dev/null
+++ b/var/spack/repos/builtin/packages/foam-extend/package.py
@@ -0,0 +1,289 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from spack.environment import *
+
+import multiprocessing
+import os
+
+
+class FoamExtend(Package):
+ """The foam-extend project is a fork of the OpenFOAM open source library
+ for Computational Fluid Dynamics (CFD)."""
+
+ homepage = "http://www.extend-project.de/"
+
+ version('3.2', git='http://git.code.sf.net/p/foam-extend/foam-extend-3.2')
+ version('3.1', git='http://git.code.sf.net/p/foam-extend/foam-extend-3.1')
+ version('3.0', git='http://git.code.sf.net/p/foam-extend/foam-extend-3.0')
+
+ variant('paraview', default=False, description='Enable ParaFOAM')
+ variant(
+ 'scotch', default=True,
+ description='Activate Scotch as a possible decomposition library')
+ variant(
+ 'ptscotch', default=True,
+ description='Activate PT-Scotch as a possible decomposition library')
+ variant(
+ 'metis', default=True,
+ description='Activate Metis as a possible decomposition library')
+ variant(
+ 'parmetis', default=True,
+ description='Activate Parmetis as a possible decomposition library')
+ variant(
+ 'parmgridgen', default=True,
+ description='Activate Parmgridgen support')
+ variant(
+ 'source', default=True,
+ description='Installs also the source folder')
+
+ supported_compilers = {'clang': 'Clang', 'gcc': 'Gcc', 'intel': 'Icc'}
+
+ depends_on('mpi')
+ depends_on('python')
+ depends_on('flex')
+ depends_on('zlib')
+ depends_on('cmake', type='build')
+
+ depends_on('scotch ~ metis', when='~ptscotch+scotch')
+ depends_on('scotch ~ metis + mpi', when='+ptscotch')
+ depends_on('metis@5:', when='+metis')
+ depends_on('parmetis', when='+parmetis')
+ depends_on('parmgridgen', when='+parmgridgen')
+
+ depends_on('paraview', when='+paraview')
+
+ def set_arch(self):
+ (sysname, nodename, release, version, machine) = os.uname()
+
+ if self.compiler.name not in self.supported_compilers:
+ raise RuntimeError('{0} is not a supported compiler \
+ to compile OpenFOAM'.format(self.compiler.name))
+
+ foam_compiler = self.supported_compilers[self.compiler.name]
+ if sysname == 'Linux':
+ arch = 'linux'
+ if foam_compiler == 'Clang':
+ raise RuntimeError('OS, compiler combination not\
+ supported ({0} {1})'.format(sysname, foam_compiler))
+ elif sysname == 'Darwin':
+ if machine == 'x86_64':
+ arch = 'darwinIntel'
+ if foam_compiler == 'Icc':
+ raise RuntimeError('OS, compiler combination not\
+ supported ({0} {1})'.format(sysname, foam_compiler))
+ else:
+ raise RuntimeError('{0} {1} is not a \
+ supported architecture'.format(sysname, machine))
+
+ return (arch, foam_compiler)
+
+ def get_openfoam_environment(self):
+ return EnvironmentModifications.from_sourcing_files(
+ join_path(self.stage.source_path,
+ 'etc/bashrc'))
+
+ def patch(self):
+ # change names to match the package and not the one patch in
+ # the Third-Party of foam-extend
+ if '+parmgridgen' in self.spec:
+ filter_file(r'-lMGridGen',
+ r'-lmgrid',
+ 'src/dbns/Make/options')
+
+ filter_file(
+ r'-lMGridGen',
+ r'-lmgrid',
+ 'src/fvAgglomerationMethods/MGridGenGamgAgglomeration/Make/options') # noqa: E501
+
+ # Get the wmake arch and compiler
+ (arch, foam_compiler) = self.set_arch()
+
+ prefs_dict = {
+ 'compilerInstall': 'System',
+ 'WM_COMPILER': foam_compiler,
+ 'WM_ARCH_OPTION': '64',
+ 'WM_PRECISION_OPTION': 'DP',
+ 'WM_COMPILE_OPTION': 'SPACKOpt',
+ 'WM_MPLIB': 'SPACK',
+
+ 'CMAKE_DIR': self.spec['cmake'].prefix,
+ 'CMAKE_BIN_DIR': self.spec['cmake'].prefix.bin,
+ 'PYTHON_DIR': self.spec['python'].prefix,
+ 'PYTHON_BIN_DIR': self.spec['python'].prefix.bin,
+
+ 'FLEX_SYSTEM': 1,
+ 'FLEX_DIR': self.spec['flex'].prefix,
+
+ 'BISON_SYSTEM': 1,
+ 'BISON_DIR': self.spec['flex'].prefix,
+
+ 'ZLIB_SYSTEM': 1,
+ 'ZLIB_DIR': self.spec['zlib'].prefix,
+ }
+
+ if '+scotch' in self.spec or '+ptscotch' in self.spec:
+ prefs_dict['SCOTCH_SYSTEM'] = 1
+ prefs_dict['SCOTCH_DIR'] = self.spec['scotch'].prefix
+ prefs_dict['SCOTCH_BIN_DIR'] = self.spec['scotch'].prefix.bin
+ prefs_dict['SCOTCH_LIB_DIR'] = self.spec['scotch'].prefix.lib
+ prefs_dict['SCOTCH_INCLUDE_DIR'] = \
+ self.spec['scotch'].prefix.include
+
+ if '+metis' in self.spec:
+ prefs_dict['METIS_SYSTEM'] = 1
+ prefs_dict['METIS_DIR'] = self.spec['metis'].prefix
+ prefs_dict['METIS_BIN_DIR'] = self.spec['metis'].prefix.bin
+ prefs_dict['METIS_LIB_DIR'] = self.spec['metis'].prefix.lib
+ prefs_dict['METIS_INCLUDE_DIR'] = self.spec['metis'].prefix.include
+
+ if '+parmetis' in self.spec:
+ prefs_dict['PARMETIS_SYSTEM'] = 1
+ prefs_dict['PARMETIS_DIR'] = self.spec['parmetis'].prefix
+ prefs_dict['PARMETIS_BIN_DIR'] = self.spec['parmetis'].prefix.bin
+ prefs_dict['PARMETIS_LIB_DIR'] = self.spec['parmetis'].prefix.lib
+ prefs_dict['PARMETIS_INCLUDE_DIR'] = \
+ self.spec['parmetis'].prefix.include
+
+ if '+parmgridgen' in self.spec:
+ prefs_dict['PARMGRIDGEN_SYSTEM'] = 1
+ prefs_dict['PARMGRIDGEN_DIR'] = self.spec['parmgridgen'].prefix
+ prefs_dict['PARMGRIDGEN_BIN_DIR'] = \
+ self.spec['parmgridgen'].prefix.bin
+ prefs_dict['PARMGRIDGEN_LIB_DIR'] = \
+ self.spec['parmgridgen'].prefix.lib
+ prefs_dict['PARMGRIDGEN_INCLUDE_DIR'] = \
+ self.spec['parmgridgen'].prefix.include
+
+ if '+paraview' in self.spec:
+ prefs_dict['PARAVIEW_SYSTEM'] = 1
+ prefs_dict['PARAVIEW_DIR'] = self.spec['paraview'].prefix
+ prefs_dict['PARAVIEW_BIN_DIR'] = self.spec['paraview'].prefix.bin
+ prefs_dict['QT_SYSTEM'] = 1
+ prefs_dict['QT_DIR'] = self.spec['qt'].prefix
+ prefs_dict['QT_BIN_DIR'] = self.spec['qt'].prefix.bin
+
+ # write the prefs files to define the configuration needed,
+ # only the prefs.sh is used by this script but both are
+ # installed for end users
+ with working_dir('.'):
+ with open("etc/prefs.sh", "w") as fh:
+ for key in sorted(prefs_dict):
+ fh.write('export {0}={1}\n'.format(key, prefs_dict[key]))
+
+ with open("etc/prefs.csh", "w") as fh:
+ for key in sorted(prefs_dict):
+ fh.write('setenv {0}={1}\n'.format(key, prefs_dict[key]))
+
+ # Defining a different mpi and optimisation file to be able to
+ # make wmake get spack info with minimum modifications on
+ # configurations scripts
+ mpi_info = [
+ 'PFLAGS = -DOMPI_SKIP_MPICXX -DMPICH_IGNORE_CXX_SEEK',
+ 'PINC = -I{0}'.format(self.spec['mpi'].prefix.include),
+ 'PLIBS = -L{0} -lmpi'.format(self.spec['mpi'].prefix.lib)
+ ]
+
+ arch_path = ''.join([arch, prefs_dict['WM_ARCH_OPTION'],
+ foam_compiler])
+ option_path = ''.join([arch_path,
+ prefs_dict['WM_PRECISION_OPTION'],
+ prefs_dict['WM_COMPILE_OPTION']])
+ rule_path = join_path("wmake", "rules", arch_path)
+ build_path = join_path(self.stage.source_path, 'lib', option_path)
+ install_path = \
+ join_path(self.prefix,
+ 'foam-extend-{0}'.format(self.version.up_to(2)),
+ option_path)
+
+ rpaths_foam = ' '.join([
+ '{0}{1}'.format(self.compiler.cxx_rpath_arg,
+ install_path),
+ '{0}{1}'.format(self.compiler.cxx_rpath_arg,
+ build_path)
+ ])
+
+ compiler_flags = {
+ 'DBUG': rpaths_foam,
+ 'OPT': '-O3',
+ }
+
+ with working_dir(rule_path):
+ with open('mplibSPACK', "w") as fh:
+ fh.write('\n'.join(mpi_info))
+
+ for comp in ['c', 'c++']:
+ with open('{0}SPACKOpt'.format(comp), "w") as fh:
+ for key, val in compiler_flags.iteritems():
+ fh.write('{0}{1} = {2}\n'.format(comp, key, val))
+
+ _files_to_patch = [
+ 'src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L', # noqa: E501
+ 'src/surfMesh/surfaceFormats/stl/STLsurfaceFormatASCII.L', # noqa: E501
+ 'src/meshTools/triSurface/triSurface/interfaces/STL/readSTLASCII.L', # noqa: E501
+ 'applications/utilities/preProcessing/fluentDataToFoam/fluentDataToFoam.L', # noqa: E501
+ 'applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L', # noqa: E501
+ 'applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L', # noqa: E501
+ 'applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L', # noqa: E501
+ 'applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L', # noqa: E501
+ 'applications/utilities/mesh/conversion/fluent3DMeshToElmer/fluent3DMeshToElmer.L' # noqa: E501
+ ]
+ for _file in _files_to_patch:
+ filter_file(r'#if YY_FLEX_SUBMINOR_VERSION < 34',
+ r'#if YY_FLEX_MAJOR_VERSION <= 2 && YY_FLEX_MINOR_VERSION <= 5 && YY_FLEX_SUBMINOR_VERSION < 34', # noqa: E501
+ _file)
+
+ def setup_environment(self, spack_env, run_env):
+ with working_dir(self.stage.path):
+ spack_env.set('FOAM_INST_DIR', os.path.abspath('.'))
+
+ (arch, foam_compiler) = self.set_arch()
+
+ run_env.set('FOAM_INST_DIR', self.prefix)
+
+ def install(self, spec, prefix):
+ env_openfoam = self.get_openfoam_environment()
+ env_openfoam.apply_modifications()
+
+ if self.parallel:
+ os.environ['WM_NCOMPPROCS'] = str(self.make_jobs) \
+ if self.make_jobs else str(multiprocessing.cpu_count())
+
+ allwmake = Executable('./Allwmake')
+ allwmake()
+
+ install_path = \
+ join_path(self.prefix,
+ 'foam-extend-{0}'.format(self.version.up_to(2)))
+
+ if '+source' in spec:
+ install_tree('src', join_path(install_path, 'src'))
+ install_tree('tutorials', join_path(install_path, 'tutorials'))
+
+ install_tree('lib', join_path(install_path, 'lib'))
+ install_tree('bin', join_path(install_path, 'bin'))
+ install_tree('applications', join_path(install_path, 'applications'))
+ install_tree('etc', join_path(install_path, 'etc'))
+ install_tree('wmake', join_path(install_path, 'wmake'))
diff --git a/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py
new file mode 100644
index 0000000000..bde6f352da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAdobe100dpi(Package):
+ """X.org adobe-100dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/adobe-100dpi"
+ url = "https://www.x.org/archive/individual/font/font-adobe-100dpi-1.0.3.tar.gz"
+
+ version('1.0.3', 'ba61e7953f4f5cec5a8e69c262bbc7f9')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py
new file mode 100644
index 0000000000..380fcf363e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAdobe75dpi(Package):
+ """X.org adobe-75dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/adobe-75dpi"
+ url = "https://www.x.org/archive/individual/font/font-adobe-75dpi-1.0.3.tar.gz"
+
+ version('1.0.3', '7a414bb661949cec938938fd678cf649')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py
new file mode 100644
index 0000000000..9782d259b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAdobeUtopia100dpi(Package):
+ """X.org adobe-utopia-100dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/adobe-utopia-100dpi"
+ url = "https://www.x.org/archive/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.gz"
+
+ version('1.0.4', '128416eccd59b850f77a9b803681da3c')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py
new file mode 100644
index 0000000000..9b687a7814
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAdobeUtopia75dpi(Package):
+ """X.org adobe-utopia-75dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/adobe-utopia-75dpi"
+ url = "https://www.x.org/archive/individual/font/font-adobe-utopia-75dpi-1.0.4.tar.gz"
+
+ version('1.0.4', '74c73a5b73c6c3224b299f1fc033e508')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py
new file mode 100644
index 0000000000..14004e9883
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAdobeUtopiaType1(Package):
+ """X.org adobe-utopia-type1 font."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/font/adobe-utopia-type1"
+ url = "https://www.x.org/archive/individual/font/font-adobe-utopia-type1-1.0.4.tar.gz"
+
+ version('1.0.4', 'b0676c3495acabad519ee98a94163904')
+
+ depends_on('font-util', type='build')
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-alias/package.py b/var/spack/repos/builtin/packages/font-alias/package.py
new file mode 100644
index 0000000000..eb8c79fe2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-alias/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontAlias(Package):
+ """X.org alias font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/alias"
+ url = "https://www.x.org/archive/individual/font/font-alias-1.0.3.tar.gz"
+
+ version('1.0.3', '535138efe0a95f5fe521be6a6b9c4888')
+
+ depends_on('font-util')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-arabic-misc/package.py b/var/spack/repos/builtin/packages/font-arabic-misc/package.py
new file mode 100644
index 0000000000..8307d58d6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-arabic-misc/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontArabicMisc(Package):
+ """X.org arabic-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/arabic-misc"
+ url = "https://www.x.org/archive/individual/font/font-arabic-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '918457df65ef93f09969c6ab01071789')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-100dpi/package.py b/var/spack/repos/builtin/packages/font-bh-100dpi/package.py
new file mode 100644
index 0000000000..1d488a6cd9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-100dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBh100dpi(Package):
+ """X.org bh-100dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-100dpi"
+ url = "https://www.x.org/archive/individual/font/font-bh-100dpi-1.0.3.tar.gz"
+
+ version('1.0.3', '09e63a5608000531179e1ab068a35878')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-75dpi/package.py b/var/spack/repos/builtin/packages/font-bh-75dpi/package.py
new file mode 100644
index 0000000000..22420dd887
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-75dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBh75dpi(Package):
+ """X.org bh-75dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-75dpi"
+ url = "https://www.x.org/archive/individual/font/font-bh-75dpi-1.0.3.tar.gz"
+
+ version('1.0.3', '88fec4ebc4a265684bff3abdd066f14f')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py
new file mode 100644
index 0000000000..173195a557
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBhLucidatypewriter100dpi(Package):
+ """X.org bh-lucidatypewriter-100dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-lucidatypewriter-100dpi"
+ url = "https://www.x.org/archive/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.gz"
+
+ version('1.0.3', '5f716f54e497fb4ec1bb3a5d650ac6f7')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py
new file mode 100644
index 0000000000..9066823bc3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBhLucidatypewriter75dpi(Package):
+ """X.org bh-lucidatypewriter-75dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-lucidatypewriter-75dpi"
+ url = "https://www.x.org/archive/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.gz"
+
+ version('1.0.3', 'cab8a44ae329aab7141c7adeef0daf5a')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-ttf/package.py b/var/spack/repos/builtin/packages/font-bh-ttf/package.py
new file mode 100644
index 0000000000..a10b88d355
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-ttf/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBhTtf(Package):
+ """X.org bh-ttf font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-ttf"
+ url = "https://www.x.org/archive/individual/font/font-bh-ttf-1.0.3.tar.gz"
+
+ version('1.0.3', '4ce741ec4edaa11cd38988d355a7578b')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bh-type1/package.py b/var/spack/repos/builtin/packages/font-bh-type1/package.py
new file mode 100644
index 0000000000..fffc2e4095
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bh-type1/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBhType1(Package):
+ """X.org bh-type1 font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bh-type1"
+ url = "https://www.x.org/archive/individual/font/font-bh-type1-1.0.3.tar.gz"
+
+ version('1.0.3', '62d4e8f782a6a0658784072a5df5ac98')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py b/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py
new file mode 100644
index 0000000000..e8e11ae627
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBitstream100dpi(Package):
+ """X.org bitstream-100dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-100dpi"
+ url = "https://www.x.org/archive/individual/font/font-bitstream-100dpi-1.0.3.tar.gz"
+
+ version('1.0.3', 'c27bf37e9b8039f93bd90b8131ed37ad')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py b/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py
new file mode 100644
index 0000000000..5dd033964b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBitstream75dpi(Package):
+ """X.org bitstream-75dpi font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-75dpi"
+ url = "https://www.x.org/archive/individual/font/font-bitstream-75dpi-1.0.3.tar.gz"
+
+ version('1.0.3', '4ff6c5d6aebe69371e27b09ad8313d25')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py b/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py
new file mode 100644
index 0000000000..e746f241df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBitstreamSpeedo(Package):
+ """X.org bitstream-speedo font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-speedo"
+ url = "https://www.x.org/archive/individual/font/font-bitstream-speedo-1.0.2.tar.gz"
+
+ version('1.0.2', 'f0a777b351cf5adefefcf4823e0c1c01')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-bitstream-type1/package.py b/var/spack/repos/builtin/packages/font-bitstream-type1/package.py
new file mode 100644
index 0000000000..65289685c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-bitstream-type1/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontBitstreamType1(Package):
+ """X.org bitstream-type1 font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-type1"
+ url = "https://www.x.org/archive/individual/font/font-bitstream-type1-1.0.3.tar.gz"
+
+ version('1.0.3', 'ff91738c4d3646d7999e00aa9923f2a0')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py b/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py
new file mode 100644
index 0000000000..07e1330fe6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontCronyxCyrillic(Package):
+ """X.org cronyx-cyrillic font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/cronyx-cyrillic"
+ url = "https://www.x.org/archive/individual/font/font-cronyx-cyrillic-1.0.3.tar.gz"
+
+ version('1.0.3', '3119ba1bc7f775c162c96e17a912fe30')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-cursor-misc/package.py b/var/spack/repos/builtin/packages/font-cursor-misc/package.py
new file mode 100644
index 0000000000..6fddc015e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-cursor-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontCursorMisc(Package):
+ """X.org cursor-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/cursor-misc"
+ url = "https://www.x.org/archive/individual/font/font-cursor-misc-1.0.3.tar.gz"
+
+ version('1.0.3', 'a0bf70c7e498f1cd8e3fdf6154f2bb00')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-daewoo-misc/package.py b/var/spack/repos/builtin/packages/font-daewoo-misc/package.py
new file mode 100644
index 0000000000..3dd3b59b14
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-daewoo-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontDaewooMisc(Package):
+ """X.org daewoo-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/daewoo-misc"
+ url = "https://www.x.org/archive/individual/font/font-daewoo-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '71a7e2796f045c9d217a19c4e6c25bc1')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-dec-misc/package.py b/var/spack/repos/builtin/packages/font-dec-misc/package.py
new file mode 100644
index 0000000000..035ae3eb15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-dec-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontDecMisc(Package):
+ """X.org dec-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/dec-misc"
+ url = "https://www.x.org/archive/individual/font/font-dec-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '5a9242f6b60ecf2b8c5b158322ca2a40')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-ibm-type1/package.py b/var/spack/repos/builtin/packages/font-ibm-type1/package.py
new file mode 100644
index 0000000000..34bbe85cfb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-ibm-type1/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontIbmType1(Package):
+ """X.org ibm-type1 font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/ibm-type1"
+ url = "https://www.x.org/archive/individual/font/font-ibm-type1-1.0.3.tar.gz"
+
+ version('1.0.3', '2806116e4adcb89d3d5ff5faf65e57c1')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-isas-misc/package.py b/var/spack/repos/builtin/packages/font-isas-misc/package.py
new file mode 100644
index 0000000000..b0575f8ffc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-isas-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontIsasMisc(Package):
+ """X.org isas-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/isas-misc"
+ url = "https://www.x.org/archive/individual/font/font-isas-misc-1.0.3.tar.gz"
+
+ version('1.0.3', 'ecc3b6fbe8f5721ddf5c7fc66f73e76f')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-jis-misc/package.py b/var/spack/repos/builtin/packages/font-jis-misc/package.py
new file mode 100644
index 0000000000..a5bee3fe31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-jis-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontJisMisc(Package):
+ """X.org jis-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/jis-misc"
+ url = "https://www.x.org/archive/individual/font/font-jis-misc-1.0.3.tar.gz"
+
+ version('1.0.3', 'c48ee5749ae25075d2c7a6111c195e7b')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-micro-misc/package.py b/var/spack/repos/builtin/packages/font-micro-misc/package.py
new file mode 100644
index 0000000000..930a299beb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-micro-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMicroMisc(Package):
+ """X.org micro-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/micro-misc"
+ url = "https://www.x.org/archive/individual/font/font-micro-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '4de3f0ce500aef85f198c52ace5e66ac')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py b/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py
new file mode 100644
index 0000000000..4d25552732
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMiscCyrillic(Package):
+ """X.org misc-cyrillic font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/misc-cyrillic"
+ url = "https://www.x.org/archive/individual/font/font-misc-cyrillic-1.0.3.tar.gz"
+
+ version('1.0.3', 'e7b13da5325f62dd3f630beade6d2656')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py b/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py
new file mode 100644
index 0000000000..6ccdc4e482
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMiscEthiopic(Package):
+ """X.org misc-ethiopic font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/misc-ethiopic"
+ url = "https://www.x.org/archive/individual/font/font-misc-ethiopic-1.0.3.tar.gz"
+
+ version('1.0.3', '02ddea9338d9d36804ad38f3daadb55a')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-misc-meltho/package.py b/var/spack/repos/builtin/packages/font-misc-meltho/package.py
new file mode 100644
index 0000000000..eda84e2b32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-misc-meltho/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMiscMeltho(Package):
+ """X.org misc-meltho font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/misc-meltho"
+ url = "https://www.x.org/archive/individual/font/font-misc-meltho-1.0.3.tar.gz"
+
+ version('1.0.3', '8380696483478449c39b04612f20eea8')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-misc-misc/package.py b/var/spack/repos/builtin/packages/font-misc-misc/package.py
new file mode 100644
index 0000000000..c960d18b39
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-misc-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMiscMisc(Package):
+ """X.org misc-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/misc-misc"
+ url = "https://www.x.org/archive/individual/font/font-misc-misc-1.1.2.tar.gz"
+
+ version('1.1.2', '23a79b92275375315129b440206c85b9')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-mutt-misc/package.py b/var/spack/repos/builtin/packages/font-mutt-misc/package.py
new file mode 100644
index 0000000000..a5d4cae060
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-mutt-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontMuttMisc(Package):
+ """X.org mutt-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/mutt-misc"
+ url = "https://www.x.org/archive/individual/font/font-mutt-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '6c2de53ba514f720e02af48eef28ff32')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-schumacher-misc/package.py b/var/spack/repos/builtin/packages/font-schumacher-misc/package.py
new file mode 100644
index 0000000000..193fa2691e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-schumacher-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontSchumacherMisc(Package):
+ """X.org schumacher-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/schumacher-misc"
+ url = "https://www.x.org/archive/individual/font/font-schumacher-misc-1.1.2.tar.gz"
+
+ version('1.1.2', '1f3386a0a690ba8117fc05b501f9f91b')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py b/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py
new file mode 100644
index 0000000000..5914a3c9de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontScreenCyrillic(Package):
+ """X.org screen-cyrillic font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/screen-cyrillic"
+ url = "https://www.x.org/archive/individual/font/font-screen-cyrillic-1.0.4.tar.gz"
+
+ version('1.0.4', '4cadaf2ba4c4d0f4cb9b4e7b8f0a3019')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-sony-misc/package.py b/var/spack/repos/builtin/packages/font-sony-misc/package.py
new file mode 100644
index 0000000000..145ee20971
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-sony-misc/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontSonyMisc(Package):
+ """X.org sony-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/sony-misc"
+ url = "https://www.x.org/archive/individual/font/font-sony-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '4026cb88e2253efc0b8376003780ccb6')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-sun-misc/package.py b/var/spack/repos/builtin/packages/font-sun-misc/package.py
new file mode 100644
index 0000000000..dcf5b9e217
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-sun-misc/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontSunMisc(Package):
+ """X.org sun-misc font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/sun-misc"
+ url = "https://www.x.org/archive/individual/font/font-sun-misc-1.0.3.tar.gz"
+
+ version('1.0.3', '87ce97ce0582e76bc4064a4d4d10db09')
+
+ depends_on('font-util')
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py
new file mode 100644
index 0000000000..0b310117c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-util/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontUtil(Package):
+ """X.Org font package creation/installation utilities."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/util"
+ url = "https://www.x.org/archive/individual/font/font-util-1.3.1.tar.gz"
+
+ version('1.3.1', 'd153a9af216e4498fa171faea2c82514')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py b/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py
new file mode 100644
index 0000000000..0af366c742
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontWinitzkiCyrillic(Package):
+ """X.org winitzki-cyrillic font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/winitzki-cyrillic"
+ url = "https://www.x.org/archive/individual/font/font-winitzki-cyrillic-1.0.3.tar.gz"
+
+ version('1.0.3', '777c667b080b33793528d5abf3247a48')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/font-xfree86-type1/package.py b/var/spack/repos/builtin/packages/font-xfree86-type1/package.py
new file mode 100644
index 0000000000..dceac106a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/font-xfree86-type1/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class FontXfree86Type1(Package):
+ """X.org xfree86-type1 font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/font/xfree86-type1"
+ url = "https://www.x.org/archive/individual/font/font-xfree86-type1-1.0.4.tar.gz"
+
+ version('1.0.4', '89c33c5176cd580de6636ad50ce7777b')
+
+ depends_on('font-util')
+
+ depends_on('fontconfig', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('mkfontscale', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
+
+ # `make install` copies the files to the font-util installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/fontcacheproto/package.py b/var/spack/repos/builtin/packages/fontcacheproto/package.py
new file mode 100644
index 0000000000..77feb87573
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fontcacheproto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fontcacheproto(Package):
+ """X.org FontcacheProto protocol headers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/fontcacheproto"
+ url = "https://www.x.org/archive/individual/proto/fontcacheproto-0.1.3.tar.gz"
+
+ version('0.1.3', '5a91ab914ffbfbc856e6fcde52e6f3e3')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/fontconfig/package.py b/var/spack/repos/builtin/packages/fontconfig/package.py
index 76e9d8cb3f..4f79bbb6fc 100644
--- a/var/spack/repos/builtin/packages/fontconfig/package.py
+++ b/var/spack/repos/builtin/packages/fontconfig/package.py
@@ -24,18 +24,23 @@
##############################################################################
from spack import *
-class Fontconfig(Package):
- """Fontconfig customizing font access"""
+
+class Fontconfig(AutotoolsPackage):
+ """Fontconfig is a library for configuring/customizing font access"""
homepage = "http://www.freedesktop.org/wiki/Software/fontconfig/"
url = "http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.11.1.tar.gz"
- version('2.11.1' , 'e75e303b4f7756c2b16203a57ac87eba')
+ version('2.11.1', 'e75e303b4f7756c2b16203a57ac87eba')
depends_on('freetype')
depends_on('libxml2')
+ depends_on('pkg-config', type='build')
+ depends_on('font-util', type='build')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix, "--enable-libxml2")
+ def configure_args(self):
+ font_path = join_path(self.spec['font-util'].prefix, 'share', 'fonts')
- make()
- make("install")
+ return ["--prefix={0}".format(self.prefix),
+ "--enable-libxml2",
+ "--disable-docs",
+ "--with-default-fonts={0}".format(font_path)]
diff --git a/var/spack/repos/builtin/packages/fontsproto/package.py b/var/spack/repos/builtin/packages/fontsproto/package.py
new file mode 100644
index 0000000000..c3771e18fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fontsproto/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fontsproto(Package):
+ """X Fonts Extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/fontsproto"
+ url = "https://www.x.org/archive/individual/proto/fontsproto-2.1.3.tar.gz"
+
+ version('2.1.3', '0415f0360e33f3202af67c6c46782251')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/fonttosfnt/package.py b/var/spack/repos/builtin/packages/fonttosfnt/package.py
new file mode 100644
index 0000000000..016cab1ac8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fonttosfnt/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fonttosfnt(Package):
+ """Wrap a bitmap font in a sfnt (TrueType) wrapper."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/fonttosfnt"
+ url = "https://www.x.org/archive/individual/app/fonttosfnt-1.0.4.tar.gz"
+
+ version('1.0.4', 'ba77fd047a9cca400f17db8c46b06ce8')
+
+ depends_on('freetype')
+ depends_on('libfontenc')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/freetype/package.py b/var/spack/repos/builtin/packages/freetype/package.py
index 897c011396..4446ba5666 100644
--- a/var/spack/repos/builtin/packages/freetype/package.py
+++ b/var/spack/repos/builtin/packages/freetype/package.py
@@ -24,17 +24,22 @@
##############################################################################
from spack import *
-class Freetype(Package):
- """Font package"""
- homepage = "http://http://www.freetype.org"
- url = "http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz"
- version('2.5.3' , 'cafe9f210e45360279c730d27bf071e9')
+class Freetype(AutotoolsPackage):
+ """FreeType is a freely available software library to render fonts.
+ It is written in C, designed to be small, efficient, highly customizable,
+ and portable while capable of producing high-quality output (glyph images)
+ of most vector and bitmap font formats."""
- depends_on('libpng')
+ homepage = "https://www.freetype.org/index.html"
+ url = "http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz"
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ version('2.7', '337139e5c7c5bd645fe130608e0fa8b5')
+ version('2.5.3', 'cafe9f210e45360279c730d27bf071e9')
- make()
- make("install")
+ depends_on('libpng')
+ depends_on('bzip2')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def configure_args(self):
+ return ['--with-harfbuzz=no']
diff --git a/var/spack/repos/builtin/packages/fslsfonts/package.py b/var/spack/repos/builtin/packages/fslsfonts/package.py
new file mode 100644
index 0000000000..6e46bd6b5a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fslsfonts/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fslsfonts(Package):
+ """fslsfonts produces a list of fonts served by an X font server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/fslsfonts"
+ url = "https://www.x.org/archive/individual/app/fslsfonts-1.0.5.tar.gz"
+
+ version('1.0.5', 'ef781bd6a7b529d3ed7a256055715730')
+
+ depends_on('libfs')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/fstobdf/package.py b/var/spack/repos/builtin/packages/fstobdf/package.py
new file mode 100644
index 0000000000..6358e33d2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fstobdf/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fstobdf(Package):
+ """The fstobdf program reads a font from a font server and prints a BDF
+ file on the standard output that may be used to recreate the font.
+ This is useful in testing servers, debugging font metrics, and
+ reproducing lost BDF files."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/fstobdf"
+ url = "https://www.x.org/archive/individual/app/fstobdf-1.0.6.tar.gz"
+
+ version('1.0.6', '6d3f24673fcb9ce266f49dc140bbf250')
+
+ depends_on('libx11')
+ depends_on('libfs')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gasnet/package.py b/var/spack/repos/builtin/packages/gasnet/package.py
index b3bd6c25f2..12ecd9fd6f 100644
--- a/var/spack/repos/builtin/packages/gasnet/package.py
+++ b/var/spack/repos/builtin/packages/gasnet/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Gasnet(Package):
"""GASNet is a language-independent, low-level networking layer
that provides network-independent, high-performance communication
@@ -36,24 +37,24 @@ class Gasnet(Package):
version('1.24.0', 'c8afdf48381e8b5a7340bdb32ca0f41a')
-
def install(self, spec, prefix):
# TODO: don't use paths with @ in them.
change_sed_delimiter('@', ';', 'configure')
- configure("--prefix=%s" % prefix,
- # TODO: factor IB suport out into architecture description.
- "--enable-ibv",
- "--enable-udp",
- "--disable-mpi",
- "--enable-par",
- "--enable-mpi-compat",
- "--enable-segment-fast",
- "--disable-aligned-segments",
- # TODO: make an option so that Legion can request builds with/without this.
- # See the Legion webpage for details on when to/not to use.
- "--disable-pshm",
- "--with-segment-mmap-max=64MB")
+ configure(
+ "--prefix=%s" % prefix,
+ # TODO: factor IB suport out into architecture description.
+ "--enable-ibv",
+ "--enable-udp",
+ "--disable-mpi",
+ "--enable-par",
+ "--enable-mpi-compat",
+ "--enable-segment-fast",
+ "--disable-aligned-segments",
+ # TODO: make option so Legion can request builds with/without this.
+ # See the Legion webpage for details on when to/not to use.
+ "--disable-pshm",
+ "--with-segment-mmap-max=64MB")
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/gawk/package.py b/var/spack/repos/builtin/packages/gawk/package.py
new file mode 100644
index 0000000000..fbd0ae53bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gawk/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gawk(AutotoolsPackage):
+ """If you are like many computer users, you would frequently like to make
+ changes in various text files wherever certain patterns appear, or
+ extract data from parts of certain lines while discarding the
+ rest. To write a program to do this in a language such as C or
+ Pascal is a time-consuming inconvenience that may take many lines
+ of code. The job is easy with awk, especially the GNU
+ implementation: gawk.
+
+ The awk utility interprets a special-purpose programming language
+ that makes it possible to handle simple data-reformatting jobs
+ with just a few lines of code.
+ """
+
+ homepage = "https://www.gnu.org/software/gawk/"
+ url = "http://ftp.gnu.org/gnu/gawk/gawk-4.1.4.tar.xz"
+
+ version('4.1.4', '4e7dbc81163e60fd4f0b52496e7542c9')
diff --git a/var/spack/repos/builtin/packages/gbenchmark/package.py b/var/spack/repos/builtin/packages/gbenchmark/package.py
new file mode 100644
index 0000000000..1c54f60243
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gbenchmark/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gbenchmark(CMakePackage):
+ """A microbenchmark support library"""
+
+ homepage = "https://github.com/google/benchmark"
+ url = "https://github.com/google/benchmark/archive/v1.0.0.tar.gz"
+
+ version('1.1.0', '8c539bbe2a212618fa87b6c38fba087100b6e4ae')
+ version('1.0.0', '4f778985dce02d2e63262e6f388a24b595254a93')
+
+ def build_type(self):
+ return "Release"
+
+ def patch(self):
+ filter_file(
+ r'add_cxx_compiler_flag..fstrict.aliasing.',
+ r'##### add_cxx_compiler_flag(-fstrict-aliasing)',
+ 'CMakeLists.txt'
+ )
+ filter_file(
+ r'add_cxx_compiler_flag..Werror',
+ r'##### add_cxx_compiler_flag(-Werror',
+ 'CMakeLists.txt'
+ )
+
+ def cmake_args(self, spec, prefix):
+ if self.compiler.name == 'intel':
+ return [
+ "-DCMAKE_CXX_FLAGS=-no-ansi-alias -fno-strict-aliasing",
+ "-DCMAKE_C_FLAGS=-no-ansi-alias -fno-strict-aliasing",
+ "-DBENCHMARK_ENABLE_TESTING=OFF"
+ ]
+ return []
diff --git a/var/spack/repos/builtin/packages/gcc/gcc-backport.patch b/var/spack/repos/builtin/packages/gcc/gcc-backport.patch
new file mode 100644
index 0000000000..f9fab68f23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/gcc-backport.patch
@@ -0,0 +1,138 @@
+2016-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ Backported from mainline
+ 2016-02-19 Jakub Jelinek <jakub@redhat.com>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * Make-lang.in: Invoke gperf with -L C++.
+ * cfns.gperf: Remove prototypes for hash and libc_name_p
+ inlines.
+ * cfns.h: Regenerated.
+ * except.c (nothrow_libfn_p): Adjust.
+
+Index: gcc/cp/Make-lang.in
+===================================================================
+--- a/gcc/cp/Make-lang.in (revision 233574)
++++ b/gcc/cp/Make-lang.in (working copy)
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+
+ #
+Index: gcc/cp/cfns.gperf
+===================================================================
+--- a/gcc/cp/cfns.gperf (revision 233574)
++++ b/gcc/cp/cfns.gperf (working copy)
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+Index: gcc/cp/cfns.h
+===================================================================
+--- a/gcc/cp/cfns.h (revision 233574)
++++ b/gcc/cp/cfns.h (working copy)
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
+
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+
+@@ -47,26 +47,19 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
+ {
++private:
++ static inline unsigned int hash (const char *str, unsigned int len);
++public:
++ static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
++{
+ static const unsigned short asso_values[] =
+ {
+ 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
+@@ -122,14 +115,8 @@ along with GCC; see the file COPYING3. If not see
+ return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+ enum
+ {
+Index: gcc/cp/except.c
+===================================================================
+--- a/gcc/cp/except.c (revision 233574)
++++ b/gcc/cp/except.c (working copy)
+@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn)
+ unless the system headers are playing rename tricks, and if
+ they are, we don't want to be confused by them. */
+ id = DECL_NAME (fn);
+- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++ IDENTIFIER_LENGTH (id));
+ }
+
+ /* Returns nonzero if an exception of type FROM will be caught by a
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 224105ea0f..31da068d72 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -1,8 +1,33 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
from contextlib import closing
from glob import glob
import sys
+from os.path import isfile
class Gcc(Package):
@@ -10,13 +35,18 @@ class Gcc(Package):
Objective-C, Fortran, and Java."""
homepage = "https://gcc.gnu.org"
- url = "http://open-source-box.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2"
- list_url = 'http://open-source-box.org/gcc/'
+ url = "http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2"
+ list_url = 'http://ftp.gnu.org/gnu/gcc/'
list_depth = 2
+ version('6.3.0', '677a7623c7ef6ab99881bc4e048debb6')
+ version('6.2.0', '9768625159663b300ae4de2f4745fcc4')
version('6.1.0', '8fb6cb98b8459f5863328380fbf06bd1')
+ version('5.4.0', '4c626ac2a83ef30dfb9260e6f59c2b30')
version('5.3.0', 'c9616fd448f980259c31de613e575719')
version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467')
+ version('5.1.0', 'd5525b1127d07d215960e6051c5da35e')
+ version('4.9.4', '87c24a4090c1577ba817ec6882602491')
version('4.9.3', '6f831b4d251872736e8e9cc09746f327')
version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43')
version('4.9.1', 'fddf71348546af523353bd43d34919c1')
@@ -32,6 +62,9 @@ class Gcc(Package):
variant('gold',
default=sys.platform != 'darwin',
description="Build the gold linker plugin for ld-based LTO")
+ variant('piclibs',
+ default=False,
+ description="Build PIC versions of libgfortran.a and libstdc++.a")
depends_on("mpfr")
depends_on("gmp")
@@ -49,6 +82,9 @@ class Gcc(Package):
else:
provides('golang', when='@4.7.1:')
+ patch('piclibs.patch', when='+piclibs')
+ patch('gcc-backport.patch', when='@4.7:4.9.2,5:5.3')
+
def install(self, spec, prefix):
# libjava/configure needs a minor fix to install into spack paths.
filter_file(r"'@.*@'", "'@[[:alnum:]]*@'", 'libjava/configure',
@@ -56,9 +92,23 @@ class Gcc(Package):
enabled_languages = set(('c', 'c++', 'fortran', 'java', 'objc'))
- if spec.satisfies("@4.7.1:") and sys.platform != 'darwin':
+ if spec.satisfies("@4.7.1:") and sys.platform != 'darwin' and \
+ not (spec.satisfies('@:4.9.3') and 'ppc64le' in spec.architecture):
enabled_languages.add('go')
+ # Fix a standard header file for OS X Yosemite that
+ # is GCC incompatible by replacing non-GCC compliant macros
+ if 'yosemite' in spec.architecture:
+ if isfile(r'/usr/include/dispatch/object.h'):
+ new_dispatch_dir = join_path(prefix, 'include', 'dispatch')
+ mkdirp(new_dispatch_dir)
+ cp = which('cp')
+ new_header = join_path(new_dispatch_dir, 'object.h')
+ cp(r'/usr/include/dispatch/object.h', new_header)
+ filter_file(r'typedef void \(\^dispatch_block_t\)\(void\)',
+ 'typedef void* dispatch_block_t',
+ new_header)
+
# Generic options to compile GCC
options = ["--prefix=%s" % prefix, "--libdir=%s/lib64" % prefix,
"--disable-multilib",
diff --git a/var/spack/repos/builtin/packages/gcc/piclibs.patch b/var/spack/repos/builtin/packages/gcc/piclibs.patch
new file mode 100644
index 0000000000..0ecb793067
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc/piclibs.patch
@@ -0,0 +1,62 @@
+diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in
+index 62b9f7a..7666fdb 100644
+--- a/libgfortran/Makefile.in
++++ b/libgfortran/Makefile.in
+@@ -357,11 +357,11 @@ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
++CFLAGS = @CFLAGS@ -fPIC
+ CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
++CPPFLAGS = @CPPFLAGS@ -fPIC
+ CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
++DEFS = @DEFS@ -fPIC
+ DEPDIR = @DEPDIR@
+ DSYMUTIL = @DSYMUTIL@
+ DUMPBIN = @DUMPBIN@
+@@ -371,7 +371,7 @@ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FC = @FC@
+-FCFLAGS = @FCFLAGS@
++FCFLAGS = @FCFLAGS@ -fPIC
+ FGREP = @FGREP@
+ FPU_HOST_HEADER = @FPU_HOST_HEADER@
+ GREP = @GREP@
+diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
+index bede542..9b3e442 100644
+--- a/libstdc++-v3/Makefile.in
++++ b/libstdc++-v3/Makefile.in
+@@ -115,7 +115,7 @@ CC = @CC@
+ CCODECVT_CC = @CCODECVT_CC@
+ CCOLLATE_CC = @CCOLLATE_CC@
+ CCTYPE_CC = @CCTYPE_CC@
+-CFLAGS = @CFLAGS@
++CFLAGS = @CFLAGS@ -fPIC
+ CLOCALE_CC = @CLOCALE_CC@
+ CLOCALE_H = @CLOCALE_H@
+ CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+@@ -124,7 +124,7 @@ CMESSAGES_H = @CMESSAGES_H@
+ CMONEY_CC = @CMONEY_CC@
+ CNUMERIC_CC = @CNUMERIC_CC@
+ CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
++CPPFLAGS = @CPPFLAGS@ -fPIC
+ CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+ CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
+ CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
+@@ -139,7 +139,7 @@ CYGPATH_W = @CYGPATH_W@
+ C_INCLUDE_DIR = @C_INCLUDE_DIR@
+ DBLATEX = @DBLATEX@
+ DEBUG_FLAGS = @DEBUG_FLAGS@
+-DEFS = @DEFS@
++DEFS = @DEFS@ -fPIC
+ DOT = @DOT@
+ DOXYGEN = @DOXYGEN@
+ DSYMUTIL = @DSYMUTIL@
+--
+2.8.3
+
diff --git a/var/spack/repos/builtin/packages/gccmakedep/package.py b/var/spack/repos/builtin/packages/gccmakedep/package.py
new file mode 100644
index 0000000000..ed2530d89e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gccmakedep/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gccmakedep(Package):
+ """X.org gccmakedep utilities."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/util/gccmakedep/"
+ url = "https://www.x.org/archive/individual/util/gccmakedep-1.0.3.tar.gz"
+
+ version('1.0.3', '127ddb6131eb4a56fdf6644a63ade788')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py
new file mode 100644
index 0000000000..3b3abc71ed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gconf/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gconf(Package):
+ """GConf is a system for storing application preferences."""
+
+ homepage = "https://projects.gnome.org/gconf/"
+ url = "ftp://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz"
+
+ version('3.2.6', '2b16996d0e4b112856ee5c59130e822c')
+
+ depends_on('glib@2.14.0:')
+ depends_on('libxml2')
+
+ # TODO: add missing dependencies
+ # gio-2.0 >= 2.31.0
+ # gthread-2.0
+ # gmodule-2.0 >= 2.7.0
+ # gobject-2.0 >= 2.7.0
+ # dbus-1 >= 1.0.0
+ # dbus-glib-1 >= 0.74
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index caff06bdd6..b52b1f1038 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -24,23 +24,24 @@
##############################################################################
from spack import *
+
class Gdal(Package):
- """
- GDAL is a translator library for raster and vector geospatial
+ """GDAL is a translator library for raster and vector geospatial
data formats that is released under an X/MIT style Open Source
license by the Open Source Geospatial Foundation. As a library,
it presents a single raster abstract data model and vector
abstract data model to the calling application for all supported
formats. It also comes with a variety of useful command line
- utilities for data translation and processing
+ utilities for data translation and processing.
"""
homepage = "http://www.gdal.org/"
- url = "http://download.osgeo.org/gdal/2.0.2/gdal-2.0.2.tar.gz"
+ url = "http://download.osgeo.org/gdal/2.1.2/gdal-2.1.2.tar.xz"
list_url = "http://download.osgeo.org/gdal/"
list_depth = 2
- version('2.0.2', '573865f3f59ba7b4f8f4cddf223b52a5')
+ version('2.1.2', 'ae85b78888514c75e813d658cac9478e')
+ version('2.0.2', '940208e737c87d31a90eaae43d0efd65')
extends('python')
@@ -62,7 +63,7 @@ class Gdal(Package):
depends_on("libpng")
depends_on("zlib")
depends_on("proj")
- depends_on("py-numpy")
+ depends_on("py-numpy", type=('build', 'run'))
parallel = False
diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py
index 58d8a545db..f90e4e7ff0 100644
--- a/var/spack/repos/builtin/packages/gdb/package.py
+++ b/var/spack/repos/builtin/packages/gdb/package.py
@@ -22,15 +22,15 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Gdb(Package):
+ """GDB, the GNU Project debugger, allows you to see what is going on
+ 'inside' another program while it executes -- or what another
+ program was doing at the moment it crashed.
"""
- GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes
- -- or what another program was doing at the moment it crashed.
- """
+
homepage = "https://www.gnu.org/software/gdb"
url = "http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.gz"
@@ -41,9 +41,18 @@ class Gdb(Package):
version('7.9', '8f8ced422fe462a00e0135a643544f17')
version('7.8.2', '8b0ea8b3559d3d90b3ff4952f0aeafbc')
- depends_on('texinfo')
+ variant('python', default=True, description='Compile with Python support')
+
+ # Required dependency
+ depends_on('texinfo', type='build')
+
+ # Optional dependency
+ depends_on('python', when='+python')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ options = ['--prefix=%s' % prefix]
+ if '+python' in spec:
+ options.extend(['--with-python'])
+ configure(*options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
index daf43f3256..4d39086b06 100644
--- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
+++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class GdkPixbuf(Package):
"""The Gdk Pixbuf is a toolkit for image loading and pixel buffer
manipulation. It is used by GTK+ 2 and GTK+ 3 to load and
@@ -35,6 +36,8 @@ class GdkPixbuf(Package):
version('2.31.2', '6be6bbc4f356d4b79ab4226860ab8523')
+ depends_on("pkg-config", type="build")
+ depends_on("gettext")
depends_on("glib")
depends_on("jpeg")
depends_on("libpng")
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
new file mode 100644
index 0000000000..239ef6d586
--- /dev/null
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -0,0 +1,85 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Geant4(Package):
+ """Geant4 is a toolkit for the simulation of the passage of particles
+ through matter. Its areas of application include high energy, nuclear
+ and accelerator physics, as well as studies in medical and space
+ science."""
+
+ homepage = "http://geant4.cern.ch/"
+ url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz"
+
+ version('10.02.p01', 'b81f7082a15f6a34b720b6f15c6289cfe4ddbbbdcef0dc52719f71fac95f7f1c')
+ version('10.01.p03', '4fb4175cc0dabcd517443fbdccd97439')
+
+ variant('qt', default=False, description='Enable Qt support')
+
+ depends_on('cmake@3.5:', type='build')
+
+ depends_on("clhep@2.3.1.1~cxx11+cxx14", when="@10.02.p01")
+ depends_on("clhep@2.2.0.4~cxx11+cxx14", when="@10.01.p03")
+ depends_on("expat")
+ depends_on("zlib")
+ depends_on("xerces-c")
+ depends_on("qt@4.8:", when="+qt")
+
+ def install(self, spec, prefix):
+ cmake_args = list(std_cmake_args)
+ cmake_args.append('-DXERCESC_ROOT_DIR:STRING=%s' %
+ spec['xerces-c'].prefix)
+ cmake_args.append('-DGEANT4_BUILD_CXXSTD=c++14')
+
+ cmake_args += ['-DGEANT4_USE_GDML=ON',
+ '-DGEANT4_USE_SYSTEM_EXPAT=ON',
+ '-DGEANT4_USE_SYSTEM_ZLIB=ON',
+ '-DGEANT4_USE_SYSTEM_CLHEP=ON']
+
+ # fixme: turn off data for now and maybe each data set should
+ # go into a separate package to cut down on disk usage between
+ # different code versions using the same data versions.
+ cmake_args.append('-DGEANT4_INSTALL_DATA=OFF')
+
+ # http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch02s03.html
+ # fixme: likely things that need addressing:
+ # -DGEANT4_USE_OPENGL_X11=ON
+
+ if '+qt' in spec:
+ cmake_args.append('-DGEANT4_USE_QT=ON')
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *cmake_args)
+ make()
+ make("install")
+
+ def url_for_version(self, version):
+ """Handle Geant4's unusual version string."""
+ return "http://geant4.cern.ch/support/source/geant4.%s.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/geos/package.py b/var/spack/repos/builtin/packages/geos/package.py
index 88438b0a99..324186cfbc 100644
--- a/var/spack/repos/builtin/packages/geos/package.py
+++ b/var/spack/repos/builtin/packages/geos/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class Geos(Package):
"""GEOS (Geometry Engine - Open Source) is a C++ port of the Java
diff --git a/var/spack/repos/builtin/packages/gettext/package.py b/var/spack/repos/builtin/packages/gettext/package.py
index df301aea3c..cf260c3f8a 100644
--- a/var/spack/repos/builtin/packages/gettext/package.py
+++ b/var/spack/repos/builtin/packages/gettext/package.py
@@ -24,31 +24,80 @@
##############################################################################
from spack import *
+
class Gettext(Package):
"""GNU internationalization (i18n) and localization (l10n) library."""
homepage = "https://www.gnu.org/software/gettext/"
url = "http://ftpmirror.gnu.org/gettext/gettext-0.19.7.tar.xz"
- version('0.19.7', 'f81e50556da41b44c1d59ac93474dca5')
+ version('0.19.8.1', 'df3f5690eaa30fd228537b00cb7b7590')
+ version('0.19.7', 'f81e50556da41b44c1d59ac93474dca5')
+
+ # Recommended variants
+ variant('curses', default=True, description='Use libncurses')
+ variant('libxml2', default=True, description='Use libxml2')
+ variant('git', default=True, description='Enable git support')
+ variant('tar', default=True, description='Enable tar support')
+ variant('bzip2', default=True, description='Enable bzip2 support')
+ variant('xz', default=True, description='Enable xz support')
+
+ # Optional variants
+ variant('libunistring', default=False, description='Use libunistring')
+
+ # Recommended dependencies
+ depends_on('ncurses', when='+curses')
+ depends_on('libxml2', when='+libxml2')
+ # Java runtime and compiler (e.g. GNU gcj or kaffe)
+ # C# runtime and compiler (e.g. pnet or mono)
+ depends_on('tar', when='+tar')
+ # depends_on('gzip', when='+gzip')
+ depends_on('bzip2', when='+bzip2')
+ depends_on('xz', when='+xz')
+
+ # Optional dependencies
+ # depends_on('glib') # circular dependency?
+ # depends_on('libcroco@0.6.1:')
+ depends_on('libunistring', when='+libunistring')
+ # depends_on('cvs')
def install(self, spec, prefix):
- options = ['--disable-dependency-tracking',
- '--disable-silent-rules',
- '--disable-debug',
- '--prefix=%s' % prefix,
- '--with-included-gettext',
- '--with-included-glib',
- '--with-included-libcroco',
- '--with-included-libunistring',
- '--with-emacs',
- '--with-lispdir=%s/emacs/site-lisp/gettext' % prefix.share,
- '--disable-java',
- '--disable-csharp',
- '--without-git', # Don't use VCS systems to create these archives
- '--without-cvs',
- '--without-xz']
-
- configure(*options)
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--disable-java',
+ '--disable-csharp',
+ '--with-included-glib',
+ '--with-included-gettext',
+ '--with-included-libcroco',
+ '--without-emacs',
+ '--with-lispdir=%s/emacs/site-lisp/gettext' % prefix.share,
+ '--without-cvs'
+ ]
+
+ if '+curses' in spec:
+ config_args.append('--with-ncurses-prefix={0}'.format(
+ spec['ncurses'].prefix))
+ else:
+ config_args.append('--disable-curses')
+
+ if '+libxml2' in spec:
+ config_args.append('--with-libxml2-prefix={0}'.format(
+ spec['libxml2'].prefix))
+ else:
+ config_args.append('--with-included-libxml')
+
+ if '+bzip2' not in spec:
+ config_args.append('--without-bzip2')
+
+ if '+xz' not in spec:
+ config_args.append('--without-xz')
+
+ if '+libunistring' in spec:
+ config_args.append('--with-libunistring-prefix={0}'.format(
+ spec['libunistring'].prefix))
+ else:
+ config_args.append('--with-included-libunistring')
+
+ configure(*config_args)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/gflags/package.py b/var/spack/repos/builtin/packages/gflags/package.py
index 9f3552d53d..7e04c9b682 100644
--- a/var/spack/repos/builtin/packages/gflags/package.py
+++ b/var/spack/repos/builtin/packages/gflags/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Gflags(Package):
"""The gflags package contains a C++ library that implements
commandline flags processing. It includes built-in support for
@@ -37,6 +37,8 @@ class Gflags(Package):
version('2.1.2', 'ac432de923f9de1e9780b5254884599f')
+ depends_on('cmake', type='build')
+
def install(self, spec, prefix):
cmake("-DCMAKE_INSTALL_PREFIX=" + prefix,
"-DBUILD_SHARED_LIBS=ON")
diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
new file mode 100644
index 0000000000..1bf3f857b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class GhostscriptFonts(Package):
+ """Ghostscript Fonts"""
+
+ homepage = "http://ghostscript.com/"
+ url = "ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz"
+
+ version('8.11', '6865682b095f8c4500c54b285ff05ef6')
+
+ def install(self, spec, prefix):
+ fdir = join_path(prefix.share, 'font')
+ mkdirp(fdir)
+ files = glob.glob('*')
+ for f in files:
+ if not f.startswith('spack-build'):
+ install(f, fdir)
diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py
index 707f65c902..f63ebac0c1 100644
--- a/var/spack/repos/builtin/packages/ghostscript/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript/package.py
@@ -26,16 +26,20 @@ from spack import *
class Ghostscript(Package):
- """an interpreter for the PostScript language and for PDF. """
+ """An interpreter for the PostScript language and for PDF."""
+
homepage = "http://ghostscript.com/"
- url = "http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.16.tar.gz"
+ url = "http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.18.tar.gz"
- version('9.16', '829319325bbdb83f5c81379a8f86f38f')
+ version('9.18', '33a47567d7a591c00a253caddd12a88a')
parallel = False
+ depends_on('libtiff')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix, "--enable-shared")
+ configure('--prefix={0}'.format(prefix),
+ '--with-system-libtiff')
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/giflib/package.py b/var/spack/repos/builtin/packages/giflib/package.py
new file mode 100644
index 0000000000..7082384b9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/giflib/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Giflib(Package):
+ """The GIFLIB project maintains the giflib service library, which has
+ been pulling images out of GIFs since 1989."""
+
+ homepage = "http://giflib.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/giflib/giflib-5.1.4.tar.bz2"
+
+ version('5.1.4', '2c171ced93c0e83bb09e6ccad8e3ba2b')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/git-lfs/package.py b/var/spack/repos/builtin/packages/git-lfs/package.py
new file mode 100644
index 0000000000..25e440ff6d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/git-lfs/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GitLfs(Package):
+ """Git LFS is a system for managing and versioning large files in
+ association with a Git repository. Instead of storing the large files
+ within the Git repository as blobs, Git LFS stores special "pointer
+ files" in the repository, while storing the actual file contents on a
+ Git LFS server."""
+
+ homepage = "https://git-lfs.github.com"
+ git_url = "https://github.com/github/git-lfs.git"
+
+ version('1.4.1', git=git_url, tag='v1.4.1')
+ version('1.3.1', git=git_url, tag='v1.3.1')
+
+ # TODO: Implement this by following the instructions at this location:
+ # https://github.com/github/git-lfs/blob/master/CONTRIBUTING.md#building
+ # variant('test', default=True, description='Build and run tests as part of the build.') # NOQA: E501
+
+ depends_on('go@1.5:', type='build')
+ depends_on('git@1.8.2:', type='run')
+
+ def install(self, spec, prefix):
+ bootstrap_script = Executable(join_path('script', 'bootstrap'))
+ bootstrap_script()
+
+ mkdirp(prefix.bin)
+ install(join_path('bin', 'git-lfs'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index 03e7d3e031..c7b239ef12 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -22,8 +22,10 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+import sys
from spack import *
+
class Git(Package):
"""Git is a free and open source distributed version control
system designed to handle everything from small to very large
@@ -31,47 +33,56 @@ class Git(Package):
homepage = "http://git-scm.com"
url = "https://github.com/git/git/tarball/v2.7.1"
+ version('2.11.0', 'c63fb83b86431af96f8e9722ebb3ca01')
+ version('2.9.3', 'b0edfc0f3cb046aec7ed68a4b7282a75')
+ version('2.9.2', '3ff8a9b30fd5c99a02e6d6585ab543fc')
+ version('2.9.1', 'a5d806743a992300b45f734d1667ddd2')
+ version('2.9.0', 'bf33a13c2adc05bc9d654c415332bc65')
+ version('2.8.4', '86afb10254c3803894c9863fb5896bb6')
+ version('2.8.3', '0e19f31f96f9364fd247b8dc737dacfd')
+ version('2.8.2', '3d55550880af98f6e35c7f1d7c5aecfe')
version('2.8.1', '1308448d95afa41a4135903f22262fc8')
version('2.8.0', 'eca687e46e9750121638f258cff8317b')
version('2.7.3', 'fa1c008b56618c355a32ba4a678305f6')
version('2.7.1', 'bf0706b433a8dedd27a63a72f9a66060')
-
# See here for info on vulnerable Git versions:
# http://www.theregister.co.uk/2016/03/16/git_server_client_patch_now/
# All the following are vulnerable
- #version('2.6.3', 'b711be7628a4a2c25f38d859ee81b423')
- #version('2.6.2', 'da293290da69f45a86a311ad3cd43dc8')
- #version('2.6.1', '4c62ee9c5991fe93d99cf2a6b68397fd')
- #version('2.6.0', 'eb76a07148d94802a1745d759716a57e')
- #version('2.5.4', '3eca2390cf1fa698b48e2a233563a76b')
- #version('2.2.1', 'ff41fdb094eed1ec430aed8ee9b9849c')
-
+ # version('2.6.3', 'b711be7628a4a2c25f38d859ee81b423')
+ # version('2.6.2', 'da293290da69f45a86a311ad3cd43dc8')
+ # version('2.6.1', '4c62ee9c5991fe93d99cf2a6b68397fd')
+ # version('2.6.0', 'eb76a07148d94802a1745d759716a57e')
+ # version('2.5.4', '3eca2390cf1fa698b48e2a233563a76b')
+ # version('2.2.1', 'ff41fdb094eed1ec430aed8ee9b9849c')
- depends_on("openssl")
- depends_on("autoconf")
+ depends_on("autoconf", type='build')
depends_on("curl")
depends_on("expat")
-
- # Also depends_on gettext: apt-get install gettext (Ubuntu)
-
- # Use system perl for now.
- # depends_on("perl")
- # depends_on("pcre")
-
+ depends_on("gettext")
+ depends_on("libiconv")
+ depends_on("openssl")
+ depends_on("pcre")
+ depends_on("perl")
depends_on("zlib")
def install(self, spec, prefix):
+ env['LDFLAGS'] = "-L%s" % spec['gettext'].prefix.lib + " -lintl"
configure_args = [
"--prefix=%s" % prefix,
- "--without-pcre",
- "--with-openssl=%s" % spec['openssl'].prefix,
- "--with-zlib=%s" % spec['zlib'].prefix,
"--with-curl=%s" % spec['curl'].prefix,
"--with-expat=%s" % spec['expat'].prefix,
- ]
+ "--with-iconv=%s" % spec['libiconv'].prefix,
+ "--with-libpcre=%s" % spec['pcre'].prefix,
+ "--with-openssl=%s" % spec['openssl'].prefix,
+ "--with-perl=%s" % join_path(spec['perl'].prefix.bin, 'perl'),
+ "--with-zlib=%s" % spec['zlib'].prefix,
+ ]
which('autoreconf')('-i')
configure(*configure_args)
+ if sys.platform == "darwin":
+ # Don't link with -lrt; the system has no (and needs no) librt
+ filter_file(r' -lrt$', '', 'Makefile')
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py
index 25172bd544..d5e7b00027 100644
--- a/var/spack/repos/builtin/packages/gl2ps/package.py
+++ b/var/spack/repos/builtin/packages/gl2ps/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Gl2ps(Package):
"""GL2PS is a C library providing high quality vector output for any
OpenGL application."""
diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py
new file mode 100644
index 0000000000..5df7c8642f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glew/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Glew(Package):
+ """The OpenGL Extension Wrangler Library."""
+
+ homepage = "http://glew.sourceforge.net/"
+ url = "https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download"
+
+ version('2.0.0', '2a2cd7c98f13854d2fcddae0d2b20411')
+
+ depends_on("cmake", type='build')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ with working_dir('build'):
+ cmake('./cmake/', *options)
+
+ # https://github.com/Homebrew/legacy-homebrew/issues/22025
+ # Note: This file is generated only after cmake is run
+ filter_file(r'Requires: glu',
+ (''), '../glew.pc')
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/glib/g_date_strftime.patch b/var/spack/repos/builtin/packages/glib/g_date_strftime.patch
new file mode 100644
index 0000000000..532c743277
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glib/g_date_strftime.patch
@@ -0,0 +1,34 @@
+From 00148329967adb196138372771052a3f606a6ea3 Mon Sep 17 00:00:00 2001
+From: coypu <coypu@sdf.org>
+Date: Wed, 2 Mar 2016 19:43:10 +0200
+Subject: [PATCH 2/2] gdate: Suppress string format literal warning
+
+Newer versions of GCC emit an error here, but we know it's safe.
+https://bugzilla.gnome.org/761550
+---
+ glib/gdate.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/glib/gdate.c b/glib/gdate.c
+index 4aece02..92c34d2 100644
+--- a/glib/gdate.c
++++ b/glib/gdate.c
+@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
+ *
+ * Returns: number of characters written to the buffer, or 0 the buffer was too small
+ */
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
++
+ gsize
+ g_date_strftime (gchar *s,
+ gsize slen,
+@@ -2549,3 +2552,5 @@ g_date_strftime (gchar *s,
+ return retval;
+ #endif
+ }
++
++#pragma GCC diagnostic pop
+--
+2.7.1
+
diff --git a/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch b/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch
new file mode 100644
index 0000000000..cfcfe424be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch
@@ -0,0 +1,16 @@
+--- a/configure.ac 2016-08-16 11:57:34.000000000 -0400
++++ b/configure.ac 2016-08-16 11:57:36.000000000 -0400
+@@ -3357,11 +3357,11 @@
+ enable_compile_warnings=yes)
+ AS_IF([test "x$enable_compile_warnings" = xyes], [
+ CC_CHECK_FLAGS_APPEND([GLIB_WARN_CFLAGS], [CFLAGS], [\
+ -Wall -Wstrict-prototypes -Werror=declaration-after-statement \
+ -Werror=missing-prototypes -Werror=implicit-function-declaration \
+- -Werror=pointer-arith -Werror=init-self -Werror=format-security \
+- -Werror=format=2 -Werror=missing-include-dirs])
++ -Werror=pointer-arith -Werror=init-self \
++ -Werror=missing-include-dirs])
+ ])
+ AC_SUBST(GLIB_WARN_CFLAGS)
+
+ #
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index b146ea63d8..4d8085baf2 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -23,24 +23,53 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import sys
+import os
+
class Glib(Package):
"""The GLib package contains a low-level libraries useful for
providing data structure handling for C, portability wrappers
and interfaces for such runtime functionality as an event loop,
threads, dynamic loading and an object system."""
+
homepage = "https://developer.gnome.org/glib/"
url = "http://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.1.tar.xz"
+ version('2.49.4', 'e2c87c03017b0cd02c4c73274b92b148')
+ version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb')
version('2.42.1', '89c4119e50e767d3532158605ee9121a')
- depends_on("libffi")
- depends_on("zlib")
- depends_on("pkg-config")
- depends_on('gettext', sys.platform=='darwin')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('pkg-config+internal_glib', type='build')
+ depends_on('libffi')
+ depends_on('zlib')
+ depends_on('gettext')
+ depends_on('pcre+utf', when='@2.48:')
+
+ # The following patch is needed for gcc-6.1
+ patch('g_date_strftime.patch', when='@2.42.1')
+ # Clang doesn't seem to acknowledge the pragma lines to disable the -Werror
+ # around a legitimate usage.
+ patch('no-Werror=format-security.patch')
+
+ def url_for_version(self, version):
+ """Handle glib's version-based custom URLs."""
+ url = 'http://ftp.gnome.org/pub/gnome/sources/glib'
+ return url + '/%s/glib-%s.tar.xz' % (version.up_to(2), version)
def install(self, spec, prefix):
+ autoreconf = which("autoreconf")
+ autoreconf("--install", "--verbose", "--force",
+ "-I", "config",
+ "-I", os.path.join(spec['pkg-config'].prefix,
+ "share", "aclocal"),
+ "-I", os.path.join(spec['automake'].prefix,
+ "share", "aclocal"),
+ "-I", os.path.join(spec['libtool'].prefix,
+ "share", "aclocal"),
+ )
configure("--prefix=%s" % prefix)
make()
make("install", parallel=False)
diff --git a/var/spack/repos/builtin/packages/glm/package.py b/var/spack/repos/builtin/packages/glm/package.py
index 0c9212f17d..c565b3cae7 100644
--- a/var/spack/repos/builtin/packages/glm/package.py
+++ b/var/spack/repos/builtin/packages/glm/package.py
@@ -26,17 +26,18 @@ from spack import *
class Glm(Package):
- """
- OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on
- the OpenGL Shading Language (GLSL) specification.
+ """OpenGL Mathematics (GLM) is a header only C++ mathematics library for
+ graphics software based on the OpenGL Shading Language (GLSL)
+ specification.
+
"""
homepage = "https://github.com/g-truc/glm"
url = "https://github.com/g-truc/glm/archive/0.9.7.1.tar.gz"
version('0.9.7.1', '61af6639cdf652d1cdd7117190afced8')
-
- depends_on ("cmake")
+
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py
index c144d6660b..fedf41c829 100644
--- a/var/spack/repos/builtin/packages/global/package.py
+++ b/var/spack/repos/builtin/packages/global/package.py
@@ -34,7 +34,7 @@ class Global(Package):
version('6.5', 'dfec818b4f53d91721e247cf7b218078')
- depends_on('exuberant-ctags')
+ depends_on('exuberant-ctags', type=('build', 'run'))
depends_on('ncurses')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/globus-toolkit/package.py b/var/spack/repos/builtin/packages/globus-toolkit/package.py
new file mode 100644
index 0000000000..5cec13a5af
--- /dev/null
+++ b/var/spack/repos/builtin/packages/globus-toolkit/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GlobusToolkit(Package):
+ """The Globus Toolkit is an open source software toolkit used for building
+ grids"""
+
+ homepage = "http://toolkit.globus.org"
+ url = "http://toolkit.globus.org/ftppub/gt6/installers/src/globus_toolkit-6.0.1470089956.tar.gz"
+
+ version('6.0.1470089956', 'b77fe3cc5a5844df995688b0e630d077')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/glog/package.py b/var/spack/repos/builtin/packages/glog/package.py
index 03ee092429..14f042732b 100644
--- a/var/spack/repos/builtin/packages/glog/package.py
+++ b/var/spack/repos/builtin/packages/glog/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Glog(Package):
"""C++ implementation of the Google logging module."""
diff --git a/var/spack/repos/builtin/packages/glpk/package.py b/var/spack/repos/builtin/packages/glpk/package.py
index 2ab3c38150..1b52643e59 100644
--- a/var/spack/repos/builtin/packages/glpk/package.py
+++ b/var/spack/repos/builtin/packages/glpk/package.py
@@ -22,22 +22,23 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Glpk(Package):
- """
- The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed
- integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in
- the form of a callable library
+ """The GLPK (GNU Linear Programming Kit) package is intended for solving
+ large-scale linear programming (LP), mixed integer programming
+ (MIP), and other related problems. It is a set of routines written
+ in ANSI C and organized in the form of a callable library
+
"""
homepage = "https://www.gnu.org/software/glpk"
url = "http://ftp.gnu.org/gnu/glpk/glpk-4.57.tar.gz"
version('4.57', '237531a54f73155842f8defe51aedb0f')
- variant('gmp', default=False, description='Activates support for GMP library')
+ variant('gmp', default=False,
+ description='Activates support for GMP library')
depends_on('gmp', when='+gmp')
diff --git a/var/spack/repos/builtin/packages/glproto/package.py b/var/spack/repos/builtin/packages/glproto/package.py
new file mode 100644
index 0000000000..462e529067
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Glproto(Package):
+ """OpenGL Extension to the X Window System.
+
+ This extension defines a protocol for the client to send 3D rendering
+ commands to the X server."""
+
+ homepage = "https://www.x.org/wiki/"
+ url = "https://www.x.org/archive/individual/proto/glproto-1.4.17.tar.gz"
+
+ version('1.4.17', 'd69554c1b51a83f2c6976a640819911b')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
new file mode 100644
index 0000000000..ca296350a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gmake(Package):
+ """GNU Make."""
+
+ homepage = "http://gnu.org/gnu/make"
+ url = "ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz"
+
+ version('4.0', 'b5e558f981326d9ca1bfdb841640721a')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+ with working_dir(prefix.bin):
+ symlink('make', 'gmake')
diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py
index 3933788425..45e8b8a452 100644
--- a/var/spack/repos/builtin/packages/gmp/package.py
+++ b/var/spack/repos/builtin/packages/gmp/package.py
@@ -24,20 +24,26 @@
##############################################################################
from spack import *
-class Gmp(Package):
- """GMP is a free library for arbitrary precision arithmetic,
- operating on signed integers, rational numbers, and
- floating-point numbers."""
+
+class Gmp(AutotoolsPackage):
+ """GMP is a free library for arbitrary precision arithmetic, operating
+ on signed integers, rational numbers, and floating-point numbers."""
+
homepage = "https://gmplib.org"
- url = "https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2"
+ url = "https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2"
- version('6.1.0' , '86ee6e54ebfc4a90b643a65e402c4048')
+ version('6.1.2', '8ddbb26dc3bd4e2302984debba1406a5')
+ version('6.1.1', '4c175f86e11eb32d8bf9872ca3a8e11d')
+ version('6.1.0', '86ee6e54ebfc4a90b643a65e402c4048')
version('6.0.0a', 'b7ff2d88cae7f8085bd5006096eed470')
- version('6.0.0' , '6ef5869ae735db9995619135bd856b84')
+ version('6.0.0', '6ef5869ae735db9995619135bd856b84')
+
+ depends_on('m4', type='build')
- depends_on("m4")
+ def configure_args(self):
+ args = ['--enable-cxx']
+ # This flag is necessary for the Intel build to pass `make check`
+ if self.spec.compiler.name == 'intel':
+ args.append('CXXFLAGS=-no-ftz')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ return args
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index e425d460c2..fffd448443 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -25,54 +25,106 @@
from spack import *
-class Gmsh(Package):
- """
- Gmsh is a free 3D finite element grid generator with a built-in CAD engine and post-processor. Its design goal is
- to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization
- capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of
- any input to these modules is done either interactively using the graphical user interface or in ASCII text files
- using Gmsh's own scripting language.
+class Gmsh(CMakePackage):
+ """Gmsh is a free 3D finite element grid generator with a built-in CAD engine
+ and post-processor. Its design goal is to provide a fast, light and
+ user-friendly meshing tool with parametric input and advanced visualization
+ capabilities. Gmsh is built around four modules: geometry, mesh, solver and
+ post-processing. The specification of any input to these modules is done
+ either interactively using the graphical user interface or in ASCII text
+ files using Gmsh's own scripting language.
"""
+
homepage = 'http://gmsh.info'
url = 'http://gmsh.info/src/gmsh-2.11.0-source.tgz'
+ version('2.15.0', '992a4b580454105f719f5bc05441d3d392ab0b4b80d4ea07b61ca3bdc974070a')
+ version('2.12.0', '7fbd2ec8071e79725266e72744d21e902d4fe6fa9e7c52340ad5f4be5c159d09')
version('2.11.0', 'f15b6e7ac9ca649c9a74440e1259d0db')
- # FIXME : Misses dependencies on gmm, PetsC, TetGen
-
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds the library in debug mode')
- variant('mpi', default=False, description='Builds MPI support for parser and solver')
- variant('fltk', default=False, description='Enables the build of the FLTK GUI')
- variant('hdf5', default=False, description='Enables HDF5 support')
- variant('compression', default=True, description='Enables IO compression through zlib')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds the library in debug mode')
+ variant('mpi', default=True,
+ description='Builds MPI support for parser and solver')
+ variant('fltk', default=False,
+ description='Enables the build of the FLTK GUI')
+ variant('hdf5', default=False, description='Enables HDF5 support')
+ variant('compression', default=True,
+ description='Enables IO compression through zlib')
+ variant('oce', default=False, description='Build with OCE')
+ variant('petsc', default=False, description='Build with PETSc')
+ variant('slepc', default=False,
+ description='Build with SLEPc (only when PETSc is enabled)')
depends_on('blas')
depends_on('lapack')
+ depends_on('cmake@2.8:', type='build')
depends_on('gmp')
- depends_on('mpi', when='+mpi')
- depends_on('fltk', when='+fltk') # Assumes OpenGL with GLU is already provided by the system
+ depends_on('mpi', when='+mpi')
+ # Assumes OpenGL with GLU is already provided by the system:
+ depends_on('fltk', when='+fltk')
depends_on('hdf5', when='+hdf5')
- depends_on('zlib', when='+compression')
+ depends_on('oce', when='+oce')
+ depends_on('petsc+mpi', when='+petsc+mpi')
+ depends_on('petsc', when='+petsc~mpi')
+ depends_on('slepc', when='+slepc+petsc')
+ depends_on('zlib', when='+compression')
- def install(self, spec, prefix):
+ def cmake_args(self):
+ spec = self.spec
+ prefix = self.prefix
options = []
- options.extend(std_cmake_args)
- build_directory = join_path(self.stage.path, 'spack-build')
- source_directory = self.stage.source_path
+ # Make sure native file dialogs are used
+ options.extend(['-DENABLE_NATIVE_FILE_CHOOSER=ON'])
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
# Prevent GMsh from using its own strange directory structure on OSX
options.append('-DENABLE_OS_SPECIFIC_INSTALL=OFF')
+ # Make sure GMSH picks up correct BlasLapack by providing linker flags
+ blas_lapack = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options.append(
+ '-DBLAS_LAPACK_LIBRARIES={0}'.format(blas_lapack.ld_flags))
+
+ # Gmsh does not have an option to compile against external metis.
+ # Its own Metis, however, fails to build
+ options.append('-DENABLE_METIS=OFF')
+
+ if '+fltk' in spec:
+ options.append('-DENABLE_FLTK=ON')
+ else:
+ options.append('-DENABLE_FLTK=OFF')
+
+ if '+oce' in spec:
+ env['CASROOT'] = self.spec['oce'].prefix
+ options.extend(['-DENABLE_OCC=ON'])
+ else:
+ options.extend(['-DENABLE_OCC=OFF'])
+
+ if '+petsc' in spec:
+ env['PETSC_DIR'] = self.spec['petsc'].prefix
+ options.extend(['-DENABLE_PETSC=ON'])
+ else:
+ options.extend(['-DENABLE_PETSC=OFF'])
+
+ if '+slepc' in spec:
+ env['SLEPC_DIR'] = self.spec['slepc'].prefix
+ options.extend(['-DENABLE_SLEPC=ON'])
+ else:
+ options.extend(['-DENABLE_SLEPC=OFF'])
+
if '+shared' in spec:
+ # Builds dynamic executable and installs shared library
options.extend(['-DENABLE_BUILD_SHARED:BOOL=ON',
- '-DENABLE_BUILD_DYNAMIC:BOOL=ON']) # Builds dynamic executable and installs shared library
+ '-DENABLE_BUILD_DYNAMIC:BOOL=ON'])
else:
- options.append('-DENABLE_BUILD_LIB:BOOL=ON') # Builds and installs static library
+ # Builds and installs static library
+ options.append('-DENABLE_BUILD_LIB:BOOL=ON')
if '+debug' in spec:
options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
@@ -83,7 +135,4 @@ class Gmsh(Package):
if '+compression' in spec:
options.append('-DENABLE_COMPRESSED_IO:BOOL=ON')
- with working_dir(build_directory, create=True):
- cmake(source_directory, *options)
- make()
- make('install')
+ return options
diff --git a/var/spack/repos/builtin/packages/gnu-prolog/package.py b/var/spack/repos/builtin/packages/gnu-prolog/package.py
new file mode 100644
index 0000000000..1e0487c654
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gnu-prolog/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+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.4.tar.gz"
+
+ version('1.4.4', '37009da471e5217ff637ad1c516448c8')
+
+ 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/gnuplot/package.py b/var/spack/repos/builtin/packages/gnuplot/package.py
index a76677e066..600b6d285f 100644
--- a/var/spack/repos/builtin/packages/gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/gnuplot/package.py
@@ -27,13 +27,18 @@ from spack import *
import os
+
class Gnuplot(Package):
- """
- Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other
- platforms. The source code is copyrighted but freely distributed (i.e., you don't have to pay for it). It was
- originally created to allow scientists and students to visualize mathematical functions and data interactively,
- but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by
- third-party applications like Octave. Gnuplot has been supported and under active development since 1986
+ """Gnuplot is a portable command-line driven graphing utility for Linux,
+ OS/2, MS Windows, OSX, VMS, and many other platforms. The source
+ code is copyrighted but freely distributed (i.e., you don't have
+ to pay for it). It was originally created to allow scientists and
+ students to visualize mathematical functions and data
+ interactively, but has grown to support many non-interactive uses
+ such as web scripting. It is also used as a plotting engine by
+ third-party applications like Octave. Gnuplot has been supported
+ and under active development since 1986
+
"""
homepage = "http://www.gnuplot.info"
url = "http://downloads.sourceforge.net/project/gnuplot/gnuplot/5.0.1/gnuplot-5.0.1.tar.gz"
diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py
index 71b571bc88..5f7b0daf9b 100644
--- a/var/spack/repos/builtin/packages/gnutls/package.py
+++ b/var/spack/repos/builtin/packages/gnutls/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Gnutls(Package):
"""GnuTLS is a secure communications library implementing the SSL,
TLS and DTLS protocols and technologies around them. It
diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py
index b0e2109fd3..b497144f2f 100644
--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py
@@ -1,3 +1,27 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
import os
import shutil
import glob
@@ -17,25 +41,41 @@ class GoBootstrap(Package):
extendable = True
- # temporary fix until tags are pulled correctly
- version('1.4.2', git='https://go.googlesource.com/go', tag='go1.4.2')
+ # NOTE: Go@1.4.x is the only supported bootstrapping compiler because all
+ # later versions require a Go compiler to build.
+ # See: https://golang.org/doc/install/source#go14 and
+ # https://github.com/golang/go/issues/17545 and
+ # https://github.com/golang/go/issues/16352
+ version('1.4-bootstrap-20161024', '76e42c8152e8560ded880a6d1d1f53cb',
+ url='https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz')
- variant('test',
- default=True,
- description="Run tests as part of build, a good idea but quite"
- " time consuming")
+ variant('test', default=True, description='Build and run tests as part of the build.')
- provides('golang@:1.4.2')
+ provides('golang@:1.4-bootstrap-20161024')
- depends_on('git')
+ depends_on('git', type=('build', 'link', 'run'))
+
+ # NOTE: Older versions of Go attempt to download external files that have
+ # since been moved while running the test suite. This patch modifies the
+ # test files so that these tests don't cause false failures.
+ # See: https://github.com/golang/go/issues/15694
+ @when('@:1.4.3')
+ def patch(self):
+ test_suite_file = FileFilter(join_path('src', 'run.bash'))
+ test_suite_file.filter(
+ r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
+ r'# \1\2\3',
+ )
+
+ @when('@1.5.0:')
+ def patch(self):
+ pass
def install(self, spec, prefix):
+ env['CGO_ENABLED'] = '0'
bash = which('bash')
with working_dir('src'):
- if '+test' in spec:
- bash('all.bash')
- else:
- bash('make.bash')
+ bash('{0}.bash'.format('all' if '+test' in spec else 'make'))
try:
os.makedirs(prefix)
@@ -47,5 +87,8 @@ class GoBootstrap(Package):
else:
shutil.copy2(f, os.path.join(prefix, f))
+ def setup_dependent_environment(self, spack_env, run_env, dep_spec):
+ spack_env.set('GOROOT_BOOTSTRAP', self.spec.prefix)
+
def setup_environment(self, spack_env, run_env):
spack_env.set('GOROOT_FINAL', self.spec.prefix)
diff --git a/var/spack/repos/builtin/packages/go/misc-cgo-testcshared.patch b/var/spack/repos/builtin/packages/go/misc-cgo-testcshared.patch
new file mode 100644
index 0000000000..17751df816
--- /dev/null
+++ b/var/spack/repos/builtin/packages/go/misc-cgo-testcshared.patch
@@ -0,0 +1,11 @@
+--- misc/cgo/testcshared/test.bash.orig 2016-11-19 00:00:11.917000000 +0000
++++ misc/cgo/testcshared/test.bash 2016-11-19 00:00:22.081000000 +0000
+@@ -107,7 +107,7 @@
+
+ # test0: exported symbols in shared lib are accessible.
+ # TODO(iant): using _shared here shouldn't really be necessary.
+-$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext
++$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c ./libgo.$libext
+ binpush testp
+
+ output=$(run LD_LIBRARY_PATH=. ./testp)
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index 13b83517d1..ad1436c0c3 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -1,39 +1,97 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
import os
import shutil
import glob
import llnl.util.tty as tty
from spack import *
+# - vanilla CentOS 7, and possibly other systems, fail a test:
+# TestCloneNEWUSERAndRemapRootDisableSetgroups
+#
+# The Fix, discussed here: https://github.com/golang/go/issues/16283
+# is to enable "user_namespace".
+#
+# On a Digital Ocean image, this can be achieved by updating
+# `/etc/default/grub` so that the `GRUB_CMDLINE_LINUX` variable
+# includes `user_namespace.enable=1`, re-cooking the grub
+# configuration with `sudo grub2-mkconfig -o /boot/grub2/grub.cfg`,
+# and then rebooting.
+#
+# - on CentOS 7 systems (and possibly others) you need to have the
+# glibc package installed or various static cgo tests fail.
+
class Go(Package):
"""The golang compiler and build environment"""
homepage = "https://golang.org"
- url = "https://go.googlesource.com/go"
+ url = 'https://storage.googleapis.com/golang/go1.7.4.src.tar.gz'
extendable = True
- version('1.5.4', git='https://go.googlesource.com/go', tag='go1.5.4')
- version('1.6.2', git='https://go.googlesource.com/go', tag='go1.6.2')
+ version('1.7.4', '49c1076428a5d3b5ad7ac65233fcca2f')
+ version('1.6.4', 'b023240be707b34059d2c114d3465c92')
- variant('test',
- default=True,
- description="Run tests as part of build, a good idea but quite"
- " time consuming")
+ variant('test', default=True, description='Build and run tests as part of the build.')
provides('golang')
- # to-do, make non-c self-hosting compilers feasible without backflips
+ depends_on('git', type=('build', 'link', 'run'))
+ # TODO: Make non-c self-hosting compilers feasible without backflips
# should be a dep on external go compiler
- depends_on('go-bootstrap')
- depends_on('git')
+ depends_on('go-bootstrap', type='build')
+
+ # https://github.com/golang/go/issues/17545
+ patch('time_test.patch', when='@1.6.4:1.7.4')
+
+ # https://github.com/golang/go/issues/17986
+ patch('misc-cgo-testcshared.patch', level=0, when='@1.6.4:1.7.4')
+
+ # NOTE: Older versions of Go attempt to download external files that have
+ # since been moved while running the test suite. This patch modifies the
+ # test files so that these tests don't cause false failures.
+ # See: https://github.com/golang/go/issues/15694
+ @when('@:1.4.3')
+ def patch(self):
+ test_suite_file = FileFilter(join_path('src', 'run.bash'))
+ test_suite_file.filter(
+ r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
+ r'# \1\2\3',
+ )
+
+ @when('@1.5.0:')
+ def patch(self):
+ pass
+
+ def url_for_version(self, version):
+ return "https://storage.googleapis.com/golang/go{0}.src.tar.gz".format(version)
def install(self, spec, prefix):
bash = which('bash')
with working_dir('src'):
- if '+test' in spec:
- bash('all.bash')
- else:
- bash('make.bash')
+ bash('{0}.bash'.format('all' if '+test' in spec else 'make'))
try:
os.makedirs(prefix)
@@ -47,7 +105,6 @@ class Go(Package):
def setup_environment(self, spack_env, run_env):
spack_env.set('GOROOT_FINAL', self.spec.prefix)
- spack_env.set('GOROOT_BOOTSTRAP', self.spec['go-bootstrap'].prefix)
def setup_dependent_package(self, module, ext_spec):
"""Called before go modules' install() methods.
diff --git a/var/spack/repos/builtin/packages/go/time_test.patch b/var/spack/repos/builtin/packages/go/time_test.patch
new file mode 100644
index 0000000000..c3e0697c91
--- /dev/null
+++ b/var/spack/repos/builtin/packages/go/time_test.patch
@@ -0,0 +1,18 @@
+diff --git a/src/time/time_test.go b/src/time/time_test.go
+index 68236fd..2e47d08 100644
+--- a/src/time/time_test.go
++++ b/src/time/time_test.go
+@@ -943,8 +943,11 @@ func TestLoadFixed(t *testing.T) {
+ // but Go and most other systems use "east is positive".
+ // So GMT+1 corresponds to -3600 in the Go zone, not +3600.
+ name, offset := Now().In(loc).Zone()
+- if name != "GMT+1" || offset != -1*60*60 {
+- t.Errorf("Now().In(loc).Zone() = %q, %d, want %q, %d", name, offset, "GMT+1", -1*60*60)
++ // The zone abbreviation is "-01" since tzdata-2016g, and "GMT+1"
++ // on earlier versions; we accept both. (Issue #17276).
++ if !(name == "GMT+1" || name == "-01") || offset != -1*60*60 {
++ t.Errorf("Now().In(loc).Zone() = %q, %d, want %q or %q, %d",
++ name, offset, "GMT+1", "-01", -1*60*60)
+ }
+ }
+
diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py
new file mode 100644
index 0000000000..952ec21661
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GobjectIntrospection(Package):
+ """The GObject Introspection is used to describe the program APIs and
+ collect them in a uniform, machine readable format.Cairo is a 2D graphics
+ library with support for multiple output"""
+
+ homepage = "https://wiki.gnome.org/Projects/GObjectIntrospection"
+ url = "http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.48/gobject-introspection-1.48.0.tar.xz"
+
+ version('1.48.0', '01301fa9019667d48e927353e08bc218')
+
+ # version 1.48.0 build fails with glib 2.49.4
+ depends_on("glib@2.48.1")
+ depends_on("python")
+ depends_on("cairo")
+ depends_on("bison", type="build")
+ depends_on("flex", type="build")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ # we need to filter this file to avoid an overly long hashbang line
+ filter_file('@PYTHON@', 'python',
+ 'tools/g-ir-tool-template.in')
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/googletest/package.py b/var/spack/repos/builtin/packages/googletest/package.py
index 9444253c8c..6f3cafec06 100644
--- a/var/spack/repos/builtin/packages/googletest/package.py
+++ b/var/spack/repos/builtin/packages/googletest/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Googletest(Package):
"""Google test framework for C++. Also called gtest."""
homepage = "https://github.com/google/googletest"
@@ -31,7 +32,7 @@ class Googletest(Package):
version('1.7.0', '5eaf03ed925a47b37c8e1d559eb19bc4')
- depends_on("cmake")
+ depends_on("cmake", type='build')
def install(self, spec, prefix):
which('cmake')('.', *std_cmake_args)
@@ -40,9 +41,8 @@ class Googletest(Package):
# Google Test doesn't have a make install
# We have to do our own install here.
- install_tree('include', prefix.include)
+ install_tree('include', prefix.include)
mkdirp(prefix.lib)
- install('./libgtest.a', '%s' % prefix.lib)
- install('./libgtest_main.a', '%s' % prefix.lib)
-
+ install('./libgtest.a', '%s' % prefix.lib)
+ install('./libgtest_main.a', '%s' % prefix.lib)
diff --git a/var/spack/repos/builtin/packages/gource/package.py b/var/spack/repos/builtin/packages/gource/package.py
new file mode 100644
index 0000000000..dda00420a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gource/package.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gource(Package):
+ """Software version control visualization."""
+
+ homepage = "http://gource.io"
+ url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz"
+
+ version('0.44', '79cda1bfaad16027d59cce55455bfab88b57c69d')
+
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('libtool', type='build')
+ depends_on('glm', type='build')
+ depends_on('pkg-config', type='build')
+
+ depends_on('freetype@2.0:')
+ depends_on('pcre')
+ depends_on('boost@1.46:+filesystem+system')
+ depends_on('glew')
+ depends_on('jpeg')
+ depends_on('libpng')
+ depends_on('pcre')
+ depends_on('sdl2')
+ depends_on('sdl2-image')
+
+ def install(self, spec, prefix):
+ make_args = ['--prefix=%s' % prefix,
+ '--disable-dependency-tracking',
+ '--without-x',
+ '--with-boost=%s' % spec['boost'].prefix]
+
+ autoreconf('-i')
+ configure(*make_args)
+ make()
+
+ make("install",
+ parallel=False)
diff --git a/var/spack/repos/builtin/packages/gperf/package.py b/var/spack/repos/builtin/packages/gperf/package.py
index af176afcf6..0ae07b33fc 100644
--- a/var/spack/repos/builtin/packages/gperf/package.py
+++ b/var/spack/repos/builtin/packages/gperf/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Gperf(Package):
"""GNU gperf is a perfect hash function generator. For a given
list of strings, it produces a hash function and hash table, in
@@ -38,6 +39,8 @@ class Gperf(Package):
version('3.0.4', 'c1f1db32fb6598d6a93e6e88796a8632')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
+
make()
- make("install")
+ # make('check') # fails tests
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gperftools/package.py b/var/spack/repos/builtin/packages/gperftools/package.py
index 1f17ab71a4..c6ca6c8057 100644
--- a/var/spack/repos/builtin/packages/gperftools/package.py
+++ b/var/spack/repos/builtin/packages/gperftools/package.py
@@ -24,14 +24,20 @@
##############################################################################
from spack import *
+
class Gperftools(Package):
- """Google's fast malloc/free implementation, especially for multi-threaded applications.
- Contains tcmalloc, heap-checker, heap-profiler, and cpu-profiler."""
+ """Google's fast malloc/free implementation, especially for
+ multi-threaded applications. Contains tcmalloc, heap-checker,
+ heap-profiler, and cpu-profiler.
+
+ """
homepage = "https://code.google.com/p/gperftools"
url = "https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.3.tar.gz"
- version('2.4', '2171cea3bbe053036fb5d5d25176a160', url="https://github.com/gperftools/gperftools/releases/download/gperftools-2.4/gperftools-2.4.tar.gz")
- version('2.3', 'f54dd119f0e46ac1f13264f8d97adf90', url="https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.3.tar.gz")
+ version('2.4', '2171cea3bbe053036fb5d5d25176a160',
+ url="https://github.com/gperftools/gperftools/releases/download/gperftools-2.4/gperftools-2.4.tar.gz")
+ version('2.3', 'f54dd119f0e46ac1f13264f8d97adf90',
+ url="https://googledrive.com/host/0B6NtGsLhIcf7MWxMMF9JdTN3UVk/gperftools-2.3.tar.gz")
depends_on("libunwind")
diff --git a/var/spack/repos/builtin/packages/grackle/Make.mach.template b/var/spack/repos/builtin/packages/grackle/Make.mach.template
new file mode 100644
index 0000000000..83abaa26d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grackle/Make.mach.template
@@ -0,0 +1,71 @@
+MACH_TEXT = Generic Linux
+MACH_VALID = 1
+MACH_FILE = Make.mach.@ARCHITECTURE
+
+#-----------------------------------------------------------------------
+# Install paths (local variables)
+#-----------------------------------------------------------------------
+
+LOCAL_HDF5_INSTALL = @HDF5_ROOT
+
+#-----------------------------------------------------------------------
+# Compiler settings
+#-----------------------------------------------------------------------
+
+MACH_CC_NOMPI = @CC # C compiler
+MACH_CXX_NOMPI = @CXX # C++ compiler
+MACH_FC_NOMPI = @F77 # Fortran 77
+MACH_F90_NOMPI = @FC # Fortran 90
+MACH_LD_NOMPI = @FC # Linker
+@LINK_VARIABLES_DEFINITION
+
+#-----------------------------------------------------------------------
+# Machine-dependent defines
+#-----------------------------------------------------------------------
+
+MACH_DEFINES = -DLINUX -DH5_USE_16_API -fPIC
+
+#-----------------------------------------------------------------------
+# Compiler flag settings
+#-----------------------------------------------------------------------
+
+MACH_CPPFLAGS = -P -traditional
+MACH_CFLAGS =
+MACH_CXXFLAGS =
+MACH_FFLAGS = -fno-second-underscore -ffixed-line-length-132
+MACH_F90FLAGS = -fno-second-underscore
+MACH_LDFLAGS = @STDCXX_LIB
+
+#-----------------------------------------------------------------------
+# Optimization flags
+#-----------------------------------------------------------------------
+
+MACH_OPT_WARN = -Wall -g
+MACH_OPT_DEBUG = -g
+MACH_OPT_HIGH = -O2
+MACH_OPT_AGGRESSIVE = -O3 -g
+
+#-----------------------------------------------------------------------
+# Includes
+#-----------------------------------------------------------------------
+
+LOCAL_INCLUDES_HDF5 = -I@HDF5_ROOT/include # HDF5 includes
+
+MACH_INCLUDES = $(LOCAL_INCLUDES_HDF5)
+
+#-----------------------------------------------------------------------
+# Libraries
+#-----------------------------------------------------------------------
+
+LOCAL_LIBS_HDF5 = -L@HDF5_ROOT/lib -lhdf5 # HDF5 libraries
+LOCAL_LIBS_MACH = # Machine-dependent libraries
+
+MACH_LIBS = $(LOCAL_LIBS_HDF5) $(LOCAL_LIBS_MACH)
+
+#-----------------------------------------------------------------------
+# Installation
+#-----------------------------------------------------------------------
+
+MACH_INSTALL_PREFIX = @PREFIX
+MACH_INSTALL_LIB_DIR =
+MACH_INSTALL_INCLUDE_DIR =
diff --git a/var/spack/repos/builtin/packages/grackle/package.py b/var/spack/repos/builtin/packages/grackle/package.py
new file mode 100644
index 0000000000..7e3777158f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grackle/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import os.path
+import shutil
+import inspect
+
+from spack import *
+
+
+class Grackle(Package):
+ """Grackle is a chemistry and radiative cooling library for astrophysical
+ simulations with interfaces for C, C++, and Fortran codes. It is a
+ generalized and trimmed down version of the chemistry network of the Enzo
+ simulation code
+ """
+ homepage = 'http://grackle.readthedocs.io/en/grackle-2.2/'
+ url = 'https://bitbucket.org/grackle/grackle/get/grackle-2.0.1.tar.bz2'
+
+ version('2.2', 'ec49ed1db5a42db21f478285150c2ba3')
+ version('2.0.1', 'a9624ad13a60c592c1a0a4ea8e1ae86d')
+
+ depends_on('libtool', when='@2.2')
+
+ depends_on('mpi')
+ depends_on('hdf5+mpi')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ template_name = '{0.architecture}-{0.compiler.name}'
+ grackle_architecture = template_name.format(spec)
+ link_variables = 'MACH_AR = ar' if spec.version < Version(2.2) else 'MACH_LIBTOOL = libtool' # NOQA: ignore=E501
+ substitutions = {
+ '@ARCHITECTURE': grackle_architecture,
+ '@CC': spec['mpi'].mpicc,
+ '@CXX': spec['mpi'].mpicxx,
+ '@FC': spec['mpi'].mpifc,
+ '@F77': spec['mpi'].mpif77,
+ '@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs),
+ '@HDF5_ROOT': spec['hdf5'].prefix,
+ '@PREFIX': prefix,
+ '@LINK_VARIABLES_DEFINITION': link_variables
+ }
+
+ template = join_path(
+ os.path.dirname(inspect.getmodule(self).__file__),
+ 'Make.mach.template'
+ )
+ makefile = join_path(
+ self.stage.source_path,
+ 'src',
+ 'clib',
+ 'Make.mach.{0}'.format(grackle_architecture)
+ )
+ shutil.copy(template, makefile)
+ for key, value in substitutions.items():
+ filter_file(key, value, makefile)
+
+ configure()
+ with working_dir('src/clib'):
+ make('clean')
+ make('machine-{0}'.format(grackle_architecture))
+ make('opt-high')
+ make('show-config')
+ make()
+ mkdirp(prefix.lib)
+ make('install')
diff --git a/var/spack/repos/builtin/packages/grandr/package.py b/var/spack/repos/builtin/packages/grandr/package.py
new file mode 100644
index 0000000000..8097d4fa01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grandr/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Grandr(Package):
+ """RandR user interface using GTK+ libraries."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/app/grandr"
+ url = "https://www.x.org/archive/individual/app/grandr-0.1.tar.gz"
+
+ version('0.1', '707109a105f2ab1bb216e6e6a5a10ba4')
+
+ depends_on('gtkplus@2.0.0:')
+ depends_on('gconf')
+ depends_on('xrandr@1.2:')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py
index f70f32cc8a..1e0eb2bf3b 100644
--- a/var/spack/repos/builtin/packages/graphlib/package.py
+++ b/var/spack/repos/builtin/packages/graphlib/package.py
@@ -24,12 +24,16 @@
##############################################################################
from spack import *
+
class Graphlib(Package):
"""Library to create, manipulate, and export graphs Graphlib."""
- homepage = "http://https://github.com/lee218llnl/graphlib"
- url = "https://github.com/lee218llnl/graphlib/archive/v2.0.0.tar.gz"
+ homepage = "https://github.com/LLNL/graphlib"
+ url = "https://github.com/LLNL/graphlib/archive/v2.0.0.tar.gz"
version('2.0.0', '43c6df84f1d38ba5a5dce0ae19371a70')
+ version('3.0.0', '625d199f97ab1b84cbc8daabcaee5e2a')
+
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake(".", *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py
index 2f99015ba2..1bf6c70926 100644
--- a/var/spack/repos/builtin/packages/graphviz/package.py
+++ b/var/spack/repos/builtin/packages/graphviz/package.py
@@ -24,9 +24,10 @@
##############################################################################
from spack import *
import sys
+import shutil
-class Graphviz(Package):
+class Graphviz(AutotoolsPackage):
"""Graph Visualization Software"""
homepage = "http://www.graphviz.org"
url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz"
@@ -37,18 +38,23 @@ class Graphviz(Package):
# related to missing Perl packages. If spack begins support for Perl in the
# future, this package can be updated to depend_on('perl') and the
# ncecessary devel packages.
- variant('perl', default=False, description='Enable if you need the optional Perl language bindings.') # NOQA: ignore=E501
+ variant(
+ 'perl', default=False,
+ description='Enable if you need the optional Perl language bindings.')
parallel = False
depends_on("swig")
depends_on("python")
depends_on("ghostscript")
- depends_on("pkg-config")
+ depends_on("freetype")
+ depends_on("expat")
+ depends_on("libtool")
+ depends_on("pkg-config", type='build')
- def install(self, spec, prefix):
- options = ['--prefix=%s' % prefix]
- if '+perl' not in spec:
+ def configure_args(self):
+ options = []
+ if '+perl' not in self.spec:
options.append('--disable-perl')
# On OSX fix the compiler error:
@@ -58,6 +64,7 @@ class Graphviz(Package):
if sys.platform == 'darwin':
options.append('CFLAGS=-I/opt/X11/include')
- configure(*options)
- make()
- make("install")
+ # A hack to patch config.guess in the libltdl sub directory
+ shutil.copyfile('./config/config.guess', 'libltdl/config/config.guess')
+
+ return options
diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py
new file mode 100644
index 0000000000..8b81e14a27
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grib-api/package.py
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GribApi(Package):
+ """The ECMWF GRIB API is an application program interface accessible from
+ C, FORTRAN and Python programs developed for encoding and decoding WMO
+ FM-92 GRIB edition 1 and edition 2 messages."""
+
+ homepage = "https://software.ecmwf.int/wiki/display/GRIB/Home"
+ url = "https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz"
+
+ version('1.17.0', 'bca7114d2c3100501a08190a146818d2')
+ version('1.16.0', '8c7fdee03344e4379d400ae20976a460')
+
+ variant('netcdf', default=False, description='Enable netcdf encoding/decoding using netcdf library')
+ variant('jpeg', default=True, description='Enable jpeg 2000 for grib 2 decoding/encoding')
+ variant('png', default=False, description='Enable png for decoding/encoding')
+
+ depends_on('cmake', type='build')
+ depends_on('libpng', when='+png')
+ depends_on('netcdf', when='+netcdf')
+ depends_on('jasper', when='+jpeg')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+ options.append('-DBUILD_SHARED_LIBS=BOTH')
+
+ # We will add python support later.
+ options.append('-DENABLE_PYTHON=OFF')
+
+ # Disable FORTRAN interface if we don't have it.
+ if (self.compiler.f77 is None) or (self.compiler.fc is None):
+ options.append('-DENABLE_FORTRAN=OFF')
+
+ if '+netcdf' in spec:
+ options.append('-DENABLE_NETCDF=ON')
+ options.append('-DNETCDF_PATH=%s' % spec['netcdf'].prefix)
+ else:
+ options.append('-DENABLE_NETCDF=OFF')
+
+ if '+jpeg' in spec:
+ options.append('-DENABLE_JPG=ON')
+ options.append('-DJASPER_PATH=%s' % spec['jasper'].prefix)
+ else:
+ options.append('-DENABLE_JPG=OFF')
+
+ if '+png' in spec:
+ options.append('-DENABLE_PNG=ON')
+ else:
+ options.append('-DENABLE_PNG=OFF')
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index 1a50a42488..d079188db6 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -25,16 +25,17 @@
from spack import *
-class Gromacs(Package):
- """
- GROMACS (GROningen MAchine for Chemical Simulations) is a molecular dynamics package primarily designed for
- simulations of proteins, lipids and nucleic acids. It was originally developed in the Biophysical Chemistry
- department of University of Groningen, and is now maintained by contributors in universities and research centers
- across the world.
-
- GROMACS is one of the fastest and most popular software packages available and can run on CPUs as well as GPUs.
- It is free, open source released under the GNU General Public License. Starting from version 4.6, GROMACS is
- released under the GNU Lesser General Public License.
+class Gromacs(CMakePackage):
+ """GROMACS (GROningen MAchine for Chemical Simulations) is a molecular
+ dynamics package primarily designed for simulations of proteins, lipids
+ and nucleic acids. It was originally developed in the Biophysical
+ Chemistry department of University of Groningen, and is now maintained
+ by contributors in universities and research centers across the world.
+
+ GROMACS is one of the fastest and most popular software packages
+ available and can run on CPUs as well as GPUs. It is free, open source
+ released under the GNU General Public License. Starting from version 4.6,
+ GROMACS is released under the GNU Lesser General Public License.
"""
homepage = 'http://www.gromacs.org'
@@ -43,38 +44,42 @@ class Gromacs(Package):
version('5.1.2', '614d0be372f1a6f1f36382b7a6fcab98')
variant('mpi', default=True, description='Activate MPI support')
- variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
variant('debug', default=False, description='Enables debug mode')
- variant('double', default=False, description='Produces a double precision version of the executables')
+ variant(
+ 'double', default=False,
+ description='Produces a double precision version of the executables')
+ variant('plumed', default=False, description='Enable PLUMED support')
depends_on('mpi', when='+mpi')
-
+ depends_on('plumed+mpi', when='+plumed+mpi')
+ depends_on('plumed~mpi', when='+plumed~mpi')
depends_on('fftw')
+ depends_on('cmake@2.8.8:', type='build')
# TODO : add GPU support
- def install(self, spec, prefix):
+ def patch(self):
+ if '+plumed' in self.spec:
+ self.spec['plumed'].package.apply_patch(self)
+
+ def cmake_args(self):
options = []
- if '+mpi' in spec:
+ if '+mpi' in self.spec:
options.append('-DGMX_MPI:BOOL=ON')
- if '+double' in spec:
+ if '+double' in self.spec:
options.append('-DGMX_DOUBLE:BOOL=ON')
- if '~shared' in spec:
+ if '~shared' in self.spec:
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
- if '+debug' in spec:
+ if '+debug' in self.spec:
options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
else:
options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
- options.extend(std_cmake_args)
-
- with working_dir('spack-build', create=True):
-
- cmake('..', *options)
- make()
- make('install')
+ return options
diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py
index c1695a6f02..f13a9a66e8 100644
--- a/var/spack/repos/builtin/packages/gsl/package.py
+++ b/var/spack/repos/builtin/packages/gsl/package.py
@@ -26,21 +26,18 @@
from spack import *
-class Gsl(Package):
- """
- The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the
- GNU General Public License. The library provides a wide range of mathematical routines such as random number
- generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive
- test suite.
- """
- homepage = "http://www.gnu.org/software/gsl"
- url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz"
+class Gsl(AutotoolsPackage):
+ """The GNU Scientific Library (GSL) is a numerical library for C and C++
+ programmers. It is free software under the GNU General Public License. The
+ library provides a wide range of mathematical routines such as random
+ number generators, special functions and least-squares fitting. There are
+ over 1000 functions in total with an extensive test suite."""
- version('2.1' , 'd8f70abafd3e9f0bae03c52d1f4e8de5')
- version('2.0' , 'ae44cdfed78ece40e73411b63a78c375')
- version('1.16', 'e49a664db13d81c968415cd53f62bc8b')
+ homepage = "http://www.gnu.org/software/gsl"
+ url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.3.tar.gz"
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
- make()
- make("install")
+ version('2.3', '905fcbbb97bc552d1037e34d200931a0')
+ version('2.2.1', '3d90650b7cfe0a6f4b29c2d7b0f86458')
+ version('2.1', 'd8f70abafd3e9f0bae03c52d1f4e8de5')
+ version('2.0', 'ae44cdfed78ece40e73411b63a78c375')
+ version('1.16', 'e49a664db13d81c968415cd53f62bc8b')
diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py
index c135e89f78..b53b688372 100644
--- a/var/spack/repos/builtin/packages/gtkplus/package.py
+++ b/var/spack/repos/builtin/packages/gtkplus/package.py
@@ -24,16 +24,24 @@
##############################################################################
from spack import *
+
class Gtkplus(Package):
- """The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications."""
+ """The GTK+ 2 package contains libraries used for creating graphical user
+ interfaces for applications."""
homepage = "http://www.gtk.org"
+ url = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.31.tar.xz"
+
+ version('2.24.31', '68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658')
+ version('2.24.25', '38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3')
- version('2.24.25', '612350704dd3aacb95355a4981930c6f',
- url="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.25.tar.xz")
+ variant('X', default=False, description="Enable an X toolkit")
depends_on("atk")
depends_on("gdk-pixbuf")
+ depends_on("glib")
depends_on("pango")
+ depends_on("pango~X", when='~X')
+ depends_on("pango+X", when='+X')
def patch(self):
# remove disable deprecated flag.
diff --git a/var/spack/repos/builtin/packages/gts/package.py b/var/spack/repos/builtin/packages/gts/package.py
new file mode 100644
index 0000000000..2b3d4dd4f8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gts/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gts(Package):
+ """GTS stands for the GNU Triangulated Surface Library.
+
+ It is an Open Source Free Software Library intended to provide a set of
+ useful functions to deal with 3D surfaces meshed with interconnected
+ triangles. The source code is available free of charge under the Free
+ Software LGPL license.
+
+ The code is written entirely in C with an object-oriented approach
+ based mostly on the design of GTK+. Careful attention is paid to
+ performance related issues as the initial goal of GTS is to provide a
+ simple and efficient library to scientists dealing with 3D computational
+ surface meshes.
+ """
+
+ homepage = "http://gts.sourceforge.net/index.html"
+ url = "http://gts.sourceforge.net/tarballs/gts-snapshot-121130.tar.gz"
+
+ version('121130', '023ebb6b13b8707534182a3ef0d12908')
+
+ depends_on('glib')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/guile/package.py b/var/spack/repos/builtin/packages/guile/package.py
new file mode 100644
index 0000000000..22aff1bddf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/guile/package.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Guile(Package):
+ """Guile is the GNU Ubiquitous Intelligent Language for Extensions,
+ the official extension language for the GNU operating system."""
+
+ homepage = "https://www.gnu.org/software/guile/"
+ url = "ftp://ftp.gnu.org/gnu/guile/guile-2.0.11.tar.gz"
+
+ version('2.0.11', 'e532c68c6f17822561e3001136635ddd')
+
+ variant('readline', default=True, description='Use the readline library')
+
+ depends_on('gmp@4.2:')
+ depends_on('gettext')
+ depends_on('libtool@1.5.6:')
+ depends_on('libunistring@0.9.3:')
+ depends_on('bdw-gc@7.0:')
+ depends_on('libffi')
+ depends_on('readline', when='+readline')
+ depends_on('pkg-config', type='build')
+
+ def install(self, spec, prefix):
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--with-libunistring-prefix={0}'.format(
+ spec['libunistring'].prefix),
+ '--with-libltdl-prefix={0}'.format(spec['libtool'].prefix),
+ '--with-libgmp-prefix={0}'.format(spec['gmp'].prefix),
+ '--with-libintl-prefix={0}'.format(spec['gettext'].prefix)
+ ]
+
+ if '+readline' in spec:
+ config_args.append('--with-libreadline-prefix={0}'.format(
+ spec['readline'].prefix))
+ else:
+ config_args.append('--without-libreadline-prefix')
+
+ configure(*config_args)
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/h5hut/package.py b/var/spack/repos/builtin/packages/h5hut/package.py
new file mode 100644
index 0000000000..22146372dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/h5hut/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class H5hut(AutotoolsPackage):
+ """H5hut (HDF5 Utility Toolkit).
+ High-Performance I/O Library for Particle-based Simulations."""
+
+ homepage = "https://amas.psi.ch/H5hut/"
+ url = "https://amas.psi.ch/H5hut/raw-attachment/wiki/DownloadSources/H5hut-1.99.13.tar.gz"
+
+ version('1.99.13', '2a07a449afe50534de006ac6954a421a')
+
+ variant('fortran', default=True, description='Enable Fortran support')
+ variant('mpi', default=True, description='Enable MPI support')
+
+ depends_on('mpi', when='+mpi')
+ # h5hut +mpi uses the obsolete function H5Pset_fapl_mpiposix:
+ depends_on('hdf5@1.8:1.8.12+mpi', when='+mpi')
+ depends_on('hdf5@1.8:', when='~mpi')
+
+ # If built in parallel, the following error message occurs:
+ # install: .libs/libH5hut.a: No such file or directory
+ parallel = False
+
+ @AutotoolsPackage.precondition('configure')
+ def validate(self):
+ """Checks if Fortran compiler is available."""
+
+ if '+fortran' in self.spec and not self.compiler.fc:
+ raise RuntimeError(
+ 'Cannot build Fortran variant without a Fortran compiler.')
+
+ def configure_args(self):
+ spec = self.spec
+ config_args = ['--enable-shared']
+
+ if '+fortran' in spec:
+ config_args.append('--enable-fortran')
+
+ if '+mpi' in spec:
+ config_args.extend([
+ '--enable-parallel',
+ 'CC={0}'.format(spec['mpi'].mpicc),
+ 'CXX={0}'.format(spec['mpi'].mpicxx)
+ ])
+
+ if '+fortran' in spec:
+ config_args.append('FC={0}'.format(spec['mpi'].mpifc))
+
+ return config_args
diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py
new file mode 100644
index 0000000000..a87b19a8cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hadoop/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hadoop(Package):
+ """The Apache Hadoop software library is a framework that
+ allows for the distributed processing of large data sets
+ across clusters of computers using simple programming models.
+ """
+
+ homepage = "http://hadoop.apache.org/"
+ url = "http://mirrors.ocf.berkeley.edu/apache/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz"
+
+ version('2.6.4', '37019f13d7dcd819727be158440b9442')
+
+ depends_on('jdk', type='run')
+
+ def install(self, spec, prefix):
+
+ def install_dir(dirname):
+ install_tree(dirname, join_path(prefix, dirname))
+
+ install_dir('bin')
+ install_dir('etc')
+ install_dir('include')
+ install_dir('lib')
+ install_dir('libexec')
+ install_dir('sbin')
+ install_dir('share')
diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py
index e4c1b80de3..7c98c2a96a 100644
--- a/var/spack/repos/builtin/packages/harfbuzz/package.py
+++ b/var/spack/repos/builtin/packages/harfbuzz/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Harfbuzz(Package):
"""The Harfbuzz package contains an OpenType text shaping engine."""
homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz/"
@@ -31,9 +32,12 @@ class Harfbuzz(Package):
version('0.9.37', 'bfe733250e34629a188d82e3b971bc1e')
+ depends_on("pkg-config", type="build")
depends_on("glib")
- depends_on("icu")
+ depends_on("icu4c")
depends_on("freetype")
+ depends_on("cairo")
+ depends_on("zlib")
def patch(self):
change_sed_delimiter('@', ';', 'src/Makefile.in')
diff --git a/var/spack/repos/builtin/packages/harminv/package.py b/var/spack/repos/builtin/packages/harminv/package.py
new file mode 100644
index 0000000000..184535ebb0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/harminv/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Harminv(Package):
+ """Harminv is a free program (and accompanying library) to solve the
+ problem of harmonic inversion - given a discrete-time, finite-length
+ signal that consists of a sum of finitely-many sinusoids (possibly
+ exponentially decaying) in a given bandwidth, it determines the
+ frequencies, decay constants, amplitudes, and phases of those sinusoids."""
+
+ homepage = "http://ab-initio.mit.edu/wiki/index.php/Harminv"
+ url = "http://ab-initio.mit.edu/harminv/harminv-1.4.tar.gz"
+
+ version('1.4', 'b95e24a9bc7e07d3d2202d1605e9e86f')
+
+ depends_on('blas')
+ depends_on('lapack')
+
+ def install(self, spec, prefix):
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--with-blas={0}'.format(spec['blas'].prefix.lib),
+ '--with-lapack={0}'.format(spec['lapack'].prefix.lib),
+ '--enable-shared'
+ ]
+
+ configure(*config_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 7ad4df2fde..2554bd0f96 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Hdf(Package):
"""HDF4 (also known as HDF) is a library and multi-object
file format for storing and managing data between machines."""
@@ -33,37 +34,42 @@ class Hdf(Package):
list_url = "https://www.hdfgroup.org/ftp/HDF/releases/"
list_depth = 3
+ version('4.2.12', '79fd1454c899c05e34a3da0456ab0c1c')
version('4.2.11', '063f9928f3a19cc21367b71c3b8bbf19')
variant('szip', default=False, description="Enable szip support")
- depends_on("jpeg")
- depends_on("szip", when='+szip')
- depends_on("zlib")
-
-
- def url_for_version(self, version):
- return "https://www.hdfgroup.org/ftp/HDF/releases/HDF" + str(version) + "/src/hdf-" + str(version) + ".tar.gz"
+ depends_on('jpeg@6b:')
+ depends_on('szip', when='+szip')
+ depends_on('zlib@1.1.4:')
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
def install(self, spec, prefix):
config_args = [
'CFLAGS=-fPIC',
- '--prefix=%s' % prefix,
- '--with-jpeg=%s' % spec['jpeg'].prefix,
- '--with-zlib=%s' % spec['zlib'].prefix,
- '--disable-netcdf', # must be disabled to build NetCDF with HDF4 support
+ '--prefix={0}'.format(prefix),
+ '--with-jpeg={0}'.format(spec['jpeg'].prefix),
+ '--with-zlib={0}'.format(spec['zlib'].prefix),
+ '--disable-netcdf', # must be disabled to build NetCDF with HDF4
'--enable-fortran',
- '--disable-shared', # fortran and shared libraries are not compatible
+ '--disable-shared', # fortran and shared libs are not compatible
'--enable-static',
'--enable-production'
]
- # SZip support
+ # Szip support
if '+szip' in spec:
- config_args.append('--with-szlib=%s' % spec['szip'].prefix)
+ config_args.append('--with-szlib={0}'.format(spec['szip'].prefix))
+ else:
+ config_args.append('--without-szlib')
configure(*config_args)
make()
- make("install")
+
+ if self.run_tests:
+ make('check')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
new file mode 100644
index 0000000000..088c1e9d9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
@@ -0,0 +1,212 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import os
+import shutil
+import sys
+
+from spack import *
+
+
+def _install_shlib(name, src, dst):
+ """Install a shared library from directory src to directory dst"""
+ if sys.platform == "darwin":
+ shlib0 = name + ".0.dylib"
+ shlib = name + ".dylib"
+ shutil.copyfile(join_path(src, shlib0), join_path(dst, shlib0))
+ os.symlink(shlib0, join_path(dst, shlib))
+ else:
+ shlib000 = name + ".so.0.0.0"
+ shlib0 = name + ".so.0"
+ shlib = name + ".dylib"
+ shutil.copyfile(join_path(src, shlib000), join_path(dst, shlib000))
+ os.symlink(shlib000, join_path(dst, shlib0))
+ os.symlink(shlib0, join_path(dst, shlib))
+
+
+class Hdf5Blosc(Package):
+ """Blosc filter for HDF5"""
+ homepage = "https://github.com/Blosc/hdf5-blosc"
+ url = "https://github.com/Blosc/hdf5-blosc"
+
+ version('master', git='https://github.com/Blosc/hdf5-blosc',
+ branch='master')
+
+ depends_on("c-blosc")
+ depends_on("hdf5")
+ depends_on("libtool", type='build')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ # The included cmake recipe doesn"t work for Darwin
+ # cmake(".", *std_cmake_args)
+ #
+ # make()
+ # make("install")
+ # if sys.platform == "darwin":
+ # fix_darwin_install_name(prefix.lib)
+
+ libtool = Executable(join_path(spec["libtool"].prefix.bin, "libtool"))
+
+ # TODO: these vars are not used.
+ # if "+mpi" in spec["hdf5"]:
+ # cc = "mpicc"
+ # else:
+ # cc = "cc"
+ # shlibext = "so" if sys.platform != "darwin" else "dylib"
+
+ mkdirp(prefix.include)
+ mkdirp(prefix.lib)
+
+ # Build and install filter
+ with working_dir("src"):
+ libtool("--mode=compile", "--tag=CC",
+ "cc", "-g", "-O",
+ "-c", "blosc_filter.c")
+ libtool("--mode=link", "--tag=CC",
+ "cc", "-g", "-O",
+ "-rpath", prefix.lib,
+ "-o", "libblosc_filter.la",
+ "blosc_filter.lo",
+ "-L%s" % spec["c-blosc"].prefix.lib, "-lblosc",
+ "-L%s" % spec["hdf5"].prefix.lib, "-lhdf5")
+ _install_shlib("libblosc_filter", ".libs", prefix.lib)
+
+ # Build and install plugin
+ # The plugin requires at least HDF5 1.8.11:
+ if spec["hdf5"].satisfies("@1.8.11:"):
+ libtool("--mode=compile", "--tag=CC",
+ "cc", "-g", "-O",
+ "-c", "blosc_plugin.c")
+ libtool("--mode=link", "--tag=CC",
+ "cc", "-g", "-O",
+ "-rpath", prefix.lib,
+ "-o", "libblosc_plugin.la",
+ "blosc_plugin.lo",
+ "-L%s" % prefix.lib, "-lblosc_filter",
+ "-L%s" % spec["c-blosc"].prefix.lib, "-lblosc",
+ "-L%s" % spec["hdf5"].prefix.lib, "-lhdf5")
+ _install_shlib("libblosc_plugin", ".libs", prefix.lib)
+
+ self.check_install(spec)
+
+ def check_install(self, spec):
+ "Build and run a small program to test the installed HDF5 Blosc plugin"
+ print "Checking HDF5-Blosc plugin..."
+ checkdir = "spack-check"
+ with working_dir(checkdir, create=True):
+ source = r"""\
+#include <hdf5.h>
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FILTER_BLOSC 32001 /* Blosc filter ID registered with the HDF group */
+
+int main(int argc, char **argv) {
+ herr_t herr;
+ hid_t file = H5Fcreate("file.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ assert(file >= 0);
+ hsize_t dims[3] = {10, 10, 10};
+ hid_t space = H5Screate_simple(3, dims, NULL);
+ assert(space >= 0);
+ hid_t create_proplist = H5Pcreate(H5P_DATASET_CREATE);
+ assert(create_proplist >= 0);
+ herr = H5Pset_chunk(create_proplist, 3, dims);
+ assert(herr >= 0);
+ herr = H5Pset_filter(create_proplist, FILTER_BLOSC, H5Z_FLAG_OPTIONAL, 0,
+ NULL);
+ assert(herr >= 0);
+ htri_t all_filters_avail = H5Pall_filters_avail(create_proplist);
+ assert(all_filters_avail > 0);
+ hid_t dataset = H5Dcreate(file, "dataset", H5T_NATIVE_DOUBLE, space,
+ H5P_DEFAULT, create_proplist, H5P_DEFAULT);
+ assert(dataset >= 0);
+ double data[10][10][10];
+ for (int k=0; k<10; ++k) {
+ for (int j=0; j<10; ++j) {
+ for (int i=0; i<10; ++i) {
+ data[k][j][i] = 1.0 / (1.0 + i + j + k);
+ }
+ }
+ }
+ herr = H5Dwrite(dataset, H5T_NATIVE_DOUBLE, space, space, H5P_DEFAULT,
+ &data[0][0][0]);
+ assert(herr >= 0);
+ herr = H5Pclose(create_proplist);
+ assert(herr >= 0);
+ herr = H5Dclose(dataset);
+ assert(herr >= 0);
+ herr = H5Sclose(space);
+ assert(herr >= 0);
+ herr = H5Fclose(file);
+ assert(herr >= 0);
+ printf("Done.\n");
+ return 0;
+}
+"""
+ expected = """\
+Done.
+"""
+ with open("check.c", "w") as f:
+ f.write(source)
+ if "+mpi" in spec["hdf5"]:
+ cc = which("mpicc")
+ else:
+ cc = which("cc")
+ # TODO: Automate these path and library settings
+ cc("-c", "-I%s" % spec["hdf5"].prefix.include, "check.c")
+ cc("-o", "check", "check.o",
+ "-L%s" % spec["hdf5"].prefix.lib, "-lhdf5")
+ try:
+ check = Executable("./check")
+ output = check(return_output=True)
+ except:
+ output = ""
+ success = output == expected
+ if not success:
+ print "Produced output does not match expected output."
+ print "Expected output:"
+ print "-" * 80
+ print expected
+ print "-" * 80
+ print "Produced output:"
+ print "-" * 80
+ print output
+ print "-" * 80
+ print "Environment:"
+ env = which("env")
+ env()
+ raise RuntimeError("HDF5 Blosc plugin check failed")
+ shutil.rmtree(checkdir)
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
+ run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
+ run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 21137ef356..222af53601 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -22,15 +22,14 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
import shutil
-class Hdf5(Package):
+class Hdf5(AutotoolsPackage):
"""HDF5 is a data model, library, and file format for storing and managing
- data. It supports an unlimited variety of datatypes, and is designed for
- flexible and efficient I/O and for high volume and complex data.
+ data. It supports an unlimited variety of datatypes, and is designed for
+ flexible and efficient I/O and for high volume and complex data.
"""
homepage = "http://www.hdfgroup.org/HDF5/"
@@ -38,41 +37,58 @@ class Hdf5(Package):
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
+ version('1.10.0-patch1', '9180ff0ef8dc2ef3f61bd37a7404f295')
version('1.10.0', 'bdc935337ee8282579cd6bc4270ad199')
- version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618', preferred=True)
+ version('1.8.18', 'dd2148b740713ca0295442ec683d7b1c',
+ # The link for the latest version differs from the links for
+ # the previous releases. Do not forget to remove this once
+ # the version 1.8.18 is not the latest one for the 1.8.* branch.
+ url='http://hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.18.tar.gz')
+ version('1.8.17', '7d572f8f3b798a628b8245af0391a0ca')
+ version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
+ version('1.8.14', 'a482686e733514a51cde12d6fe5c5d95')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
+ version('1.8.12', 'd804802feb99b87fc668a90e6fa34411')
- variant('debug', default=False, description='Builds a debug version of the library')
- variant('shared', default=True, description='Builds a shared version of the library')
+ variant('debug', default=False,
+ description='Builds a debug version of the library')
+ variant('shared', default=True,
+ description='Builds a shared version of the library')
variant('cxx', default=True, description='Enable C++ support')
variant('fortran', default=True, description='Enable Fortran support')
- variant('mpi', default=False, description='Enable MPI support')
+ variant('mpi', default=True, description='Enable MPI support')
variant('szip', default=False, description='Enable szip support')
- variant('threadsafe', default=False, description='Enable thread-safe capabilities')
+ variant('threadsafe', default=False,
+ description='Enable thread-safe capabilities')
+ variant('pic', default=True,
+ description='Produce position-independent code (for shared libs)')
- depends_on("mpi", when='+mpi')
- depends_on("szip", when='+szip')
- depends_on("zlib")
+ depends_on('mpi', when='+mpi')
+ depends_on('szip', when='+szip')
+ depends_on('zlib@1.1.2:')
- def validate(self, spec):
+ @AutotoolsPackage.precondition('configure')
+ def validate(self):
"""
Checks if incompatible variants have been activated at the same time
:param spec: spec of the package
:raises RuntimeError: in case of inconsistencies
"""
+ spec = self.spec
if '+fortran' in spec and not self.compiler.fc:
msg = 'cannot build a fortran variant without a fortran compiler'
raise RuntimeError(msg)
if '+threadsafe' in spec and ('+cxx' in spec or '+fortran' in spec):
- raise RuntimeError("cannot use variant +threadsafe with either +cxx or +fortran")
+ msg = 'cannot use variant +threadsafe with either +cxx or +fortran'
+ raise RuntimeError(msg)
- def install(self, spec, prefix):
- self.validate(spec)
+ def configure_args(self):
+ spec = self.spec
# Handle compilation after spec validation
extra_args = []
@@ -107,6 +123,11 @@ class Hdf5(Package):
if spec.satisfies('@:1.8.16'):
extra_args.append('--enable-fortran2003')
+ if '+pic' in spec:
+ extra_args.append('CFLAGS={0}'.format(self.compiler.pic_flag))
+ extra_args.append('CXXFLAGS={0}'.format(self.compiler.pic_flag))
+ extra_args.append('FFLAGS={0}'.format(self.compiler.pic_flag))
+
if '+mpi' in spec:
# The HDF5 configure script warns if cxx and mpi are enabled
# together. There doesn't seem to be a real reason for this, except
@@ -115,16 +136,14 @@ class Hdf5(Package):
# this is not actually a problem.
extra_args.extend([
"--enable-parallel",
- "CC=%s" % join_path(spec['mpi'].prefix.bin, "mpicc"),
+ "CC=%s" % spec['mpi'].mpicc
])
if '+cxx' in spec:
- extra_args.append("CXX=%s" % join_path(spec['mpi'].prefix.bin,
- "mpic++"))
+ extra_args.append("CXX=%s" % spec['mpi'].mpicxx)
if '+fortran' in spec:
- extra_args.append("FC=%s" % join_path(spec['mpi'].prefix.bin,
- "mpifort"))
+ extra_args.append("FC=%s" % spec['mpi'].mpifc)
if '+szip' in spec:
extra_args.append("--with-szlib=%s" % spec['szip'].prefix)
@@ -135,17 +154,27 @@ class Hdf5(Package):
'--disable-hl',
])
- configure(
- "--prefix=%s" % prefix,
- "--with-zlib=%s" % spec['zlib'].prefix,
- *extra_args)
- make()
- make("install")
- self.check_install(spec)
-
- def check_install(self, spec):
- "Build and run a small program to test the installed HDF5 library"
- print "Checking HDF5 installation..."
+ return ["--with-zlib=%s" % spec['zlib'].prefix] + extra_args
+
+ def configure(self, spec, prefix):
+ # Run the default autotools package configure
+ super(Hdf5, self).configure(spec, prefix)
+
+ if '@:1.8.14' in spec:
+ # On Ubuntu14, HDF5 1.8.12 (and maybe other versions)
+ # mysteriously end up with "-l -l" in the postdeps in the
+ # libtool script. Patch this by removing the spurious -l's.
+ filter_file(
+ r'postdeps="([^"]*)"',
+ lambda m: 'postdeps="%s"' % ' '.join(
+ arg for arg in m.group(1).split(' ') if arg != '-l'),
+ 'libtool')
+
+ @AutotoolsPackage.sanity_check('install')
+ def check_install(self):
+ # Build and run a small program to test the installed HDF5 library
+ spec = self.spec
+ print("Checking HDF5 installation...")
checkdir = "spack-check"
with working_dir(checkdir, create=True):
source = r"""
@@ -163,17 +192,19 @@ int main(int argc, char **argv) {
"""
expected = """\
HDF5 version {version} {version}
-""".format(version=str(spec.version))
+""".format(version=str(spec.version.up_to(3)))
with open("check.c", 'w') as f:
f.write(source)
if '+mpi' in spec:
- cc = which(join_path(spec['mpi'].prefix.bin, "mpicc"))
+ cc = which('%s' % spec['mpi'].mpicc)
else:
cc = which('cc')
# TODO: Automate these path and library settings
cc('-c', "-I%s" % join_path(spec.prefix, "include"), "check.c")
cc('-o', "check", "check.o",
- "-L%s" % join_path(spec.prefix, "lib"), "-lhdf5",
+ "-L%s" % join_path(spec.prefix, "lib"),
+ "-L%s" % join_path(spec.prefix, "lib64"),
+ "-lhdf5",
"-lz")
try:
check = Executable('./check')
@@ -182,26 +213,37 @@ HDF5 version {version} {version}
output = ""
success = output == expected
if not success:
- print "Produced output does not match expected output."
- print "Expected output:"
- print '-'*80
- print expected
- print '-'*80
- print "Produced output:"
- print '-'*80
- print output
- print '-'*80
+ print("Produced output does not match expected output.")
+ print("Expected output:")
+ print('-' * 80)
+ print(expected)
+ print('-' * 80)
+ print("Produced output:")
+ print('-' * 80)
+ print(output)
+ print('-' * 80)
raise RuntimeError("HDF5 install check failed")
shutil.rmtree(checkdir)
def url_for_version(self, version):
- v = str(version)
+ # If we have a specific URL for this version, return it.
+ version_urls = self.version_urls()
+ if version in version_urls:
+ return version_urls[version]
+
+ base_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
if version == Version("1.2.2"):
- return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + ".tar.gz"
+ return "{0}/hdf5-{1}.tar.gz".format(base_url, version)
+ elif version < Version("1.6.6"):
+ return "{0}/hdf5-{1}/hdf5-{2}.tar.gz".format(
+ base_url, version.up_to(2), version)
elif version < Version("1.7"):
- return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + version.up_to(2) + "/hdf5-" + v + ".tar.gz"
+ return "{0}/hdf5-{1}/hdf5-{2}/src/hdf5-{2}.tar.gz".format(
+ base_url, version.up_to(2), version)
elif version < Version("1.10"):
- return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + v + "/src/hdf5-" + v + ".tar.gz"
+ return "{0}/hdf5-{1}/src/hdf5-{1}.tar.gz".format(
+ base_url, version)
else:
- return "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" + version.up_to(2) + "/hdf5-" + v + "/src/hdf5-" + v + ".tar.gz"
+ return "{0}/hdf5-{1}/hdf5-{2}/src/hdf5-{2}.tar.gz".format(
+ base_url, version.up_to(2), version)
diff --git a/var/spack/repos/builtin/packages/help2man/package.py b/var/spack/repos/builtin/packages/help2man/package.py
new file mode 100644
index 0000000000..506b1c1465
--- /dev/null
+++ b/var/spack/repos/builtin/packages/help2man/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Help2man(AutotoolsPackage):
+ """help2man produces simple manual pages from the '--help' and '--version'
+ output of other commands."""
+
+ homepage = "https://www.gnu.org/software/help2man/"
+ url = "http://gnu.askapache.com/help2man/help2man-1.47.4.tar.xz"
+
+ version('1.47.4', '544aca496a7d89de3e5d99e56a2f03d3')
+
+ depends_on('gettext', type='build')
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
new file mode 100644
index 0000000000..ab80dcf6ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Hepmc(Package):
+ """The HepMC package is an object oriented, C++ event record for
+ High Energy Physics Monte Carlo generators and simulation."""
+
+ homepage = "http://hepmc.web.cern.ch/hepmc/"
+ url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
+
+ version('2.06.09', 'c47627ced4255b40e731b8666848b087')
+ version('2.06.08', 'a2e889114cafc4f60742029d69abd907')
+ version('2.06.07', '11d7035dccb0650b331f51520c6172e7')
+ version('2.06.06', '102e5503537a3ecd6ea6f466aa5bc4ae')
+ version('2.06.05', '2a4a2a945adf26474b8bdccf4f881d9c')
+
+ depends_on("cmake", type='build')
+
+ def install(self, spec, prefix):
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+ options = [source_directory]
+ options.append('-Dmomentum:STRING=GEV')
+ options.append('-Dlength:STRING=MM')
+ options.extend(std_cmake_args)
+
+ with working_dir(build_directory, create=True):
+ cmake(*options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/heppdt/package.py b/var/spack/repos/builtin/packages/heppdt/package.py
new file mode 100644
index 0000000000..54c846ae33
--- /dev/null
+++ b/var/spack/repos/builtin/packages/heppdt/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Heppdt(Package):
+ """The HepPID library contains translation methods for particle ID's
+ to and from various Monte Carlo generators and the PDG standard
+ numbering scheme. We realize that the generators adhere closely
+ to the standard, but there are occasional differences."""
+ homepage = "http://lcgapp.cern.ch/project/simu/HepPDT/"
+ url = "http://lcgapp.cern.ch/project/simu/HepPDT/download/HepPDT-2.06.01.tar.gz"
+
+ version('3.04.01', 'a8e93c7603d844266b62d6f189f0ac7e')
+ version('3.04.00', '2d2cd7552d3e9539148febacc6287db2')
+ version('3.03.02', '0b85f1809bb8b0b28a46f23c718b2773')
+ version('3.03.01', 'd411f3bfdf9c4350d802241ba2629cc2')
+ version('3.03.00', 'cd84d0a0454be982dcd8c285e060a7b3')
+ version('2.06.01', '5688b4bdbd84b48ed5dd2545a3dc33c0')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/hmmer/package.py b/var/spack/repos/builtin/packages/hmmer/package.py
new file mode 100644
index 0000000000..6a236e9fc9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hmmer/package.py
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hmmer(Package):
+ """HMMER is used for searching sequence databases for sequence homologs,
+ and for making sequence alignments. It implements methods using
+ probabilistic models called profile hidden Markov models (profile HMMs).
+ """
+ homepage = 'http://www.hmmer.org'
+ url = 'http://eddylab.org/software/hmmer3/3.1b2/hmmer-3.1b2.tar.gz'
+
+ version('3.1b2', 'c8c141018bc0ccd7fc37b33f2b945d5f')
+ version('3.0', '4cf685f3bc524ba5b5cdaaa070a83588')
+ version('2.4i', 'dab234c87e026ac1de942450750acd20')
+ version('2.3.2', '5f073340c0cf761288f961a73821228a')
+ version('2.3.1', 'c724413e5761c630892506698a4716e2')
+
+ variant('mpi', default=True, description='Compile with MPI')
+ variant('gsl', default=False, description='Compile with GSL')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('gsl', when='+gsl')
+
+ def url_for_version(self, version):
+ base_url = 'http://eddylab.org/software'
+
+ if version >= Version('3.0'):
+ return '{0}/hmmer3/{1}/hmmer-{1}.tar.gz'.format(base_url, version)
+ else:
+ return '{0}/hmmer/{1}/hmmer-{1}.tar.gz'.format(base_url, version)
+
+ def install(self, spec, prefix):
+ configure_args = [
+ '--prefix={0}'.format(prefix)
+ ]
+
+ if '+gsl' in self.spec:
+ configure_args.extend([
+ '--with-gsl',
+ 'LIBS=-lgsl -lgslcblas'
+ ])
+
+ if '+mpi' in self.spec:
+ configure_args.append('--enable-mpi')
+
+ configure(*configure_args)
+ make()
+
+ if self.run_tests:
+ make('check')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py
index 90d5107e3b..5e27f6aead 100644
--- a/var/spack/repos/builtin/packages/hoomd-blue/package.py
+++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py
@@ -25,6 +25,7 @@
from spack import *
import os
+
class HoomdBlue(Package):
"""HOOMD-blue is a general-purpose particle simulation toolkit. It scales
from a single CPU core to thousands of GPUs.
@@ -45,18 +46,18 @@ class HoomdBlue(Package):
variant('doc', default=True, description='Generate documentation')
extends('python')
- depends_on('py-numpy')
+ depends_on('py-numpy', type=('build', 'run'))
depends_on('boost+python')
- depends_on('cmake')
+ depends_on('cmake', type='build')
depends_on('mpi', when='+mpi')
depends_on('cuda', when='+cuda')
- depends_on('doxygen', when='+doc')
+ depends_on('doxygen', when='+doc', type='build')
def install(self, spec, prefix):
cmake_args = [
'-DPYTHON_EXECUTABLE=%s/python' % spec['python'].prefix.bin,
- '-DBOOST_ROOT=%s' % spec['boost' ].prefix
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix
]
# MPI support
@@ -73,9 +74,9 @@ class HoomdBlue(Package):
cmake_args.append('-DENABLE_CUDA=OFF')
# CUDA-aware MPI library support
- #if '+cuda' in spec and '+mpi' in spec:
+ # if '+cuda' in spec and '+mpi' in spec:
# cmake_args.append('-DENABLE_MPI_CUDA=ON')
- #else:
+ # else:
# cmake_args.append('-DENABLE_MPI_CUDA=OFF')
# There may be a bug in the MPI-CUDA code. See:
diff --git a/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py
new file mode 100644
index 0000000000..86d95a1e21
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class HpctoolkitExternals(Package):
+ """HPCToolkit performance analysis tool has many prerequisites and
+ HpctoolkitExternals package provides all these prerequisites."""
+
+ homepage = "http://hpctoolkit.org"
+
+ # Note: No precise release tags/branches provided
+ version('5.4',
+ git='https://github.com/HPCToolkit/hpctoolkit-externals.git',
+ commit='3d2953623357bb06e9a4b51eca90a4b039c2710e')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+
+ options = ['CC=%s' % self.compiler.cc,
+ 'CXX=%s' % self.compiler.cxx]
+
+ with working_dir('spack-build', create=True):
+ configure = Executable('../configure')
+ configure('--prefix=%s' % prefix, *options)
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
new file mode 100644
index 0000000000..b6e03627de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hpctoolkit(Package):
+ """HPCToolkit is an integrated suite of tools for measurement and analysis
+ of program performance on computers ranging from multicore desktop systems
+ to the nation's largest supercomputers. By using statistical sampling of
+ timers and hardware performance counters, HPCToolkit collects accurate
+ measurements of a program's work, resource consumption, and inefficiency
+ and attributes them to the full calling context in which they occur."""
+
+ homepage = "http://hpctoolkit.org"
+
+ # Note: No precise release tags/branches provided
+ version('5.4', git='https://github.com/HPCToolkit/hpctoolkit.git',
+ commit='d9ca2112762e5a06ea31b5295d793e4a83272d19')
+
+ variant('mpi', default=True, description='Enable MPI supoort')
+ variant('papi', default=True, description='Enable PAPI counter support')
+
+ depends_on('hpctoolkit-externals')
+ depends_on('papi', when='+papi')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+
+ options = ['CC=%s' % self.compiler.cc,
+ 'CXX=%s' % self.compiler.cxx,
+ '--with-externals=%s' % spec['hpctoolkit-externals'].prefix]
+
+ if '+mpi' in spec:
+ options.extend(['MPICXX=%s' % spec['mpi'].mpicxx])
+
+ if '+papi' in spec:
+ options.extend(['--with-papi=%s' % spec['papi'].prefix])
+
+ # TODO: BG-Q configure option
+ with working_dir('spack-build', create=True):
+ configure = Executable('../configure')
+ configure('--prefix=%s' % prefix, *options)
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hpl/package.py b/var/spack/repos/builtin/packages/hpl/package.py
new file mode 100644
index 0000000000..fa0013de17
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpl/package.py
@@ -0,0 +1,119 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import platform
+
+
+class Hpl(Package):
+ """HPL is a software package that solves a (random) dense linear system
+ in double precision (64 bits) arithmetic on distributed-memory computers.
+ It can thus be regarded as a portable as well as freely available
+ implementation of the High Performance Computing Linpack Benchmark."""
+
+ homepage = "http://www.netlib.org/benchmark/hpl/"
+ url = "http://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz"
+
+ version('2.2', '0eb19e787c3dc8f4058db22c9e0c5320')
+
+ variant('openmp', default=False, description='Enable OpenMP support')
+
+ depends_on('mpi@1.1:')
+ depends_on('blas')
+
+ parallel = False
+
+ def configure(self, spec, arch):
+ # List of configuration options
+ # Order is important
+ config = []
+
+ # OpenMP support
+ if '+openmp' in spec:
+ config.append(
+ 'OMP_DEFS = {0}'.format(self.compiler.openmp_flag)
+ )
+
+ config.extend([
+ # Shell
+ 'SHELL = /bin/sh',
+ 'CD = cd',
+ 'CP = cp',
+ 'LN_S = ln -fs',
+ 'MKDIR = mkdir -p',
+ 'RM = /bin/rm -f',
+ 'TOUCH = touch',
+ # Platform identifier
+ 'ARCH = {0}'.format(arch),
+ # HPL Directory Structure / HPL library
+ 'TOPdir = {0}'.format(os.getcwd()),
+ 'INCdir = $(TOPdir)/include',
+ 'BINdir = $(TOPdir)/bin/$(ARCH)',
+ 'LIBdir = $(TOPdir)/lib/$(ARCH)',
+ 'HPLlib = $(LIBdir)/libhpl.a',
+ # Message Passing library (MPI)
+ 'MPinc = -I{0}'.format(spec['mpi'].prefix.include),
+ 'MPlib = -L{0}'.format(spec['mpi'].prefix.lib),
+ # Linear Algebra library (BLAS or VSIPL)
+ 'LAinc = {0}'.format(spec['blas'].prefix.include),
+ 'LAlib = {0}'.format(spec['blas'].blas_libs.joined()),
+ # F77 / C interface
+ 'F2CDEFS = -DAdd_ -DF77_INTEGER=int -DStringSunStyle',
+ # HPL includes / libraries / specifics
+ 'HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) ' +
+ '-I$(LAinc) -I$(MPinc)',
+ 'HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)',
+ 'HPL_OPTS = -DHPL_DETAILED_TIMING -DHPL_PROGRESS_REPORT',
+ 'HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)',
+ # Compilers / linkers - Optimization flags
+ 'CC = {0}'.format(spec['mpi'].mpicc),
+ 'CCNOOPT = $(HPL_DEFS)',
+ 'CCFLAGS = $(HPL_DEFS) -O3',
+ 'LINKER = $(CC)',
+ 'LINKFLAGS = $(CCFLAGS) $(OMP_DEFS)',
+ 'ARCHIVER = ar',
+ 'ARFLAGS = r',
+ 'RANLIB = echo'
+ ])
+
+ # Write configuration options to include file
+ with open('Make.{0}'.format(arch), 'w') as makefile:
+ for var in config:
+ makefile.write('{0}\n'.format(var))
+
+ def install(self, spec, prefix):
+ # Arch used for file naming purposes only
+ arch = '{0}-{1}'.format(platform.system(), platform.processor())
+
+ # Generate Makefile include
+ self.configure(spec, arch)
+
+ make('arch={0}'.format(arch))
+
+ # Manual installation
+ install_tree(join_path('bin', arch), prefix.bin)
+ install_tree(join_path('lib', arch), prefix.lib)
+ install_tree(join_path('include', arch), prefix.include)
+ install_tree('man', prefix.man)
diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py
index cd0c0b7a7b..fe75c256f8 100644
--- a/var/spack/repos/builtin/packages/hpx5/package.py
+++ b/var/spack/repos/builtin/packages/hpx5/package.py
@@ -25,6 +25,7 @@
from spack import *
import os
+
class Hpx5(Package):
"""The HPX-5 Runtime System. HPX-5 (High Performance ParalleX) is an
open source, portable, performance-oriented runtime developed at
@@ -36,15 +37,16 @@ class Hpx5(Package):
applications enabling scientists to write code that performs and
scales better than contemporary runtimes."""
homepage = "http://hpx.crest.iu.edu"
- url = "http://hpx.crest.iu.edu/release/hpx-2.0.0.tar.gz"
+ url = "http://hpx.crest.iu.edu/release/hpx-3.1.0.tar.gz"
+ version('3.1.0', '9e90b8ac46788c009079632828c77628')
version('2.0.0', '3d2ff3aab6c46481f9ec65c5b2bfe7a6')
version('1.3.0', '2260ecc7f850e71a4d365a43017d8cee')
version('1.2.0', '4972005f85566af4afe8b71afbf1480f')
version('1.1.0', '646afb460ecb7e0eea713a634933ce4f')
version('1.0.0', '8020822adf6090bd59ed7fe465f6c6cb')
- variant('debug', default=False, description='Build a debug version of HPX-5')
+ variant('debug', default=False, description='Build debug version of HPX-5')
variant('photon', default=False, description='Enable Photon support')
variant('mpi', default=False, description='Enable MPI support')
diff --git a/var/spack/repos/builtin/packages/hsakmt/package.py b/var/spack/repos/builtin/packages/hsakmt/package.py
new file mode 100644
index 0000000000..0daad4afed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hsakmt/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hsakmt(Package):
+ """hsakmt is a thunk library that provides a userspace interface to amdkfd
+ (AMD's HSA Linux kernel driver). It is the HSA equivalent of libdrm."""
+
+ homepage = "https://cgit.freedesktop.org/amd/hsakmt/"
+ url = "https://www.x.org/archive/individual/lib/hsakmt-1.0.0.tar.gz"
+
+ version('1.0.0', '9beb20104e505300daf541266c4c3c3d')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/htop/package.py b/var/spack/repos/builtin/packages/htop/package.py
new file mode 100644
index 0000000000..3df0a35356
--- /dev/null
+++ b/var/spack/repos/builtin/packages/htop/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Htop(Package):
+ """htop is an interactive text-mode process viewer for Unix systems."""
+
+ homepage = "https://github.com/hishamhm/htop"
+ url = "https://hisham.hm/htop/releases/2.0.2/htop-2.0.2.tar.gz"
+
+ version('2.0.2', '7d354d904bad591a931ad57e99fea84a')
+
+ depends_on('ncurses')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/htslib/package.py b/var/spack/repos/builtin/packages/htslib/package.py
new file mode 100644
index 0000000000..1a8b8fd2f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/htslib/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Htslib(Package):
+ """C library for high-throughput sequencing data formats."""
+
+ homepage = "https://github.com/samtools/htslib"
+ url = "https://github.com/samtools/htslib/releases/download/1.3.1/htslib-1.3.1.tar.bz2"
+
+ version('1.3.1', '16d78f90b72f29971b042e8da8be6843')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/hub/package.py b/var/spack/repos/builtin/packages/hub/package.py
index ed8b742e42..5d7c082897 100644
--- a/var/spack/repos/builtin/packages/hub/package.py
+++ b/var/spack/repos/builtin/packages/hub/package.py
@@ -1,3 +1,27 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
import os
diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py
index ee0168c38e..111c424b22 100644
--- a/var/spack/repos/builtin/packages/hwloc/package.py
+++ b/var/spack/repos/builtin/packages/hwloc/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Hwloc(Package):
"""The Portable Hardware Locality (hwloc) software package
provides a portable abstraction (across OS, versions,
@@ -41,6 +42,7 @@ class Hwloc(Package):
list_url = "http://www.open-mpi.org/software/hwloc/"
list_depth = 3
+ version('1.11.4', 'b6f23eb59074fd09fdd84905d50b103d')
version('1.11.3', 'c1d36a9de6028eac1d18ea4782ef958f')
version('1.11.2', 'e4ca55c2a5c5656da4a4e37c8fc51b23')
version('1.11.1', 'feb4e416a1b25963ed565d8b42252fdc')
diff --git a/var/spack/repos/builtin/packages/hydra/package.py b/var/spack/repos/builtin/packages/hydra/package.py
index 3d56056022..eee346ba49 100644
--- a/var/spack/repos/builtin/packages/hydra/package.py
+++ b/var/spack/repos/builtin/packages/hydra/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Hydra(Package):
"""Hydra is a process management system for starting parallel jobs.
Hydra is designed to natively work with existing launcher daemons
@@ -37,7 +38,6 @@ class Hydra(Package):
version('3.2', '4d670916695bf7e3a869cc336a881b39')
-
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py
index f87dae9f4e..ed0f665462 100644
--- a/var/spack/repos/builtin/packages/hypre/package.py
+++ b/var/spack/repos/builtin/packages/hypre/package.py
@@ -23,7 +23,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os, sys
+import os
+import sys
+
class Hypre(Package):
"""Hypre is a library of high performance preconditioners that
@@ -33,34 +35,44 @@ class Hypre(Package):
homepage = "http://computation.llnl.gov/project/linear_solvers/software.php"
url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
+ version('develop', git='https://github.com/LLNL/hypre', tag='master')
+ version('2.11.1', '3f02ef8fd679239a6723f60b7f796519')
version('2.10.1', 'dc048c4cabb3cd549af72591474ad674')
version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')
# hypre does not know how to build shared libraries on Darwin
- variant('shared', default=sys.platform!='darwin', description="Build shared library version (disables static library)")
+ variant('shared', default=(sys.platform != 'darwin'),
+ description="Build shared library (disables static library)")
# SuperluDist have conflicting headers with those in Hypre
- variant('internal-superlu', default=True, description="Use internal Superlu routines")
+ variant('internal-superlu', default=True,
+ description="Use internal Superlu routines")
+ variant('int64', default=False,
+ description="Use 64bit integers")
depends_on("mpi")
depends_on("blas")
depends_on("lapack")
def install(self, spec, prefix):
- blas_dir = spec['blas'].prefix
- lapack_dir = spec['lapack'].prefix
- mpi_dir = spec['mpi'].prefix
-
- os.environ['CC'] = os.path.join(mpi_dir, 'bin', 'mpicc')
- os.environ['CXX'] = os.path.join(mpi_dir, 'bin', 'mpicxx')
- os.environ['F77'] = os.path.join(mpi_dir, 'bin', 'mpif77')
+ os.environ['CC'] = spec['mpi'].mpicc
+ os.environ['CXX'] = spec['mpi'].mpicxx
+ os.environ['F77'] = spec['mpi'].mpif77
+ # Note: --with-(lapack|blas)_libs= needs space separated list of names
+ lapack = spec['lapack'].lapack_libs
+ blas = spec['blas'].blas_libs
configure_args = [
- "--prefix=%s" % prefix,
- "--with-lapack-libs=lapack",
- "--with-lapack-lib-dirs=%s/lib" % lapack_dir,
- "--with-blas-libs=blas",
- "--with-blas-lib-dirs=%s/lib" % blas_dir]
+ '--prefix=%s' % prefix,
+ '--with-lapack-libs=%s' % ' '.join(lapack.names),
+ '--with-lapack-lib-dirs=%s' % ' '.join(lapack.directories),
+ '--with-blas-libs=%s' % ' '.join(blas.names),
+ '--with-blas-lib-dirs=%s' % ' '.join(blas.directories)
+ ]
+
+ if '+int64' in self.spec:
+ configure_args.append('--enable-bigint')
+
if '+shared' in self.spec:
configure_args.append("--enable-shared")
@@ -76,4 +88,12 @@ class Hypre(Package):
configure(*configure_args)
make()
+ if self.run_tests:
+ make("check")
+ make("test")
+ Executable(join_path('test', 'ij'))()
+ sstruct = Executable(join_path('test', 'struct'))
+ sstruct()
+ sstruct('-in', 'test/sstruct.in.default', '-solver', '40',
+ '-rhsone')
make("install")
diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py
new file mode 100644
index 0000000000..f325205507
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ibmisc/package.py
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ibmisc(CMakePackage):
+ """Misc. reusable utilities used by IceBin."""
+
+ homepage = "https://github.com/citibeth/ibmisc"
+ url = "https://github.com/citibeth/ibmisc/tarball/123"
+
+ version('0.1.0', '12f2a32432a11db48e00217df18e59fa')
+
+ variant('everytrace', default=False,
+ description='Report errors through Everytrace')
+ variant('proj', default=True,
+ description='Compile utilities for PROJ.4 library')
+ variant('blitz', default=True,
+ description='Compile utilities for Blitz library')
+ variant('netcdf', default=True,
+ description='Compile utilities for NetCDF library')
+ variant('boost', default=True,
+ description='Compile utilities for Boost library')
+ variant('udunits2', default=True,
+ description='Compile utilities for UDUNITS2 library')
+ variant('googletest', default=True,
+ description='Compile utilities for Google Test library')
+ variant('python', default=True,
+ description='Compile utilities for use with Python/Cython')
+
+ extends('python')
+
+ depends_on('eigen')
+ depends_on('everytrace', when='+everytrace')
+ depends_on('proj', when='+proj')
+ depends_on('blitz', when='+blitz')
+ depends_on('netcdf-cxx4', when='+netcdf')
+ depends_on('udunits2', 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'))
+ depends_on('boost', when='+boost')
+
+ # Build dependencies
+ depends_on('doxygen', type='build')
+
+ def cmake_args(self):
+ spec = self.spec
+ return [
+ '-DUSE_EVERYTRACE=%s' % ('YES' if '+everytrace' in spec else 'NO'),
+ '-DUSE_PROJ4=%s' % ('YES' if '+proj' in spec else 'NO'),
+ '-DUSE_BLITZ=%s' % ('YES' if '+blitz' in spec else 'NO'),
+ '-DUSE_NETCDF=%s' % ('YES' if '+netcdf' in spec else 'NO'),
+ '-DUSE_BOOST=%s' % ('YES' if '+boost' in spec else 'NO'),
+ '-DUSE_UDUNITS2=%s' % ('YES' if '+udunits2' in spec else 'NO'),
+ '-DUSE_GTEST=%s' % ('YES' if '+googletest' in spec else 'NO')]
diff --git a/var/spack/repos/builtin/packages/iceauth/package.py b/var/spack/repos/builtin/packages/iceauth/package.py
new file mode 100644
index 0000000000..59c6e0e7b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/iceauth/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Iceauth(Package):
+ """The iceauth program is used to edit and display the authorization
+ information used in connecting with ICE. It operates very much
+ like the xauth program for X11 connection authentication records."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/iceauth"
+ url = "https://www.x.org/archive/individual/app/iceauth-1.0.7.tar.gz"
+
+ version('1.0.7', '183e834ec8bd096ac084ad4acbc29f51')
+
+ depends_on('libice')
+
+ depends_on('xproto@7.0.22:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/icet/package.py b/var/spack/repos/builtin/packages/icet/package.py
new file mode 100644
index 0000000000..f8260f1951
--- /dev/null
+++ b/var/spack/repos/builtin/packages/icet/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Icet(CMakePackage):
+ """The Image Composition Engine for Tiles (IceT) is a high-performance
+ sort-last parallel rendering library."""
+
+ homepage = "http://icet.sandia.gov"
+ url = "https://example.com/icet-1.2.3.tar.gz"
+
+ version('develop', branch='master',
+ git='https://gitlab.kitware.com/icet/icet.git')
+ version('2.1.1', '4f971c51105a64937460d482adca2a6c')
+
+ depends_on('mpi')
+
+ def url_for_version(self, version):
+ return ("https://gitlab.kitware.com/icet/icet/repository/"
+ "archive.tar.bz2?ref=IceT-{0}".format(version.dotted))
+
+ def cmake_args(self):
+ return ['-DICET_USE_OPENGL:BOOL=OFF']
diff --git a/var/spack/repos/builtin/packages/ico/package.py b/var/spack/repos/builtin/packages/ico/package.py
new file mode 100644
index 0000000000..5e523575ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ico/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ico(Package):
+ """ico is a simple animation program that may be used for testing various
+ X11 operations and extensions. It displays a wire-frame rotating
+ polyhedron, with hidden lines removed, or a solid-fill polyhedron with
+ hidden faces removed."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/ico"
+ url = "https://www.x.org/archive/individual/app/ico-1.0.4.tar.gz"
+
+ version('1.0.4', '8833b2da01a7f919b0db8e5a49184c0f')
+
+ depends_on('libx11@0.99.1:')
+
+ depends_on('xproto@7.0.22:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py
index 6cfec99c3f..e2fcb7bd5f 100644
--- a/var/spack/repos/builtin/packages/icu4c/package.py
+++ b/var/spack/repos/builtin/packages/icu4c/package.py
@@ -24,18 +24,27 @@
##############################################################################
from spack import *
+
class Icu4c(Package):
- """ICU is a mature, widely used set of C/C++ and Java libraries
- providing Unicode and Globalization support for software applications."""
+ """ICU is a mature, widely used set of C/C++ and Java libraries providing
+ Unicode and Globalization support for software applications. ICU4C is the
+ C/C++ interface."""
homepage = "http://site.icu-project.org/"
- url = "http://downloads.sourceforge.net/project/icu/ICU4C/54.1/icu4c-54_1-src.tgz"
+ url = "http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz"
+
+ version('57.1', '976734806026a4ef8bdd17937c8898b9')
- version('54_1', 'e844caed8f2ca24c088505b0d6271bc0')
+ def url_for_version(self, version):
+ base_url = "http://download.icu-project.org/files/icu4c"
+ return "{0}/{1}/icu4c-{2}-src.tgz".format(
+ base_url, version, version.underscored)
def install(self, spec, prefix):
- cd("source")
- configure("--prefix=%s" % prefix)
+ with working_dir('source'):
+ configure('--prefix={0}'.format(prefix),
+ '--enable-rpath')
- make()
- make("install")
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/ilmbase/package.py b/var/spack/repos/builtin/packages/ilmbase/package.py
new file mode 100644
index 0000000000..873c830623
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ilmbase/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ilmbase(Package):
+ """OpenEXR ILM Base libraries (high dynamic-range image file format)"""
+
+ homepage = "http://www.openexr.com/"
+ url = "http://download.savannah.nongnu.org/releases/openexr/ilmbase-2.2.0.tar.gz"
+
+ version('2.2.0', 'b540db502c5fa42078249f43d18a4652')
+ version('2.1.0', 'af1115f4d759c574ce84efcde9845d29')
+ version('2.0.1', '74c0d0d2873960bd0dc1993f8e03f0ae')
+ version('1.0.2', '26c133ee8ca48e1196fbfb3ffe292ab4')
+ version('0.9.0', '4df45f8116cb7a013b286caf6da30a2e')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+ make('install')
diff --git a/var/spack/repos/builtin/packages/image-magick/package.py b/var/spack/repos/builtin/packages/image-magick/package.py
new file mode 100644
index 0000000000..9efb0cd368
--- /dev/null
+++ b/var/spack/repos/builtin/packages/image-magick/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class ImageMagick(Package):
+ """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.2-7', 'c59cdc8df50e481b2bd1afe09ac24c08')
+ version('7.0.2-6', 'aa5689129c39a5146a3212bf5f26d478')
+
+ 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 url_for_version(self, version):
+ return "https://github.com/ImageMagick/ImageMagick/archive/{0}.tar.gz".format(version)
+
+ def install(self, spec, prefix):
+ gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font")
+ configure('--prefix={0}'.format(prefix),
+ '--with-gs-font-dir={0}'.format(gs_font_dir))
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/imake/package.py b/var/spack/repos/builtin/packages/imake/package.py
new file mode 100644
index 0000000000..32542b0391
--- /dev/null
+++ b/var/spack/repos/builtin/packages/imake/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Imake(Package):
+ """The imake build system."""
+
+ homepage = "http://www.snake.net/software/imake-stuff/"
+ url = "https://www.x.org/archive/individual/util/imake-1.0.7.tar.gz"
+
+ version('1.0.7', '186ca7b8ff0de8752f2a2d0426542363')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/inputproto/package.py b/var/spack/repos/builtin/packages/inputproto/package.py
new file mode 100644
index 0000000000..915986ef68
--- /dev/null
+++ b/var/spack/repos/builtin/packages/inputproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Inputproto(Package):
+ """X Input Extension.
+
+ This extension defines a protocol to provide additional input devices
+ management such as graphic tablets."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/inputproto"
+ url = "https://www.x.org/archive/individual/proto/inputproto-2.3.2.tar.gz"
+
+ version('2.3.2', '6450bad6f8d5ebe354b01b734d1fd7ca')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/intel-gpu-tools/package.py b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py
new file mode 100644
index 0000000000..132e29839b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class IntelGpuTools(Package):
+ """Intel GPU Tools is a collection of tools for development and testing of
+ the Intel DRM driver. There are many macro-level test suites that get used
+ against the driver, including xtest, rendercheck, piglit, and oglconform,
+ but failures from those can be difficult to track down to kernel changes,
+ and many require complicated build procedures or specific testing
+ environments to get useful results. Therefore, Intel GPU Tools includes
+ low-level tools and tests specifically for development and testing of the
+ Intel DRM Driver."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/"
+ url = "https://www.x.org/archive/individual/app/intel-gpu-tools-1.16.tar.gz"
+
+ version('1.16', '3996f10fc86a28ec59e1cf7b227dad78')
+
+ depends_on('libdrm@2.4.64:')
+ depends_on('libpciaccess@0.10:')
+ depends_on('cairo@1.12.0:')
+ depends_on('glib')
+
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('python@3:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ # xrandr ?
+
+ # gtk-doc-tools
+ # libunwind-dev
+ # python-docutils
+ # x11proto-dri2-dev
+ # xutils-dev
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py
new file mode 100644
index 0000000000..f369e10d38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-mkl/package.py
@@ -0,0 +1,99 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+from spack.pkg.builtin.intel import IntelInstaller
+
+
+class IntelMkl(IntelInstaller):
+ """Intel Math Kernel Library.
+
+ Note: You will have to add the download file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html.
+
+ To set the threading layer at run time set MKL_THREADING_LAYER
+ variable to one of the following values: INTEL (default), SEQUENTIAL, PGI.
+ To set interface layer at run time, use set the MKL_INTERFACE_LAYER
+ variable to LP64 (default) or ILP64.
+ """
+
+ homepage = "https://software.intel.com/en-us/intel-mkl"
+
+ version('11.3.2.181', '536dbd82896d6facc16de8f961d17d65',
+ url="file://%s/l_mkl_11.3.2.181.tgz" % os.getcwd())
+ version('11.3.3.210', 'f72546df27f5ebb0941b5d21fd804e34',
+ url="file://%s/l_mkl_11.3.3.210.tgz" % os.getcwd())
+
+ variant('shared', default=True, description='Builds shared library')
+ variant('ilp64', default=False, description='64 bit integers')
+ variant('openmp', default=False, description='OpenMP multithreading layer')
+
+ # virtual dependency
+ provides('blas')
+ provides('lapack')
+ provides('mkl')
+ # TODO: MKL also provides implementation of Scalapack.
+
+ @property
+ def blas_libs(self):
+ shared = True if '+shared' in self.spec else False
+ suffix = dso_suffix if '+shared' in self.spec else 'a'
+ mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501
+ mkl_threading = ['libmkl_sequential']
+ if '+openmp' in self.spec:
+ mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501
+ # TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
+ mkl_libs = find_libraries(
+ mkl_integer + ['libmkl_core'] + mkl_threading,
+ root=join_path(self.prefix.lib, 'intel64'),
+ shared=shared
+ )
+ system_libs = [
+ 'libpthread.{0}'.format(suffix),
+ 'libm.{0}'.format(suffix),
+ 'libdl.{0}'.format(suffix)
+ ]
+ return mkl_libs + system_libs
+
+ @property
+ def lapack_libs(self):
+ return self.blas_libs
+
+ def install(self, spec, prefix):
+ self.intel_prefix = os.path.join(prefix, "pkg")
+ IntelInstaller.install(self, spec, prefix)
+
+ mkl_dir = os.path.join(self.intel_prefix, "mkl")
+ for f in os.listdir(mkl_dir):
+ os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f))
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ # set up MKLROOT for everyone using MKL package
+ spack_env.set('MKLROOT', self.prefix)
+
+ def setup_environment(self, spack_env, env):
+ env.set('MKLROOT', self.prefix)
diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
new file mode 100644
index 0000000000..8564eeb941
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -0,0 +1,362 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import re
+
+from spack.pkg.builtin.intel import IntelInstaller, filter_pick, \
+ get_all_components
+
+
+class IntelParallelStudio(IntelInstaller):
+ """Intel Parallel Studio.
+
+ Note: You will have to add the download file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
+
+ version('professional.2017.1', '7f75a4a7e2c563be778c377f9d35a542')
+ version('cluster.2017.1', '7f75a4a7e2c563be778c377f9d35a542')
+ version('composer.2017.1', '1f31976931ed8ec424ac7c3ef56f5e85')
+ version('professional.2017.0', '34c98e3329d6ac57408b738ae1daaa01')
+ version('cluster.2017.0', '34c98e3329d6ac57408b738ae1daaa01')
+ version('composer.2016.3', '3208eeabee951fc27579177b593cefe9')
+ version('professional.2016.3', 'eda19bb0d0d19709197ede58f13443f3')
+ version('cluster.2016.3', 'eda19bb0d0d19709197ede58f13443f3')
+ version('composer.2016.2', '1133fb831312eb519f7da897fec223fa')
+ version('professional.2016.2', '70be832f2d34c9bf596a5e99d5f2d832')
+ version('cluster.2016.2', '70be832f2d34c9bf596a5e99d5f2d832')
+
+ variant('rpath', default=True, description="Add rpath to .cfg files")
+ variant('newdtags', default=False,
+ description="Allow use of --enable-new-dtags in MPI wrappers")
+ variant('all', default=False,
+ description="Install all files with the requested edition")
+ variant('mpi', default=True,
+ description="Install the Intel MPI library and ITAC tool")
+ variant('mkl', default=True, description="Install the Intel MKL library")
+ variant('daal',
+ default=True, description="Install the Intel DAAL libraries")
+ variant('ipp', default=True, description="Install the Intel IPP libraries")
+ variant('tools', default=True, description="Install the Intel Advisor, "
+ "VTune Amplifier, and Inspector tools")
+
+ variant('shared', default=True, description='Builds shared library')
+ variant('ilp64', default=False, description='64 bit integers')
+ variant('openmp', default=False, description='OpenMP multithreading layer')
+
+ provides('mpi', when='@cluster:+mpi')
+ provides('mkl', when='+mkl')
+ provides('daal', when='+daal')
+ provides('ipp', when='+ipp')
+
+ # virtual dependency
+ provides('blas', when='+mkl')
+ provides('lapack', when='+mkl')
+ # TODO: MKL also provides implementation of Scalapack.
+
+ @property
+ def blas_libs(self):
+ shared = True if '+shared' in self.spec else False
+ suffix = dso_suffix if '+shared' in self.spec else 'a'
+ mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501
+ mkl_threading = ['libmkl_sequential']
+ if '+openmp' in self.spec:
+ mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501
+ # TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
+ mkl_libs = find_libraries(
+ mkl_integer + ['libmkl_core'] + mkl_threading,
+ root=join_path(self.prefix, 'mkl', 'lib', 'intel64'),
+ shared=shared
+ )
+ system_libs = [
+ 'libpthread.{0}'.format(suffix),
+ 'libm.{0}'.format(suffix),
+ 'libdl.{0}'.format(suffix)
+ ]
+ return mkl_libs + system_libs
+
+ @property
+ def lapack_libs(self):
+ return self.blas_libs
+
+ def url_for_version(self, version):
+ """Assume the tarball is in the current directory."""
+
+ version_tuple = str(version).split('.')
+ year = int(version_tuple[1])
+
+ url = "file://{0}/parallel_studio_xe_{1}".format(
+ os.getcwd(), version_tuple[1])
+
+ update_string = ""
+ if version_tuple[2] != '0':
+ update_string = "_update{0}".format(version_tuple[2])
+
+ if version_tuple[0] == 'composer':
+ if year == 2016:
+ url += "_composer_edition{0}".format(update_string)
+ else:
+ url += "{0}_composer_edition".format(update_string)
+ else:
+ url += update_string
+
+ return url + ".tgz"
+
+ def check_variants(self, spec):
+ error_message = '\t{variant} can not be turned off if "+all" is set'
+
+ if self.spec.satisfies('+all'):
+ errors = [error_message.format(variant=x)
+ for x in ('mpi', 'mkl', 'daal', 'ipp', 'tools')
+ if ('~' + x) in self.spec]
+ if errors:
+ errors = ['incompatible variants given'] + errors
+ raise InstallError('\n'.join(errors))
+
+ def install(self, spec, prefix):
+ self.check_variants(spec)
+
+ base_components = "ALL" # when in doubt, install everything
+ mpi_components = ""
+ mkl_components = ""
+ daal_components = ""
+ ipp_components = ""
+
+ if not spec.satisfies('+all'):
+ all_components = get_all_components()
+ regex = '(comp|openmp|intel-tbb|icc|ifort|psxe)'
+ base_components = \
+ filter_pick(all_components, re.compile(regex).search)
+ regex = '(icsxe|imb|mpi|itac|intel-ta|intel-tc|clck)'
+ mpi_components = \
+ filter_pick(all_components, re.compile(regex).search)
+ mkl_components = \
+ filter_pick(all_components, re.compile('(mkl)').search)
+ daal_components = \
+ filter_pick(all_components, re.compile('(daal)').search)
+ ipp_components = \
+ filter_pick(all_components, re.compile('(ipp)').search)
+ regex = '(gdb|vtune|inspector|advisor)'
+ tool_components = \
+ filter_pick(all_components, re.compile(regex).search)
+ components = base_components
+
+ if not spec.satisfies('+all'):
+ if spec.satisfies('+mpi'):
+ components += mpi_components
+ if spec.satisfies('+mkl'):
+ components += mkl_components
+ if spec.satisfies('+daal'):
+ components += daal_components
+ if spec.satisfies('+ipp'):
+ components += ipp_components
+ if spec.satisfies('+tools') and (spec.satisfies('@cluster') or
+ spec.satisfies('@professional')):
+ components += tool_components
+
+ if spec.satisfies('+all'):
+ self.intel_components = 'ALL'
+ else:
+ self.intel_components = ';'.join(components)
+ IntelInstaller.install(self, spec, prefix)
+
+ absbindir = os.path.dirname(
+ os.path.realpath(os.path.join(self.prefix.bin, "icc")))
+ abslibdir = os.path.dirname(
+ os.path.realpath(os.path.join(
+ self.prefix.lib, "intel64", "libimf.a")))
+
+ os.symlink(self.global_license_file, os.path.join(absbindir,
+ "license.lic"))
+ if spec.satisfies('+tools') and (spec.satisfies('@cluster') or
+ spec.satisfies('@professional')):
+ inspector_dir = "inspector_xe/licenses"
+ advisor_dir = "advisor_xe/licenses"
+ vtune_amplifier_dir = "vtune_amplifier_xe/licenses"
+
+ year = int(str(self.version).split('.')[1])
+ if year >= 2017:
+ inspector_dir = "inspector/licenses"
+ advisor_dir = "advisor/licenses"
+
+ os.mkdir(os.path.join(self.prefix, inspector_dir))
+ os.symlink(self.global_license_file, os.path.join(
+ self.prefix, inspector_dir, "license.lic"))
+ os.mkdir(os.path.join(self.prefix, advisor_dir))
+ os.symlink(self.global_license_file, os.path.join(
+ self.prefix, advisor_dir, "license.lic"))
+ os.mkdir(os.path.join(self.prefix, vtune_amplifier_dir))
+ os.symlink(self.global_license_file, os.path.join(
+ self.prefix, vtune_amplifier_dir, "license.lic"))
+
+ if (spec.satisfies('+all') or spec.satisfies('+mpi')) and \
+ spec.satisfies('@cluster'):
+ for ifile in os.listdir(os.path.join(self.prefix, "itac")):
+ if os.path.isdir(os.path.join(self.prefix, "itac", ifile)):
+ os.symlink(self.global_license_file,
+ os.path.join(self.prefix, "itac", ifile,
+ "license.lic"))
+ if os.path.isdir(os.path.join(self.prefix, "itac",
+ ifile, "intel64")):
+ os.symlink(self.global_license_file,
+ os.path.join(self.prefix, "itac",
+ ifile, "intel64",
+ "license.lic"))
+ if spec.satisfies('~newdtags'):
+ wrappers = ["mpif77", "mpif77", "mpif90", "mpif90",
+ "mpigcc", "mpigcc", "mpigxx", "mpigxx",
+ "mpiicc", "mpiicc", "mpiicpc", "mpiicpc",
+ "mpiifort", "mpiifort"]
+ wrapper_paths = []
+ for root, dirs, files in os.walk(spec.prefix):
+ for name in files:
+ if name in wrappers:
+ wrapper_paths.append(os.path.join(spec.prefix,
+ root, name))
+ for wrapper in wrapper_paths:
+ filter_file(r'-Xlinker --enable-new-dtags', r' ',
+ wrapper)
+
+ if spec.satisfies('+rpath'):
+ for compiler_command in ["icc", "icpc", "ifort"]:
+ cfgfilename = os.path.join(absbindir, "%s.cfg" %
+ compiler_command)
+ with open(cfgfilename, "w") as f:
+ f.write('-Xlinker -rpath -Xlinker %s\n' % abslibdir)
+
+ os.symlink(os.path.join(self.prefix.man, "common", "man1"),
+ os.path.join(self.prefix.man, "man1"))
+
+ def setup_environment(self, spack_env, run_env):
+ # TODO: Determine variables needed for the professional edition.
+
+ major_ver = self.version[1]
+
+ # Remove paths that were guessed but are incorrect for this package.
+ run_env.remove_path('LIBRARY_PATH',
+ join_path(self.prefix, 'lib'))
+ run_env.remove_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib'))
+ run_env.remove_path('CPATH',
+ join_path(self.prefix, 'include'))
+
+ # Add the default set of variables
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'intel64'))
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'intel64'))
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib',
+ 'intel64', 'gcc4.4'))
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib',
+ 'intel64', 'gcc4.4'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'tbb', 'include'))
+ run_env.prepend_path('MIC_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'mic'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'mic'))
+ run_env.prepend_path('MIC_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib', 'mic'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib', 'mic'))
+
+ if self.spec.satisfies('+all'):
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix,
+ 'debugger_{0}'.format(major_ver),
+ 'libipt', 'intel64', 'lib'))
+ run_env.set('GDBSERVER_MIC',
+ join_path(self.prefix,
+ 'debugger_{0}'.format(major_ver), 'gdb',
+ 'targets', 'mic', 'bin', 'gdbserver'))
+ run_env.set('GDB_CROSS',
+ join_path(self.prefix,
+ 'debugger_{0}'.format(major_ver),
+ 'gdb', 'intel64_mic', 'bin', 'gdb-mic'))
+ run_env.set('MPM_LAUNCHER',
+ join_path(self.prefix,
+ 'debugger_{0}'.format(major_ver), 'mpm',
+ 'mic',
+ 'bin', 'start_mpm.sh'))
+ run_env.set('INTEL_PYTHONHOME',
+ join_path(self.prefix,
+ 'debugger_{0}'.format(major_ver), 'python',
+ 'intel64'))
+
+ if (self.spec.satisfies('+all') or self.spec.satisfies('+mpi')):
+ # Only I_MPI_ROOT is set here because setting the various PATH
+ # variables will potentially be in conflict with other MPI
+ # environment modules. The I_MPI_ROOT environment variable can be
+ # used as a base to set necessary PATH variables for using Intel
+ # MPI. It is also possible to set the variables in the modules.yaml
+ # file if Intel MPI is the dominant, or only, MPI on a system.
+ run_env.set('I_MPI_ROOT', join_path(self.prefix, 'impi'))
+
+ if self.spec.satisfies('+all') or self.spec.satisfies('+mkl'):
+ spack_env.set('MKLROOT', join_path(self.prefix, 'mkl'))
+
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'mkl', 'lib',
+ 'intel64'))
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'mkl', 'lib',
+ 'intel64'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'mkl', 'include'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'mkl', 'lib', 'mic'))
+ run_env.set('MKLROOT', join_path(self.prefix, 'mkl'))
+
+ if self.spec.satisfies('+all') or self.spec.satisfies('+daal'):
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'daal', 'lib',
+ 'intel64_lin'))
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'daal', 'lib',
+ 'intel64_lin'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'daal', 'include'))
+ run_env.prepend_path('CLASSPATH',
+ join_path(self.prefix, 'daal', 'lib',
+ 'daal.jar'))
+ run_env.set('DAALROOT', join_path(self.prefix, 'daal'))
+
+ if self.spec.satisfies('+all') or self.spec.satisfies('+ipp'):
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'ipp', 'lib',
+ 'intel64'))
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'ipp', 'lib',
+ 'intel64'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'ipp', 'include'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'ipp', 'lib', 'mic'))
+ run_env.set('IPPROOT', join_path(self.prefix, 'ipp'))
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
new file mode 100644
index 0000000000..4164383f5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -0,0 +1,176 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import re
+
+
+def filter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are found in the regex_filter"""
+ return [l for l in input_list for m in (regex_filter(l),) if m]
+
+
+def unfilter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are not found in the
+ regex_filter"""
+ return [l for l in input_list for m in (regex_filter(l),) if not m]
+
+
+def get_all_components():
+ """Returns a list of all the components associated with the downloaded
+ Intel package"""
+ all_components = []
+ with open("pset/mediaconfig.xml", "r") as f:
+ lines = f.readlines()
+ for line in lines:
+ if line.find('<Abbr>') != -1:
+ component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
+ all_components.append(component)
+ return all_components
+
+
+class IntelInstaller(Package):
+ """Base package containing common methods for installing Intel software"""
+
+ homepage = "https://software.intel.com/en-us"
+ intel_components = "ALL"
+ license_required = True
+ license_comment = '#'
+ license_files = ['Licenses/license.lic']
+ license_vars = ['INTEL_LICENSE_FILE']
+ license_url = \
+ 'https://software.intel.com/en-us/articles/intel-license-manager-faq'
+
+ @property
+ def global_license_file(self):
+ """Returns the path where a global license file should be stored."""
+ if not self.license_files:
+ return
+ return join_path(self.global_license_dir, "intel",
+ os.path.basename(self.license_files[0]))
+
+ def install(self, spec, prefix):
+
+ if not hasattr(self, "intel_prefix"):
+ self.intel_prefix = self.prefix
+
+ silent_config_filename = 'silent.cfg'
+ with open(silent_config_filename, 'w') as f:
+ f.write("""
+ACCEPT_EULA=accept
+PSET_MODE=install
+CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes
+PSET_INSTALL_DIR=%s
+NONRPM_DB_DIR=%s
+ACTIVATION_LICENSE_FILE=%s
+ACTIVATION_TYPE=license_file
+PHONEHOME_SEND_USAGE_DATA=no
+CONTINUE_WITH_OPTIONAL_ERROR=yes
+COMPONENTS=%s
+""" % (self.intel_prefix, self.intel_prefix, self.global_license_file,
+ self.intel_components))
+
+ install_script = Executable("./install.sh")
+ install_script('--silent', silent_config_filename)
+
+
+class Intel(IntelInstaller):
+ """Intel Compilers.
+
+ Note: You will have to add the download file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
+
+ # TODO: can also try the online installer (will download files on demand)
+ version('16.0.2', '1133fb831312eb519f7da897fec223fa',
+ url="file://%s/parallel_studio_xe_2016_composer_edition_update2.tgz"
+ % os.getcwd())
+ version('16.0.3', '3208eeabee951fc27579177b593cefe9',
+ url="file://%s/parallel_studio_xe_2016_composer_edition_update3.tgz"
+ % os.getcwd())
+
+ variant('rpath', default=True, description="Add rpath to .cfg files")
+
+ def install(self, spec, prefix):
+ components = []
+ all_components = get_all_components()
+ regex = '(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)'
+ components = filter_pick(all_components, re.compile(regex).search)
+
+ self.intel_components = ';'.join(components)
+ IntelInstaller.install(self, spec, prefix)
+
+ absbindir = os.path.split(os.path.realpath(os.path.join(
+ self.prefix.bin, "icc")))[0]
+ abslibdir = os.path.split(os.path.realpath(os.path.join(
+ self.prefix.lib, "intel64", "libimf.a")))[0]
+
+ # symlink or copy?
+ os.symlink(self.global_license_file,
+ os.path.join(absbindir, "license.lic"))
+
+ if spec.satisfies('+rpath'):
+ for compiler_command in ["icc", "icpc", "ifort"]:
+ cfgfilename = os.path.join(absbindir, "%s.cfg" %
+ compiler_command)
+ with open(cfgfilename, "w") as f:
+ f.write('-Xlinker -rpath -Xlinker %s\n' % abslibdir)
+
+ os.symlink(os.path.join(self.prefix.man, "common", "man1"),
+ os.path.join(self.prefix.man, "man1"))
+
+ def setup_environment(self, spack_env, run_env):
+
+ # Remove paths that were guessed but are incorrect for this package.
+ run_env.remove_path('LIBRARY_PATH',
+ join_path(self.prefix, 'lib'))
+ run_env.remove_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib'))
+ run_env.remove_path('CPATH',
+ join_path(self.prefix, 'include'))
+
+ # Add the default set of variables
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'intel64'))
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'intel64'))
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib',
+ 'intel64', 'gcc4.4'))
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib',
+ 'intel64', 'gcc4.4'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'tbb', 'include'))
+ run_env.prepend_path('MIC_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'mic'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'lib', 'mic'))
+ run_env.prepend_path('MIC_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib', 'mic'))
+ run_env.prepend_path('MIC_LD_LIBRARY_PATH',
+ join_path(self.prefix, 'tbb', 'lib', 'mic'))
diff --git a/var/spack/repos/builtin/packages/intltool/package.py b/var/spack/repos/builtin/packages/intltool/package.py
index 48830c474a..e934734691 100644
--- a/var/spack/repos/builtin/packages/intltool/package.py
+++ b/var/spack/repos/builtin/packages/intltool/package.py
@@ -24,8 +24,12 @@
##############################################################################
from spack import *
+
class Intltool(Package):
- """intltool is a set of tools to centralize translation of many different file formats using GNU gettext-compatible PO files."""
+ """intltool is a set of tools to centralize translation of many different
+ file formats using GNU gettext-compatible PO files.
+
+ """
homepage = 'https://freedesktop.org/wiki/Software/intltool/'
version('0.51.0', '12e517cac2b57a0121cda351570f1e63')
@@ -37,7 +41,7 @@ class Intltool(Package):
def install(self, spec, prefix):
# configure, build, install:
- options = ['--prefix=%s' % prefix ]
+ options = ['--prefix=%s' % prefix]
configure(*options)
make()
make('install')
diff --git a/var/spack/repos/builtin/packages/ior/package.py b/var/spack/repos/builtin/packages/ior/package.py
index 6aa72e5cc9..b8825c0fe4 100644
--- a/var/spack/repos/builtin/packages/ior/package.py
+++ b/var/spack/repos/builtin/packages/ior/package.py
@@ -25,6 +25,7 @@
from spack import *
import os
+
class Ior(Package):
"""The IOR software is used for benchmarking parallel file systems
using POSIX, MPI-IO, or HDF5 interfaces."""
@@ -41,7 +42,6 @@ class Ior(Package):
depends_on('hdf5+mpi', when='+hdf5')
depends_on('netcdf+mpi', when='+ncmpi')
-
def install(self, spec, prefix):
os.system('./bootstrap')
diff --git a/var/spack/repos/builtin/packages/ipopt/package.py b/var/spack/repos/builtin/packages/ipopt/package.py
index 47c5ca0c09..bd1e5f36ef 100644
--- a/var/spack/repos/builtin/packages/ipopt/package.py
+++ b/var/spack/repos/builtin/packages/ipopt/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Ipopt(Package):
"""Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a
software package for large-scale nonlinear optimization."""
@@ -38,9 +39,9 @@ class Ipopt(Package):
depends_on("blas")
depends_on("lapack")
- depends_on("pkg-config")
- depends_on("mumps+double~mpi")
-
+ depends_on("pkg-config", type='build')
+ depends_on("mumps+double~mpi")
+
def install(self, spec, prefix):
# Dependency directories
blas_dir = spec['blas'].prefix
@@ -52,10 +53,9 @@ class Ipopt(Package):
mumps_flags = "-ldmumps -lmumps_common -lpord -lmpiseq"
mumps_libcmd = "-L%s " % mumps_dir.lib + mumps_flags
- # By convention, spack links blas & lapack libs to libblas & liblapack
- blas_lib = "-L%s" % blas_dir.lib + " -lblas"
- lapack_lib = "-L%s" % lapack_dir.lib + " -llapack"
-
+ blas_lib = spec['blas'].blas_libs.ld_flags
+ lapack_lib = spec['lapack'].lapack_libs.ld_flags
+
configure_args = [
"--prefix=%s" % prefix,
"--with-mumps-incdir=%s" % mumps_dir.include,
@@ -65,8 +65,8 @@ class Ipopt(Package):
"--with-blas-lib=%s" % blas_lib,
"--with-lapack-incdir=%s" % lapack_dir.include,
"--with-lapack-lib=%s" % lapack_lib
- ]
-
+ ]
+
configure(*configure_args)
# IPOPT does not build correctly in parallel on OS X
diff --git a/var/spack/repos/builtin/packages/ipp/package.py b/var/spack/repos/builtin/packages/ipp/package.py
new file mode 100644
index 0000000000..c48ace79c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ipp/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+from spack.pkg.builtin.intel import IntelInstaller
+
+
+class Ipp(IntelInstaller):
+ """Intel Integrated Performance Primitives.
+
+ Note: You will have to add the download file to a
+ mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://software.intel.com/en-us/intel-ipp"
+
+ version('9.0.3.210', '0e1520dd3de7f811a6ef6ebc7aa429a3',
+ url="file://%s/l_ipp_9.0.3.210.tgz" % os.getcwd())
+
+ def install(self, spec, prefix):
+
+ self.intel_prefix = os.path.join(prefix, "pkg")
+ IntelInstaller.install(self, spec, prefix)
+
+ ipp_dir = os.path.join(self.intel_prefix, "ipp")
+ for f in os.listdir(ipp_dir):
+ os.symlink(os.path.join(ipp_dir, f), os.path.join(self.prefix, f))
diff --git a/var/spack/repos/builtin/packages/isl/package.py b/var/spack/repos/builtin/packages/isl/package.py
index f456f62225..f6188e6b3e 100644
--- a/var/spack/repos/builtin/packages/isl/package.py
+++ b/var/spack/repos/builtin/packages/isl/package.py
@@ -24,12 +24,14 @@
##############################################################################
from spack import *
+
class Isl(Package):
"""isl is a thread-safe C library for manipulating sets and
relations of integer points bounded by affine constraints."""
homepage = "http://isl.gforge.inria.fr"
url = "http://isl.gforge.inria.fr/isl-0.14.tar.bz2"
+ version('0.18', '11436d6b205e516635b666090b94ab32')
version('0.14', 'acd347243fca5609e3df37dba47fd0bb')
depends_on("gmp")
diff --git a/var/spack/repos/builtin/packages/itstool/package.py b/var/spack/repos/builtin/packages/itstool/package.py
new file mode 100644
index 0000000000..b8b2b4459f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/itstool/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Itstool(Package):
+ """ITS Tool allows you to translate your XML documents with PO files, using
+ rules from the W3C Internationalization Tag Set (ITS) to determine what
+ to translate and how to separate it into PO file messages."""
+
+ homepage = "http://itstool.org/"
+ url = "http://files.itstool.org/itstool/itstool-2.0.2.tar.bz2"
+
+ version('2.0.2', 'd472d877a7bc49899a73d442085b2f93')
+ version('2.0.1', '40935cfb08228488bd45575e5f001a34')
+ version('2.0.0', 'd8c702c3e8961db83d04182c2aa4730b')
+ version('1.2.0', 'c0925f6869e33af8e7fe56848c129152')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/jansson/package.py b/var/spack/repos/builtin/packages/jansson/package.py
new file mode 100644
index 0000000000..e6100607aa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/jansson/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Jansson(CMakePackage):
+ """Jansson is a C library for encoding, decoding and manipulating JSON
+ data."""
+
+ homepage = "http://www.digip.org/jansson/"
+ url = "https://github.com/akheron/jansson/archive/v2.9.tar.gz"
+
+ version('2.9', 'd2db25c437b359fc5a065ed938962237')
diff --git a/var/spack/repos/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch b/var/spack/repos/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch
new file mode 100644
index 0000000000..cbf79ff971
--- /dev/null
+++ b/var/spack/repos/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch
@@ -0,0 +1,25 @@
+diff --git a/src/libjasper/jpc/jpc_dec.c b/src/libjasper/jpc/jpc_dec.c
+index fa72a0e..1f4845f 100644
+--- a/src/libjasper/jpc/jpc_dec.c
++++ b/src/libjasper/jpc/jpc_dec.c
+@@ -1069,12 +1069,18 @@ static int jpc_dec_tiledecode(jpc_dec_t *dec, jpc_dec_tile_t *tile)
+ /* Apply an inverse intercomponent transform if necessary. */
+ switch (tile->cp->mctid) {
+ case JPC_MCT_RCT:
+- assert(dec->numcomps == 3);
++ if (dec->numcomps != 3 && dec->numcomps != 4) {
++ jas_eprintf("bad number of components (%d)\n", dec->numcomps);
++ return -1;
++ }
+ jpc_irct(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
+ case JPC_MCT_ICT:
+- assert(dec->numcomps == 3);
++ if (dec->numcomps != 3 && dec->numcomps != 4) {
++ jas_eprintf("bad number of components (%d)\n", dec->numcomps);
++ return -1;
++ }
+ jpc_iict(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
diff --git a/var/spack/repos/builtin/packages/jasper/package.py b/var/spack/repos/builtin/packages/jasper/package.py
new file mode 100644
index 0000000000..f450c7d155
--- /dev/null
+++ b/var/spack/repos/builtin/packages/jasper/package.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Jasper(Package):
+ """Library for manipulating JPEG-2000 images"""
+
+ homepage = "https://www.ece.uvic.ca/~frodo/jasper/"
+ url = "https://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.1.zip"
+
+ version('1.900.1', 'a342b2b4495b3e1394e161eb5d85d754')
+
+ variant('shared', default=True,
+ description='Builds shared versions of the libraries')
+ variant('debug', default=False,
+ description='Builds debug versions of the libraries')
+
+ depends_on('libjpeg-turbo')
+
+ # Fixes a bug (still in upstream as of v.1.900.1) where an assertion fails
+ # when certain JPEG-2000 files with an alpha channel are processed
+ # see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786
+ patch('fix_alpha_channel_assert_fail.patch')
+
+ def install(self, spec, prefix):
+ configure_options = [
+ '--prefix={0}'.format(prefix),
+ '--mandir={0}'.format(spec.prefix.man),
+ ]
+
+ if '+shared' in spec:
+ configure_options.append('--enable-shared')
+
+ if '+debug' not in spec:
+ configure_options.append('--disable-debug')
+
+ configure(*configure_options)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py
index 2ec86f05e3..518a469435 100644
--- a/var/spack/repos/builtin/packages/jdk/package.py
+++ b/var/spack/repos/builtin/packages/jdk/package.py
@@ -22,49 +22,41 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-#------------------------------------------------------------------------------
+#
# Author: Justin Too <too1@llnl.gov>
-#------------------------------------------------------------------------------
-import distutils
-from distutils import dir_util
-from subprocess import call
-
-import spack
+#
+import distutils.dir_util
from spack import *
-import llnl.util.tty as tty
+
class Jdk(Package):
"""The Java Development Kit (JDK) released by Oracle Corporation
in the form of a binary product aimed at Java developers."""
homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
- version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf',
- url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz")
-
# Oracle requires that you accept their License Agreement in order
# to access the Java packages in download.oracle.com. In order to
# automate this process, we need to utilize these additional curl
# commandline options.
#
# See http://stackoverflow.com/questions/10268583/how-to-automate-download-and-installation-of-java-jdk-on-linux
- curl_options=[
- '-j', # junk cookies
- '-H', # specify required License Agreement cookie
+ curl_options = [
+ '-j', # junk cookies
+ '-H', # specify required License Agreement cookie
'Cookie: oraclelicense=accept-securebackup-cookie']
- def do_fetch(self, mirror_only=False):
- # Add our custom curl commandline options
- tty.msg(
- "[Jdk] Adding required commandline options to curl " +
- "before performing fetch: %s" %
- (self.curl_options))
-
- for option in self.curl_options:
- spack.curl.add_default_arg(option)
-
- # Now perform the actual fetch
- super(Jdk, self).do_fetch(mirror_only)
-
+ version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf',
+ url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz",
+ curl_options=curl_options)
+ version('8u92-linux-x64', '65a1cc17ea362453a6e0eb4f13be76e4',
+ url="http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz",
+ curl_options=curl_options)
def install(self, spec, prefix):
distutils.dir_util.copy_tree(".", prefix)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('JAVA_HOME', self.spec.prefix)
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ spack_env.set('JAVA_HOME', self.spec.prefix)
diff --git a/var/spack/repos/builtin/packages/jemalloc/package.py b/var/spack/repos/builtin/packages/jemalloc/package.py
index a67754a513..839251f47b 100644
--- a/var/spack/repos/builtin/packages/jemalloc/package.py
+++ b/var/spack/repos/builtin/packages/jemalloc/package.py
@@ -24,11 +24,16 @@
##############################################################################
from spack import *
+
class Jemalloc(Package):
- """jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support."""
+ """jemalloc is a general purpose malloc(3) implementation that emphasizes
+ fragmentation avoidance and scalable concurrency support."""
homepage = "http://www.canonware.com/jemalloc/"
url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2"
+ version('4.3.1', 'f204c0ea1aef92fbb339dc640de338a6')
+ version('4.2.1', '094b0a7b8c77c464d0dc8f0643fd3901')
+ version('4.2.0', 'e6b5d5a1ea93a04207528d274efdd144')
version('4.1.0', 'c4e53c947905a533d5899e5cc3da1f94')
version('4.0.4', '687c5cc53b9a7ab711ccd680351ff988')
@@ -36,7 +41,7 @@ class Jemalloc(Package):
variant('prof', default=False, description='Enable heap profiling')
def install(self, spec, prefix):
- configure_args = ['--prefix=%s' % prefix,]
+ configure_args = ['--prefix=%s' % prefix, ]
if '+stats' in spec:
configure_args.append('--enable-stats')
diff --git a/var/spack/repos/builtin/packages/jpeg/package.py b/var/spack/repos/builtin/packages/jpeg/package.py
index e4a9d8535b..594240d950 100644
--- a/var/spack/repos/builtin/packages/jpeg/package.py
+++ b/var/spack/repos/builtin/packages/jpeg/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Jpeg(Package):
"""libjpeg is a widely used free library with functions for handling the
JPEG image data format. It implements a JPEG codec (encoding and decoding)
diff --git a/var/spack/repos/builtin/packages/icu/package.py b/var/spack/repos/builtin/packages/jsoncpp/package.py
index c7cabb5d95..5169b338ee 100644
--- a/var/spack/repos/builtin/packages/icu/package.py
+++ b/var/spack/repos/builtin/packages/jsoncpp/package.py
@@ -24,26 +24,26 @@
##############################################################################
from spack import *
-class Icu(Package):
- """The International Components for Unicode (ICU) package is a
- mature, widely used set of C/C++ libraries providing Unicode and
- Globalization support for software applications. ICU is widely
- portable and gives applications the same results on all
- platforms."""
- # FIXME: add a proper url for your package's homepage here.
- homepage = "http://www.example.com"
- url = "http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz"
- version('54.1', 'e844caed8f2ca24c088505b0d6271bc0')
+class Jsoncpp(Package):
+ """JsonCpp is a C++ library that allows manipulating JSON values,
+ including serialization and deserialization to and from strings.
+ It can also preserve existing comment in unserialization/serialization
+ steps, making it a convenient format to store user input files."""
+ homepage = "https://github.com/open-source-parsers/jsoncpp"
+ url = "https://github.com/open-source-parsers/jsoncpp/archive/1.7.3.tar.gz"
- def url_for_version(self, version):
- return "http://download.icu-project.org/files/icu4c/%s/icu4c-%s-src.tgz" % (
- version, str(version).replace('.', '_'))
+ version('1.7.3', 'aff6bfb5b81d9a28785429faa45839c5')
+ depends_on('cmake', type='build')
+ # depends_on('python', type='test')
def install(self, spec, prefix):
- with working_dir("source"):
- configure("--prefix=%s" % prefix)
+ with working_dir('spack-build', create=True):
+ cmake('..', '-DBUILD_SHARED_LIBS=ON', *std_cmake_args)
+
make()
- make("install")
+ if self.run_tests:
+ make('test') # Python needed to run tests
+ make('install')
diff --git a/var/spack/repos/builtin/packages/judy/package.py b/var/spack/repos/builtin/packages/judy/package.py
index 8d47767ef0..8b8b261e53 100644
--- a/var/spack/repos/builtin/packages/judy/package.py
+++ b/var/spack/repos/builtin/packages/judy/package.py
@@ -24,8 +24,9 @@
##############################################################################
from spack import *
+
class Judy(Package):
- """A general-purpose dynamic array, associative array and hash-trie - Judy"""
+ """Judy: General-purpose dynamic array, associative array and hash-trie."""
homepage = "http://judy.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/judy/judy/Judy-1.0.5/Judy-1.0.5.tar.gz"
diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py
index 69b52130e9..89db570b81 100644
--- a/var/spack/repos/builtin/packages/julia/package.py
+++ b/var/spack/repos/builtin/packages/julia/package.py
@@ -22,8 +22,11 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+
from spack import *
import os
+import sys
+
class Julia(Package):
"""The Julia Language: A fresh approach to technical computing"""
@@ -32,28 +35,46 @@ class Julia(Package):
version('master',
git='https://github.com/JuliaLang/julia.git', branch='master')
+ version('release-0.5',
+ git='https://github.com/JuliaLang/julia.git', branch='release-0.5')
+ version('0.5.0', 'b61385671ba74767ab452363c43131fb', preferred=True)
+ version('release-0.4',
+ git='https://github.com/JuliaLang/julia.git', branch='release-0.4')
+ version('0.4.7', '75a7a7dd882b7840829d8f165e9b9078')
+ version('0.4.6', 'd88db18c579049c23ab8ef427ccedf5d')
version('0.4.5', '69141ff5aa6cee7c0ec8c85a34aa49a6')
version('0.4.3', '8a4a59fd335b05090dd1ebefbbe5aaac')
- patch('gc.patch')
+ # TODO: Split these out into jl-hdf5, jl-mpi packages etc.
+ variant("cxx", default=False, description="Prepare for Julia Cxx package")
+ variant("hdf5", default=False, description="Install Julia HDF5 package")
+ variant("mpi", default=True, description="Install Julia MPI package")
+ variant("plot", default=False,
+ description="Install Julia plotting packages")
+ variant("python", default=False,
+ description="Install Julia Python package")
+
+ patch('gc.patch', when='@0.4:0.4.5')
patch('openblas.patch', when='@0.4:0.4.5')
+ variant('binutils', default=sys.platform != 'darwin',
+ description="Build via binutils")
+
# Build-time dependencies:
# depends_on("awk")
- # depends_on("m4")
+ depends_on("m4", type="build")
# depends_on("pkg-config")
# Combined build-time and run-time dependencies:
- depends_on("binutils")
+ # (Yes, these are run-time dependencies used by Julia's package manager.)
+ depends_on("binutils", when='+binutils')
depends_on("cmake @2.8:")
- depends_on("git")
+ depends_on("curl")
+ depends_on("git", when='@:0.4')
+ depends_on("git", when='@release-0.4')
depends_on("openssl")
depends_on("python @2.7:2.999")
- # I think that Julia requires the dependencies above, but it
- # builds fine (on my system) without these. We should enable them
- # as necessary.
-
# Run-time dependencies:
# depends_on("arpack")
# depends_on("fftw +float")
@@ -88,30 +109,128 @@ class Julia(Package):
# USE_SYSTEM_LIBGIT2=0
# Run-time dependencies for Julia packages:
- depends_on("hdf5")
- depends_on("mpi")
+ depends_on("hdf5", when="+hdf5", type="run")
+ depends_on("mpi", when="+mpi", type="run")
+ depends_on("py-matplotlib", when="+plot", type="run")
def install(self, spec, prefix):
- if '@master' in spec:
- # Julia needs to know the offset from a specific commit
- git = which('git')
- git('fetch', '--unshallow')
-
+ # Julia needs git tags
+ if os.path.isfile(".git/shallow"):
+ git = which("git")
+ git("fetch", "--unshallow")
# Explicitly setting CC, CXX, or FC breaks building libuv, one
# of Julia's dependencies. This might be a Darwin-specific
# problem. Given how Spack sets up compilers, Julia should
# still use Spack's compilers, even if we don't specify them
# explicitly.
- options = [#"CC=cc",
- #"CXX=c++",
- #"FC=fc",
- #"USE_SYSTEM_ARPACK=1",
- #"USE_SYSTEM_FFTW=1",
- #"USE_SYSTEM_GMP=1",
- #"USE_SYSTEM_MPFR=1",
- #TODO "USE_SYSTEM_PCRE=1",
- "prefix=%s" % prefix]
+ options = [
+ # "CC=cc",
+ # "CXX=c++",
+ # "FC=fc",
+ # "USE_SYSTEM_ARPACK=1",
+ "override USE_SYSTEM_CURL=1",
+ # "USE_SYSTEM_FFTW=1",
+ # "USE_SYSTEM_GMP=1",
+ # "USE_SYSTEM_MPFR=1",
+ # "USE_SYSTEM_PCRE=1",
+ "prefix=%s" % prefix]
+ if "+cxx" in spec:
+ if "@master" not in spec:
+ raise InstallError(
+ "Variant +cxx requires the @master version of Julia")
+ options += [
+ "BUILD_LLVM_CLANG=1",
+ "LLVM_ASSERTIONS=1",
+ "USE_LLVM_SHLIB=1"]
with open('Make.user', 'w') as f:
f.write('\n'.join(options) + '\n')
make()
make("install")
+
+ # Julia's package manager needs a certificate
+ curl = which("curl")
+ cacert_file = join_path(prefix, "etc", "curl", "cacert.pem")
+ curl("--create-dirs",
+ "--output", cacert_file,
+ "https://curl.haxx.se/ca/cacert.pem")
+
+ # Put Julia's compiler cache into a private directory
+ cachedir = join_path(prefix, "var", "julia", "cache")
+ mkdirp(cachedir)
+
+ # Store Julia packages in a private directory
+ pkgdir = join_path(prefix, "var", "julia", "pkg")
+ mkdirp(pkgdir)
+
+ # Configure Julia
+ with open(join_path(prefix, "etc", "julia", "juliarc.jl"),
+ "a") as juliarc:
+ if "@master" in spec or "@release-0.5" in spec or "@0.5:" in spec:
+ # This is required for versions @0.5:
+ juliarc.write(
+ '# Point package manager to working certificates\n')
+ juliarc.write('LibGit2.set_ssl_cert_locations("%s")\n' %
+ cacert_file)
+ juliarc.write('\n')
+ juliarc.write('# Put compiler cache into a private directory\n')
+ juliarc.write('empty!(Base.LOAD_CACHE_PATH)\n')
+ juliarc.write('unshift!(Base.LOAD_CACHE_PATH, "%s")\n' % cachedir)
+ juliarc.write('\n')
+ juliarc.write('# Put Julia packages into a private directory\n')
+ juliarc.write('ENV["JULIA_PKGDIR"] = "%s"\n' % pkgdir)
+ juliarc.write('\n')
+
+ # Install some commonly used packages
+ julia = Executable(join_path(prefix.bin, "julia"))
+ julia("-e", 'Pkg.init(); Pkg.update()')
+
+ # Install HDF5
+ if "+hdf5" in spec:
+ with open(join_path(prefix, "etc", "julia", "juliarc.jl"),
+ "a") as juliarc:
+ juliarc.write('# HDF5\n')
+ juliarc.write('push!(Libdl.DL_LOAD_PATH, "%s")\n' %
+ spec["hdf5"].prefix.lib)
+ juliarc.write('\n')
+ julia("-e", 'Pkg.add("HDF5"); using HDF5')
+ julia("-e", 'Pkg.add("JLD"); using JLD')
+
+ # Install MPI
+ if "+mpi" in spec:
+ with open(join_path(prefix, "etc", "julia", "juliarc.jl"),
+ "a") as juliarc:
+ juliarc.write('# MPI\n')
+ juliarc.write('ENV["JULIA_MPI_C_COMPILER"] = "%s"\n' %
+ join_path(spec["mpi"].prefix.bin, "mpicc"))
+ juliarc.write('ENV["JULIA_MPI_Fortran_COMPILER"] = "%s"\n' %
+ join_path(spec["mpi"].prefix.bin, "mpifort"))
+ juliarc.write('\n')
+ julia("-e", 'Pkg.add("MPI"); using MPI')
+
+ # Install Python
+ if "+python" in spec or "+plot" in spec:
+ with open(join_path(prefix, "etc", "julia", "juliarc.jl"),
+ "a") as juliarc:
+ juliarc.write('# Python\n')
+ juliarc.write('ENV["PYTHON"] = "%s"\n' % spec["python"].prefix)
+ juliarc.write('\n')
+ # Python's OpenSSL package installer complains:
+ # Error: PREFIX too long: 166 characters, but only 128 allowed
+ # Error: post-link failed for: openssl-1.0.2g-0
+ julia("-e", 'Pkg.add("PyCall"); using PyCall')
+
+ if "+plot" in spec:
+ julia("-e", 'Pkg.add("PyPlot"); using PyPlot')
+ julia("-e", 'Pkg.add("Colors"); using Colors')
+ # These require maybe gtk and image-magick
+ julia("-e", 'Pkg.add("Plots"); using Plots')
+ julia("-e", 'Pkg.add("PlotRecipes"); using PlotRecipes')
+ julia("-e", 'Pkg.add("UnicodePlots"); using UnicodePlots')
+ julia("-e", """\
+using Plots
+using UnicodePlots
+unicodeplots()
+plot(x->sin(x)*cos(x), linspace(0, 2pi))
+""")
+
+ julia("-e", 'Pkg.status()')
diff --git a/var/spack/repos/builtin/packages/kbproto/package.py b/var/spack/repos/builtin/packages/kbproto/package.py
new file mode 100644
index 0000000000..356d1c6b4f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kbproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Kbproto(Package):
+ """X Keyboard Extension.
+
+ This extension defines a protcol to provide a number of new capabilities
+ and controls for text keyboards."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/kbproto"
+ url = "https://www.x.org/archive/individual/proto/kbproto-1.0.7.tar.gz"
+
+ version('1.0.7', '19acc5f02ae80381e216f443134e0bbb')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/kdiff3/package.py b/var/spack/repos/builtin/packages/kdiff3/package.py
new file mode 100644
index 0000000000..48f4b9c379
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kdiff3/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Kdiff3(Package):
+ """Compare and merge 2 or 3 files or directories."""
+ homepage = "http://kdiff3.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/kdiff3/kdiff3/0.9.98/kdiff3-0.9.98.tar.gz"
+
+ version('0.9.98', 'b52f99f2cf2ea75ed5719315cbf77446')
+
+ depends_on("qt@5.2.0:")
+
+ def install(self, spec, prefix):
+ # make is done inside
+ configure('qt4')
+
+ # there is no make install, bummer...
+ mkdirp(self.prefix.bin)
+ install(join_path(self.stage.source_path, 'releaseQt', 'kdiff3'),
+ self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/kealib/package.py b/var/spack/repos/builtin/packages/kealib/package.py
index 7c73c4518b..5346fc8cb9 100644
--- a/var/spack/repos/builtin/packages/kealib/package.py
+++ b/var/spack/repos/builtin/packages/kealib/package.py
@@ -24,20 +24,21 @@
##############################################################################
from spack import *
+
class Kealib(Package):
"""An HDF5 Based Raster File Format
-
+
KEALib provides an implementation of the GDAL data model.
The format supports raster attribute tables, image pyramids,
meta-data and in-built statistics while also handling very
large files and compression throughout.
-
+
Based on the HDF5 standard, it also provides a base from which
other formats can be derived and is a good choice for long
term data archiving. An independent software library (libkea)
provides complete access to the KEA image format and a GDAL
driver allowing KEA images to be used from any GDAL supported software.
-
+
Development work on this project has been funded by Landcare Research.
"""
homepage = "http://kealib.org/"
@@ -51,7 +52,8 @@ class Kealib(Package):
with working_dir('trunk', create=False):
cmake_args = []
cmake_args.append("-DCMAKE_INSTALL_PREFIX=%s" % prefix)
- cmake_args.append("-DHDF5_INCLUDE_DIR=%s" % spec['hdf5'].prefix.include)
+ cmake_args.append("-DHDF5_INCLUDE_DIR=%s" %
+ spec['hdf5'].prefix.include)
cmake_args.append("-DHDF5_LIB_PATH=%s" % spec['hdf5'].prefix.lib)
cmake('.', *cmake_args)
diff --git a/var/spack/repos/builtin/packages/kripke/package.py b/var/spack/repos/builtin/packages/kripke/package.py
index d405e9a51d..cf8d2b7e39 100644
--- a/var/spack/repos/builtin/packages/kripke/package.py
+++ b/var/spack/repos/builtin/packages/kripke/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Kripke(Package):
"""Kripke is a simple, scalable, 3D Sn deterministic particle
transport proxy/mini app.
diff --git a/var/spack/repos/builtin/packages/launchmon/package.py b/var/spack/repos/builtin/packages/launchmon/package.py
index f38bc38202..c2b289da4f 100644
--- a/var/spack/repos/builtin/packages/launchmon/package.py
+++ b/var/spack/repos/builtin/packages/launchmon/package.py
@@ -24,28 +24,20 @@
##############################################################################
from spack import *
+
class Launchmon(Package):
"""Software infrastructure that enables HPC run-time tools to
co-locate tool daemons with a parallel job."""
- homepage = "http://sourceforge.net/projects/launchmon"
- url = "http://downloads.sourceforge.net/project/launchmon/launchmon/1.0.1%20release/launchmon-1.0.1.tar.gz"
-
- version('1.0.1', '2f12465803409fd07f91174a4389eb2b')
- version('1.0.1-2', git='https://github.com/llnl/launchmon.git', commit='ff7e22424b8f375318951eb1c9282fcbbfa8aadf')
-
- depends_on('autoconf')
- depends_on('automake')
- depends_on('libtool')
-
+ homepage = "https://github.com/LLNL/LaunchMON"
+ url = "https://github.com/LLNL/LaunchMON/releases/download/v1.0.2/launchmon-v1.0.2.tar.gz"
- def patch(self):
- # This patch makes libgcrypt compile correctly with newer gcc versions.
- mf = FileFilter('tools/libgcrypt/tests/Makefile.in')
- mf.filter(r'(basic_LDADD\s*=\s*.*)', r'\1 -lgpg-error')
- mf.filter(r'(tsexp_LDADD\s*=\s*.*)', r'\1 -lgpg-error')
- mf.filter(r'(keygen_LDADD\s*=\s*.*)', r'\1 -lgpg-error')
- mf.filter(r'(benchmark_LDADD\s*=\s*.*)', r'\1 -lgpg-error')
+ version('1.0.2', '8d6ba77a0ec2eff2fde2c5cc8fa7ff7a')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('libgcrypt')
+ depends_on('libgpg-error')
def install(self, spec, prefix):
configure(
diff --git a/var/spack/repos/builtin/packages/lbxproxy/package.py b/var/spack/repos/builtin/packages/lbxproxy/package.py
new file mode 100644
index 0000000000..3de3ade0c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lbxproxy/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lbxproxy(Package):
+ """lbxproxy accepts client connections, multiplexes them over a single
+ connection to the X server, and performs various optimizations on the
+ X protocol to make it faster over low bandwidth and/or high latency
+ connections.
+
+ Note that the X server source from X.Org no longer supports the LBX
+ extension, so this program is only useful in connecting to older
+ X servers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/lbxproxy"
+ url = "https://www.x.org/archive/individual/app/lbxproxy-1.0.3.tar.gz"
+
+ version('1.0.3', '50a2a1ae15e8edf7582f76bcdf6b8197')
+
+ depends_on('libxext')
+ depends_on('liblbxutil')
+ depends_on('libx11')
+ depends_on('libice')
+
+ depends_on('xtrans', type='build')
+ depends_on('xproxymanagementprotocol', type='build')
+ depends_on('bigreqsproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/lcms/package.py b/var/spack/repos/builtin/packages/lcms/package.py
index 434d8e6c98..4d3fc59568 100644
--- a/var/spack/repos/builtin/packages/lcms/package.py
+++ b/var/spack/repos/builtin/packages/lcms/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Lcms(Package):
"""Little cms is a color management library. Implements fast
transforms between ICC profiles. It is focused on speed, and is
diff --git a/var/spack/repos/builtin/packages/leveldb/package.py b/var/spack/repos/builtin/packages/leveldb/package.py
index 408f1d31c1..f571baa1ce 100644
--- a/var/spack/repos/builtin/packages/leveldb/package.py
+++ b/var/spack/repos/builtin/packages/leveldb/package.py
@@ -22,10 +22,10 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
import glob
from spack import *
+
class Leveldb(Package):
"""LevelDB is a fast key-value storage library written at Google
that provides an ordered mapping from string keys to string values."""
diff --git a/var/spack/repos/builtin/packages/libaio/package.py b/var/spack/repos/builtin/packages/libaio/package.py
new file mode 100644
index 0000000000..735ced047b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libaio/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libaio(Package):
+ """This is the linux native Asynchronous I/O interface library."""
+
+ homepage = "https://git.fedorahosted.org/cgit/libaio.git"
+ url = "https://git.fedorahosted.org/cgit/libaio.git/snapshot/libaio-0.3.110-1.tar.gz"
+
+ version('0.3.110-1', 'eb6b1b435afadb5b80c5dd80984249f6')
+
+ def install(self, spec, prefix):
+ # libaio is not supported on OS X
+ if spec.satisfies('arch=darwin-x86_64'):
+ # create a dummy directory
+ mkdir(prefix.lib)
+ return
+
+ make('prefix={0}'.format(prefix), 'install')
diff --git a/var/spack/repos/builtin/packages/libapplewm/package.py b/var/spack/repos/builtin/packages/libapplewm/package.py
new file mode 100644
index 0000000000..85408053ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libapplewm/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libapplewm(Package):
+ """AppleWM is a simple library designed to interface with the Apple-WM
+ extension. This extension allows X window managers to better interact with
+ the Mac OS X Aqua user interface when running X11 in a rootless mode."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libAppleWM"
+ url = "https://www.x.org/archive/individual/lib/libAppleWM-1.4.1.tar.gz"
+
+ version('1.4.1', '52c587641eb57f00978d28d98d487af8')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('applewmproto@1.4:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ # Crashes with this error message on Linux:
+ # HIServices/Processes.h: No such file or directory
+ # May only build properly on macOS?
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libarchive/package.py b/var/spack/repos/builtin/packages/libarchive/package.py
index f11d732afa..e439bf894f 100644
--- a/var/spack/repos/builtin/packages/libarchive/package.py
+++ b/var/spack/repos/builtin/packages/libarchive/package.py
@@ -24,17 +24,34 @@
##############################################################################
from spack import *
+
class Libarchive(Package):
"""libarchive: C library and command-line tools for reading and
writing tar, cpio, zip, ISO, and other archive formats."""
+
homepage = "http://www.libarchive.org"
url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz"
+ version('3.2.1', 'afa257047d1941a565216edbf0171e72')
version('3.1.2', 'efad5a503f66329bb9d2f4308b5de98a')
version('3.1.1', '1f3d883daf7161a0065e42a15bbf168f')
version('3.1.0', '095a287bb1fd687ab50c85955692bf3a')
+ depends_on('zlib')
+ depends_on('bzip2')
+ depends_on('lzma')
+ depends_on('lz4')
+ depends_on('xz')
+ depends_on('lzo')
+ depends_on('nettle')
+ depends_on('openssl')
+ depends_on('libxml2')
+ depends_on('expat')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
+
make()
- make("install")
+ if self.run_tests:
+ make('check') # cannot build test suite with Intel compilers
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libatomic-ops/package.py b/var/spack/repos/builtin/packages/libatomic-ops/package.py
new file mode 100644
index 0000000000..0167fbcb33
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libatomic-ops/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class LibatomicOps(Package):
+ """This package provides semi-portable access to hardware-provided
+ atomic memory update operations on a number architectures."""
+
+ homepage = "https://github.com/ivmai/libatomic_ops"
+ url = "http://www.hboehm.info/gc/gc_source/libatomic_ops-7.4.4.tar.gz"
+
+ version('7.4.4', '426d804baae12c372967a6d183e25af2')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix),
+ '--enable-shared')
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py
index b30d76f4e9..1964f03b95 100644
--- a/var/spack/repos/builtin/packages/libcerf/package.py
+++ b/var/spack/repos/builtin/packages/libcerf/package.py
@@ -27,9 +27,10 @@ from spack import *
class Libcerf(Package):
- """
- A self-contained C library providing complex error functions, based on Faddeeva's plasma dispersion function
- w(z). Also provides Dawson's integral and Voigt's convolution of a Gaussian and a Lorentzian
+ """A self-contained C library providing complex error functions, based
+ on Faddeeva's plasma dispersion function w(z). Also provides Dawson's
+ integral and Voigt's convolution of a Gaussian and a Lorentzian
+
"""
homepage = "http://sourceforge.net/projects/libcerf"
url = "http://downloads.sourceforge.net/project/libcerf/libcerf-1.3.tgz"
@@ -37,6 +38,12 @@ class Libcerf(Package):
version('1.3', 'b3504c467204df71e62aeccf73a25612')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ options = []
+ # Clang reports unused functions as errors, see
+ # http://clang.debian.net/status.php?version=3.8.1&key=UNUSED_FUNCTION
+ if spec.satisfies('%clang'):
+ options.append('CFLAGS=-Wno-unused-function')
+
+ configure('--prefix=%s' % prefix, *options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libcircle/package.py b/var/spack/repos/builtin/packages/libcircle/package.py
index 75fdb96125..971c29f5f1 100644
--- a/var/spack/repos/builtin/packages/libcircle/package.py
+++ b/var/spack/repos/builtin/packages/libcircle/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Libcircle(Package):
"""libcircle provides an efficient distributed queue on a cluster,
using self-stabilizing work stealing."""
@@ -32,7 +32,7 @@ class Libcircle(Package):
homepage = "https://github.com/hpc/libcircle"
version('0.2.1-rc.1', '2b1369a5736457239f908abf88143ec2',
- url='https://github.com/hpc/libcircle/releases/download/0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz')
+ url='https://github.com/hpc/libcircle/releases/download/0.2.1-rc.1/libcircle-0.2.1-rc.1.tar.gz')
depends_on('mpi')
diff --git a/var/spack/repos/builtin/packages/libctl/package.py b/var/spack/repos/builtin/packages/libctl/package.py
new file mode 100644
index 0000000000..53d30ce5c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libctl/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libctl(Package):
+ """libctl is a free Guile-based library implementing flexible
+ control files for scientific simulations."""
+
+ homepage = "http://ab-initio.mit.edu/wiki/index.php/Libctl"
+ url = "http://ab-initio.mit.edu/libctl/libctl-3.2.2.tar.gz"
+
+ version('3.2.2', '5fd7634dc9ae8e7fa70a68473b9cbb68')
+
+ depends_on('guile')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix),
+ '--enable-shared',
+ 'GUILE={0}'.format(join_path(
+ spec['guile'].prefix.bin, 'guile')),
+ 'GUILE_CONFIG={0}'.format(join_path(
+ spec['guile'].prefix.bin, 'guile-config')))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libdmx/package.py b/var/spack/repos/builtin/packages/libdmx/package.py
new file mode 100644
index 0000000000..fa469fd423
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libdmx/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libdmx(Package):
+ """libdmx - X Window System DMX (Distributed Multihead X) extension
+ library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libdmx"
+ url = "https://www.x.org/archive/individual/lib/libdmx-1.1.3.tar.gz"
+
+ version('1.1.3', 'eed755e7cdb161e05f70e955f2b0ef4d')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('dmxproto@2.2.99.1:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py
index b05412e588..ab9661269e 100644
--- a/var/spack/repos/builtin/packages/libdrm/package.py
+++ b/var/spack/repos/builtin/packages/libdrm/package.py
@@ -24,21 +24,27 @@
##############################################################################
from spack import *
+
class Libdrm(Package):
"""A userspace library for accessing the DRM, direct
rendering manager, on Linux, BSD and other operating
systems that support the ioctl interface."""
- homepage = "http://dri.freedesktop.org/libdrm/" # no real website...
+ homepage = "http://dri.freedesktop.org/libdrm/"
url = "http://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz"
+ version('2.4.70', 'a8c275bce5f3d71a5ca25e8fb60df084')
version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6')
version('2.4.33', '86e4e3debe7087d5404461e0032231c8')
- depends_on('libpciaccess')
+ depends_on('libpciaccess@0.10:')
+ depends_on('libpthread-stubs')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix),
+ '--enable-static',
+ 'LIBS=-lrt') # This fixes a bug with `make check`
make()
- make("install")
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libdwarf/package.py b/var/spack/repos/builtin/packages/libdwarf/package.py
index 3f5a72116e..594271f655 100644
--- a/var/spack/repos/builtin/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin/packages/libdwarf/package.py
@@ -23,11 +23,11 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
# Only build certain parts of dwarf because the other ones break.
dwarf_dirs = ['libdwarf', 'dwarfdump2']
+
class Libdwarf(Package):
"""The DWARF Debugging Information Format is of interest to
programmers working on compilers and debuggers (and any one
@@ -41,18 +41,17 @@ class Libdwarf(Package):
MIPS/IRIX C compiler."""
homepage = "http://www.prevanders.net/dwarf.html"
- url = "http://www.prevanders.net/libdwarf-20130729.tar.gz"
+ url = "http://www.prevanders.net/libdwarf-20160507.tar.gz"
list_url = homepage
+ version('20160507', 'ae32d6f9ece5daf05e2d4b14822ea811')
version('20130729', '4cc5e48693f7b93b7aa0261e63c0e21d')
version('20130207', '64b42692e947d5180e162e46c689dfbf')
version('20130126', 'ded74a5e90edb5a12aac3c29d260c5db')
-
depends_on("libelf")
parallel = False
-
def install(self, spec, prefix):
# dwarf build does not set arguments for ar properly
make.add_default_arg('ARFLAGS=rcs')
@@ -69,7 +68,11 @@ class Libdwarf(Package):
install('libdwarf.h', prefix.include)
install('dwarf.h', prefix.include)
- with working_dir('dwarfdump2'):
+ if spec.satisfies('@20130126:20130729'):
+ dwarfdump_dir = 'dwarfdump2'
+ else:
+ dwarfdump_dir = 'dwarfdump'
+ with working_dir(dwarfdump_dir):
configure("--prefix=" + prefix)
# This makefile has strings of copy commands that
diff --git a/var/spack/repos/builtin/packages/libedit/package.py b/var/spack/repos/builtin/packages/libedit/package.py
index 4366344679..235e7648bc 100644
--- a/var/spack/repos/builtin/packages/libedit/package.py
+++ b/var/spack/repos/builtin/packages/libedit/package.py
@@ -24,12 +24,14 @@
##############################################################################
from spack import *
+
class Libedit(Package):
"""An autotools compatible port of the NetBSD editline library"""
homepage = "http://thrysoee.dk/editline/"
url = "http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz"
- version('3.1', '43cdb5df3061d78b5e9d59109871b4f6', url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz")
+ version('3.1', '43cdb5df3061d78b5e9d59109871b4f6',
+ url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz")
depends_on('ncurses')
diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py
index 1e1deea818..5af4ab705d 100644
--- a/var/spack/repos/builtin/packages/libelf/package.py
+++ b/var/spack/repos/builtin/packages/libelf/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class Libelf(Package):
+
+class Libelf(AutotoolsPackage):
"""libelf lets you read, modify or create ELF object files in an
architecture-independent way. The library takes care of size
and endian issues, e.g. you can process a file for SPARC
@@ -38,12 +39,11 @@ class Libelf(Package):
provides('elf')
- def install(self, spec, prefix):
- configure("--prefix=" + prefix,
- "--enable-shared",
- "--disable-dependency-tracking",
- "--disable-debug")
- make()
+ def configure_args(self):
+ args = ["--enable-shared",
+ "--disable-dependency-tracking",
+ "--disable-debug"]
+ return args
- # The mkdir commands in libelf's install can fail in parallel
- make("install", parallel=False)
+ def install(self, spec, prefix):
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/libemos/package.py b/var/spack/repos/builtin/packages/libemos/package.py
new file mode 100644
index 0000000000..0275c7ede9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libemos/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libemos(Package):
+ """The Interpolation library (EMOSLIB) includes Interpolation software and
+ BUFR & CREX encoding/decoding routines."""
+
+ homepage = "https://software.ecmwf.int/wiki/display/EMOS/Emoslib"
+ url = "https://software.ecmwf.int/wiki/download/attachments/3473472/libemos-4.4.2-Source.tar.gz"
+
+ version('4.4.2', 'f15a9aff0f40861f3f046c9088197376')
+
+ depends_on('cmake', type='build')
+ depends_on('grib-api')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ options.append('-DGRIB_API_PATH=%s' % spec['grib_api'].prefix)
+
+ # To support long pathnames that spack generates
+ options.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none')
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libepoxy/package.py b/var/spack/repos/builtin/packages/libepoxy/package.py
new file mode 100644
index 0000000000..364ea1e30c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libepoxy/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libepoxy(Package):
+ """Epoxy is a library for handling OpenGL function pointer management for
+ you."""
+ homepage = "https://github.com/anholt/libepoxy"
+ url = "https://github.com/anholt/libepoxy/releases/download/v1.3.1/libepoxy-1.3.1.tar.bz2"
+
+ version('1.3.1', '96f6620a9b005a503e7b44b0b528287d')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libevent/package.py b/var/spack/repos/builtin/packages/libevent/package.py
index 3ae427a2eb..65b3a716c0 100644
--- a/var/spack/repos/builtin/packages/libevent/package.py
+++ b/var/spack/repos/builtin/packages/libevent/package.py
@@ -24,11 +24,13 @@
##############################################################################
from spack import *
+
class Libevent(Package):
"""The libevent API provides a mechanism to execute a callback function
- when a specific event occurs on a file descriptor or after a timeout has been
- reached. Furthermore, libevent also support callbacks due to signals or regular
- timeouts.
+ when a specific event occurs on a file descriptor or after a
+ timeout has been reached. Furthermore, libevent also support
+ callbacks due to signals or regular timeouts.
+
"""
homepage = "http://libevent.org"
@@ -46,7 +48,8 @@ class Libevent(Package):
version('2.0.13', 'af786b4b3f790c9d3279792edf7867fc')
version('2.0.12', '42986228baf95e325778ed328a93e070')
- variant('openssl', default=True, description="Build with encryption enabled at the libevent level.")
+ variant('openssl', default=True,
+ description="Build with encryption enabled at the libevent level.")
depends_on('openssl', when='+openssl')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py
index 1d3c85c8e0..ddb7709ddf 100644
--- a/var/spack/repos/builtin/packages/libffi/package.py
+++ b/var/spack/repos/builtin/packages/libffi/package.py
@@ -24,18 +24,16 @@
##############################################################################
from spack import *
-class Libffi(Package):
+
+class Libffi(AutotoolsPackage):
"""The libffi library provides a portable, high level programming
interface to various calling conventions. This allows a programmer
to call any function specified by a call interface description at
run time."""
homepage = "https://sourceware.org/libffi/"
-
- version('3.2.1','83b89587607e3eb65c70d361f13bab43',url = "ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
- #version('3.1', 'f5898b29bbfd70502831a212d9249d10',url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz") # Has a bug $(lib64) instead of ${lib64} in libffi.pc
-
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ version('3.2.1', '83b89587607e3eb65c70d361f13bab43',
+ url="ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
+ # version('3.1', 'f5898b29bbfd70502831a212d9249d10',url =
+ # "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz") # Has a bug
+ # $(lib64) instead of ${lib64} in libffi.pc
diff --git a/var/spack/repos/builtin/packages/libfontenc/package.py b/var/spack/repos/builtin/packages/libfontenc/package.py
new file mode 100644
index 0000000000..1c7fa196d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libfontenc/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libfontenc(Package):
+ """libfontenc - font encoding library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libfontenc"
+ url = "https://www.x.org/archive/individual/lib/libfontenc-1.1.3.tar.gz"
+
+ version('1.1.3', '0ffa28542aa7d246299b1f7211cdb768')
+
+ depends_on('zlib')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libfs/package.py b/var/spack/repos/builtin/packages/libfs/package.py
new file mode 100644
index 0000000000..96bf62afd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libfs/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libfs(Package):
+ """libFS - X Font Service client library.
+
+ This library is used by clients of X Font Servers (xfs), such as
+ xfsinfo, fslsfonts, and the X servers themselves."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libFS"
+ url = "https://www.x.org/archive/individual/lib/libFS-1.0.7.tar.gz"
+
+ version('1.0.7', 'd8c1246f5b3d0e7ccf2190d3bf2ecb73')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('fontsproto', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py
index b1a316cc1b..b556def4d3 100644
--- a/var/spack/repos/builtin/packages/libgcrypt/package.py
+++ b/var/spack/repos/builtin/packages/libgcrypt/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libgcrypt(Package):
"""Libgcrypt is a general purpose cryptographic library based on
the code from GnuPG. It provides functions for all cryptographic
diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py
index 5e4e420842..6329adf8f3 100644
--- a/var/spack/repos/builtin/packages/libgd/package.py
+++ b/var/spack/repos/builtin/packages/libgd/package.py
@@ -27,27 +27,46 @@ from spack import *
class Libgd(Package):
- """
- GD is an open source code library for the dynamic creation of images by programmers. GD is written in C, and
- "wrappers" are available for Perl, PHP and other languages. GD creates PNG, JPEG, GIF, WebP, XPM, BMP images,
- among other formats. GD is commonly used to generate charts, graphics, thumbnails, and most anything else, on the
- fly. While not restricted to use on the web, the most common applications of GD involve website development.
+ """GD is an open source code library for the dynamic creation of images
+ by programmers. GD is written in C, and "wrappers" are available
+ for Perl, PHP and other languages. GD creates PNG, JPEG, GIF,
+ WebP, XPM, BMP images, among other formats. GD is commonly used to
+ generate charts, graphics, thumbnails, and most anything else, on
+ the fly. While not restricted to use on the web, the most common
+ applications of GD involve website development.
+
"""
homepage = "https://github.com/libgd/libgd"
url = "https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz"
+ version('2.2.3', 'a67bd15fa33d4aac0a1c7904aed19f49')
version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e')
+ # Build dependencies
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('gettext', type='build')
+ depends_on('pkg-config', type='build')
+
depends_on('libpng')
+ depends_on('libtiff')
+ depends_on('fontconfig')
def install(self, spec, prefix):
-
- with working_dir('spack-build', create=True):
- cmake('..',
- '-DENABLE_JPEG:BOOL=ON',
- '-DENABLE_PNG:BOOL=ON',
- '-DENABLE_TIFF:BOOL=ON',
- *std_cmake_args)
- make()
- make("install")
+ autoreconf("--install", "--force",
+ "-I", "m4",
+ "-I", join_path(spec['gettext'].prefix,
+ "share", "aclocal"),
+ "-I", join_path(spec['pkg-config'].prefix,
+ "share", "aclocal"),
+ "-I", join_path(spec['automake'].prefix,
+ "share", "aclocal"),
+ "-I", join_path(spec['libtool'].prefix,
+ "share", "aclocal")
+ )
+ configure('--prefix={0}'.format(prefix))
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py
index 3fe82a69e7..a0e2acd516 100644
--- a/var/spack/repos/builtin/packages/libgpg-error/package.py
+++ b/var/spack/repos/builtin/packages/libgpg-error/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class LibgpgError(Package):
"""Libgpg-error is a small library that defines common error
values for all GnuPG components. Among these are GPG, GPGSM,
diff --git a/var/spack/repos/builtin/packages/libgtextutils/package.py b/var/spack/repos/builtin/packages/libgtextutils/package.py
new file mode 100644
index 0000000000..201e031869
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libgtextutils/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libgtextutils(Package):
+ """Gordon's Text utils Library."""
+
+ homepage = "https://github.com/agordon/libgtextutils"
+ url = "https://github.com/agordon/libgtextutils/releases/download/0.7/libgtextutils-0.7.tar.gz"
+
+ version('0.7', '593c7c62e3c76ec49f5736eed4f96806')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libhio/package.py b/var/spack/repos/builtin/packages/libhio/package.py
new file mode 100644
index 0000000000..17bd86d310
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libhio/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libhio(Package):
+ """
+ A library for writing to hierarchical data store systems.
+ """
+
+ homepage = "https://github.com/hpc/libhio/"
+ url = "https://github.com/hpc/libhio/releases/download/hio.1.3.0.1/libhio-1.3.0.1.tar.gz"
+
+ version('1.3.0.1', 'c073541de8dd70aeb8878bd00d6d877f')
+
+ depends_on("libjson-c")
+ depends_on("bzip2")
+ depends_on("pkg-config", type="build")
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/libice/package.py b/var/spack/repos/builtin/packages/libice/package.py
new file mode 100644
index 0000000000..1f6fd2f901
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libice/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libice(Package):
+ """libICE - Inter-Client Exchange Library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libICE"
+ url = "https://www.x.org/archive/individual/lib/libICE-1.0.9.tar.gz"
+
+ version('1.0.9', '95812d61df8139c7cacc1325a26d5e37')
+
+ depends_on('xproto', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libiconv/gets.patch b/var/spack/repos/builtin/packages/libiconv/gets.patch
new file mode 100644
index 0000000000..7c4b5562ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libiconv/gets.patch
@@ -0,0 +1,13 @@
+--- a/srclib/stdio.in.h
++++ b/srclib/stdio.in.h
+@@ -692,10 +692,6 @@
+ # undef gets
+ # endif
+ _GL_CXXALIASWARN (gets);
+-/* It is very rare that the developer ever has full control of stdin,
+- so any use of gets warrants an unconditional warning. Assume it is
+- always declared, since it is required by C89. */
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+
+
diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py
new file mode 100644
index 0000000000..72f67ec80d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libiconv/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import shutil
+
+
+class Libiconv(AutotoolsPackage):
+ """GNU libiconv provides an implementation of the iconv() function
+ and the iconv program for character set conversion."""
+
+ homepage = "https://www.gnu.org/software/libiconv/"
+ url = "http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz"
+
+ version('1.14', 'e34509b1623cec449dfeb73d7ce9c6c6')
+
+ # We cannot set up a warning for gets(), since gets() is not part
+ # of C11 any more and thus might not exist.
+ patch("gets.patch")
+
+ def configure_args(self):
+ args = ['--enable-extra-encodings']
+
+ # A hack to patch config.guess in the libcharset sub directory
+ shutil.copyfile('./build-aux/config.guess',
+ 'libcharset/build-aux/config.guess')
+ return args
diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py
new file mode 100644
index 0000000000..2ad5e93191
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libint/package.py
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libint(Package):
+ """Libint is a high-performance library for computing
+ Gaussian integrals in quantum mechanics."""
+
+ homepage = "https://github.com/evaleev/libint"
+ url = "https://github.com/evaleev/libint/archive/v2.1.0.tar.gz"
+
+ version('2.1.0', 'd0dcb985fe32ddebc78fe571ce37e2d6')
+ version('1.1.6', '990f67b55f49ecc18f32c58da9240684')
+ version('1.1.5', '379b7d0718ff398715d6898807adf628')
+
+ # Build dependencies
+ depends_on('autoconf@2.52:', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+
+ # Libint 2 dependencies
+ depends_on('boost', when='@2:')
+ depends_on('gmp', when='@2:')
+
+ def url_for_version(self, version):
+ base_url = "https://github.com/evaleev/libint/archive"
+ if version == Version('1.0.0'):
+ return "{0}/LIBINT_1_00.tar.gz".format(base_url)
+ elif version < Version('2.1.0'):
+ return "{0}/release-{1}.tar.gz".format(base_url, version.dashed)
+ else:
+ return "{0}/v{1}.tar.gz".format(base_url, version)
+
+ def install(self, spec, prefix):
+ # Generate configure
+ libtoolize()
+ aclocal('-I', 'lib/autoconf')
+ autoconf()
+
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--enable-shared'
+ ]
+
+ # Optimizations for the Intel compiler, suggested by CP2K
+ optflags = '-O2'
+ if self.compiler.name == 'intel':
+ optflags += ' -xAVX -axCORE-AVX2 -ipo'
+ if which('xiar'):
+ env['AR'] = 'xiar'
+
+ env['CFLAGS'] = optflags
+ env['CXXFLAGS'] = optflags
+
+ # Optimization flag names have changed in libint 2
+ if self.version < Version('2.0.0'):
+ config_args.extend([
+ '--with-cc-optflags={0}'.format(optflags),
+ '--with-cxx-optflags={0}'.format(optflags)
+ ])
+ else:
+ config_args.extend([
+ '--with-cxx-optflags={0}'.format(optflags),
+ '--with-cxxgen-optflags={0}'.format(optflags)
+ ])
+
+ # Options required by CP2K, removed in libint 2
+ if self.version < Version('2.0.0'):
+ config_args.extend([
+ '--with-libint-max-am=5',
+ '--with-libderiv-max-am1=4'
+ ])
+
+ configure(*config_args)
+ make()
+
+ # Testing suite was added in libint 2
+ if self.version >= Version('2.0.0'):
+ make('check')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
index 8615b2ed83..3fe159d7b9 100644
--- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
@@ -24,21 +24,27 @@
##############################################################################
from spack import *
+
class LibjpegTurbo(Package):
- """libjpeg-turbo is a fork of the original IJG libjpeg which uses
- SIMD to accelerate baseline JPEG compression and
- decompression. libjpeg is a library that implements JPEG image
- encoding, decoding and transcoding."""
+ """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to
+ accelerate baseline JPEG compression and decompression. libjpeg is a
+ library that implements JPEG image encoding, decoding and
+ transcoding."""
+
homepage = "http://libjpeg-turbo.virtualgl.org"
url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz"
+ version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257')
version('1.3.1', '2c3a68129dac443a72815ff5bb374b05')
- # Can use either of these.
- depends_on("yasm")
- depends_on("nasm")
+ # Can use either of these. But in the current version of the package
+ # only nasm is used. In order to use yasm an environmental variable
+ # NASM must be set.
+ # TODO: Implement the selection between two supported assemblers.
+ # depends_on("yasm", type='build')
+ depends_on("nasm", type='build')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure("--prefix=" + prefix)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libjson-c/package.py b/var/spack/repos/builtin/packages/libjson-c/package.py
index 75f3e130ad..561c8ab71f 100644
--- a/var/spack/repos/builtin/packages/libjson-c/package.py
+++ b/var/spack/repos/builtin/packages/libjson-c/package.py
@@ -24,15 +24,12 @@
##############################################################################
from spack import *
-class LibjsonC(Package):
+
+class LibjsonC(AutotoolsPackage):
""" A JSON implementation in C """
homepage = "https://github.com/json-c/json-c/wiki"
url = "https://s3.amazonaws.com/json-c_releases/releases/json-c-0.11.tar.gz"
- version('0.11', 'aa02367d2f7a830bf1e3376f77881e98')
-
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ parallel = False
- make()
- make("install")
+ version('0.11', 'aa02367d2f7a830bf1e3376f77881e98')
diff --git a/var/spack/repos/builtin/packages/liblbxutil/package.py b/var/spack/repos/builtin/packages/liblbxutil/package.py
new file mode 100644
index 0000000000..1de59defd6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/liblbxutil/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Liblbxutil(Package):
+ """liblbxutil - Low Bandwith X extension (LBX) utility routines."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/liblbxutil"
+ url = "https://www.x.org/archive/individual/lib/liblbxutil-1.1.0.tar.gz"
+
+ version('1.1.0', '2735cd23625d4cc870ec4eb7ca272788')
+
+ depends_on('xextproto@7.0.99.1:', type='build')
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ # There is a bug in the library that causes the following messages:
+ # undefined symbol: Xfree
+ # undefined symbol: Xalloc
+ # See https://bugs.freedesktop.org/show_bug.cgi?id=8421
+ # Adding a dependency on libxdmcp and adding LIBS=-lXdmcp did not fix it
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py
new file mode 100644
index 0000000000..6ceef8dbf6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmesh/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libmesh(Package):
+ """The libMesh library provides a framework for the numerical simulation of
+ partial differential equations using arbitrary unstructured
+ discretizations on serial and parallel platforms."""
+
+ homepage = "http://libmesh.github.io/"
+ url = "https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.bz2"
+
+ version('1.0.0', 'cb464fc63ea0b71b1e69fa3f5d4f93a4')
+
+ variant('mpi', default=True, description='Enables MPI parallelism')
+
+ depends_on('mpi', when='+mpi')
+
+ # Parallel version of libmesh needs parallel solvers
+ depends_on('petsc+mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ config_args = ["--prefix=%s" % prefix]
+
+ if '+mpi' in spec:
+ config_args.append('CC=%s' % spec['mpi'].mpicc)
+ config_args.append('CXX=%s' % spec['mpi'].mpicxx)
+ config_args.append('PETSC_DIR=%s' % spec['petsc'].prefix)
+
+ configure(*config_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libmng/package.py b/var/spack/repos/builtin/packages/libmng/package.py
index dd0903c4bd..a77aada79c 100644
--- a/var/spack/repos/builtin/packages/libmng/package.py
+++ b/var/spack/repos/builtin/packages/libmng/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libmng(Package):
"""libmng -THE reference library for reading, displaying, writing
and examining Multiple-Image Network Graphics. MNG is the animation
@@ -39,7 +40,8 @@ class Libmng(Package):
def patch(self):
# jpeg requires stdio to beincluded before its headrs.
- filter_file(r'^(\#include \<jpeglib\.h\>)', '#include<stdio.h>\n\\1', 'libmng_types.h')
+ filter_file(r'^(\#include \<jpeglib\.h\>)',
+ '#include<stdio.h>\n\\1', 'libmng_types.h')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/libmonitor/package.py b/var/spack/repos/builtin/packages/libmonitor/package.py
index 883d8af405..f680baa265 100644
--- a/var/spack/repos/builtin/packages/libmonitor/package.py
+++ b/var/spack/repos/builtin/packages/libmonitor/package.py
@@ -24,19 +24,19 @@
##############################################################################
from spack import *
+
class Libmonitor(Package):
"""Libmonitor is a library for process and thread control."""
- homepage = "http://hpctoolkit.org"
-
- version('20130218', svn='http://libmonitor.googlecode.com/svn/trunk/', revision=146)
- variant('krellpatch', default=False, description="build with openspeedshop based patch.")
-
+ homepage = "https://github.com/HPCToolkit/libmonitor"
+ version('20130218', git='https://github.com/HPCToolkit/libmonitor.git',
+ commit='4f2311e')
+ variant('krellpatch', default=False,
+ description="build with openspeedshop based patch.")
patch('libmonitorkrell-0000.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0001.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0002.patch', when='@20130218+krellpatch')
-
def install(self, spec, prefix):
configure("--prefix=" + prefix)
make()
diff --git a/var/spack/repos/builtin/packages/libNBC/package.py b/var/spack/repos/builtin/packages/libnbc/package.py
index ed1d0ce96f..414498a37a 100644
--- a/var/spack/repos/builtin/packages/libNBC/package.py
+++ b/var/spack/repos/builtin/packages/libnbc/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libnbc(Package):
"""LibNBC is a prototypic implementation of a nonblocking
interface for MPI collective operations. Based on ANSI C and
diff --git a/var/spack/repos/builtin/packages/liboldx/package.py b/var/spack/repos/builtin/packages/liboldx/package.py
new file mode 100644
index 0000000000..9e85f1ed65
--- /dev/null
+++ b/var/spack/repos/builtin/packages/liboldx/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Liboldx(Package):
+ """X version 10 backwards compatibility."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/liboldX/"
+ url = "https://www.x.org/archive/individual/lib/liboldX-1.0.1.tar.gz"
+
+ version('1.0.1', 'ea7c4b6a19bf2d04100e2580abf83fae')
+
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py
index 5d1e93eab7..f4a3cf7157 100644
--- a/var/spack/repos/builtin/packages/libpciaccess/package.py
+++ b/var/spack/repos/builtin/packages/libpciaccess/package.py
@@ -23,25 +23,28 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os.path
+
class Libpciaccess(Package):
"""Generic PCI access library."""
homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
- url = "http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.4.tar.bz2"
+ url = "http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.4.tar.gz"
- version('0.13.4', 'ace78aec799b1cf6dfaea55d3879ed9f')
+ version('0.13.4', 'cc1fad87da60682af1d5fa43a5da45a4')
- depends_on('libtool')
+ depends_on('libtool', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
def install(self, spec, prefix):
# libpciaccess does not support OS X
- if spec.satisfies('=darwin-x86_64'):
+ if spec.satisfies('platform=darwin'):
# create a dummy directory
mkdir(prefix.lib)
return
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
+
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libpng/package.py b/var/spack/repos/builtin/packages/libpng/package.py
index 951b91eabd..46bbcebb89 100644
--- a/var/spack/repos/builtin/packages/libpng/package.py
+++ b/var/spack/repos/builtin/packages/libpng/package.py
@@ -24,21 +24,27 @@
##############################################################################
from spack import *
-class Libpng(Package):
- """libpng graphics file format"""
+
+class Libpng(AutotoolsPackage):
+ """libpng is the official PNG reference library."""
+
homepage = "http://www.libpng.org/pub/png/libpng.html"
- url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz"
+ url = "http://download.sourceforge.net/libpng/libpng-1.6.27.tar.gz"
- version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d')
- version('1.6.15', '829a256f3de9307731d4f52dc071916d')
- version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
- version('1.5.26', '3ca98347a5541a2dad55cd6d07ee60a9')
- version('1.4.19', '89bcbc4fc8b31f4a403906cf4f662330')
- version('1.2.56', '9508fc59d10a1ffadd9aae35116c19ee')
+ version('1.6.27', '58698519e9f6126c1caeefc28dbcbd5f')
+ # From http://www.libpng.org/pub/png/libpng.html (2017-01-04)
+ # Virtually all libpng versions through 1.6.26, 1.5.27,
+ # 1.4.19, 1.2.56, and 1.0.66, respectively, have a
+ # null-pointer-dereference bug in png_set_text_2() when an
+ # image-editing application adds, removes, and re-adds text
+ # chunks to a PNG image. (This bug does not affect pure
+ # viewers, nor are there any known editors that could trigger
+ # it without interactive user input. It has been assigned ID
+ # CVE-2016-10087.) The vulnerability is fixed in versions
+ # 1.6.27, 1.5.28, 1.4.20, 1.2.57, and 1.0.67, released on 29
+ # December 2016.
- depends_on('zlib')
+ # Required for qt@3
+ version('1.2.57', 'dfcda3603e29dcc11870c48f838ef75b')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ depends_on('zlib@1.0.4:') # 1.2.5 or later recommended
diff --git a/var/spack/repos/builtin/packages/libpthread-stubs/package.py b/var/spack/repos/builtin/packages/libpthread-stubs/package.py
new file mode 100644
index 0000000000..fdaf327c2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libpthread-stubs/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class LibpthreadStubs(Package):
+ """The libpthread-stubs package provides weak aliases for pthread
+ functions not provided in libc or otherwise available by default."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.gz"
+
+ version('0.3', 'a09d928c4af54fe5436002345ef71138')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libquo/package.py b/var/spack/repos/builtin/packages/libquo/package.py
new file mode 100644
index 0000000000..8856913bb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libquo/package.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Libquo(Package):
+ """A high-level, easy to use programming interface tailored specifically
+ for MPI/MPI+X codes that may benefit from evolving process binding
+ policies during their execution. QUO allows for arbitrary process binding
+ policies to be enacted and reverted during the execution of an MPI/MPI+X
+ application as different computational phases are entered and exited,
+ respectively."""
+
+ homepage = "https://github.com/losalamos/libquo"
+ url = "https://github.com/losalamos/libquo/archive/v1.2.9.tar.gz"
+
+ version('1.2.9', 'ca82ab33f13e2b89983f81e7c02e98c2')
+
+ depends_on('mpi')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+
+ def install(self, spec, prefix):
+ autoreconf_options = [
+ '--install',
+ '--verbose',
+ '--force',
+ '-I', 'config',
+ '-I', os.path.join(spec['automake'].prefix,
+ 'share', 'aclocal'),
+ '-I', os.path.join(spec['libtool'].prefix,
+ 'share', 'aclocal')
+ ]
+ autoreconf(*autoreconf_options)
+
+ configure_options = [
+ '--prefix={0}'.format(prefix),
+ 'CC=%s' % join_path(spec['mpi'].prefix.bin, "mpicc"),
+ 'FC=%s' % join_path(spec['mpi'].prefix.bin, "mpif90")
+ ]
+ configure(*configure_options)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libsigsegv/package.py b/var/spack/repos/builtin/packages/libsigsegv/package.py
index 14acdcbcd2..a5a3e8eb5f 100644
--- a/var/spack/repos/builtin/packages/libsigsegv/package.py
+++ b/var/spack/repos/builtin/packages/libsigsegv/package.py
@@ -24,16 +24,16 @@
##############################################################################
from spack import *
-class Libsigsegv(Package):
+
+class Libsigsegv(AutotoolsPackage):
"""GNU libsigsegv is a library for handling page faults in user mode."""
+
homepage = "https://www.gnu.org/software/libsigsegv/"
url = "ftp://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz"
- version('2.10', '7f96fb1f65b3b8cbc1582fb7be774f0f')
+ patch('patch.new_config_guess', when='@2.10')
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix,
- '--enable-shared')
+ version('2.10', '7f96fb1f65b3b8cbc1582fb7be774f0f')
- make()
- make("install")
+ def configure_args(self):
+ return ['--enable-shared']
diff --git a/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess b/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess
new file mode 100644
index 0000000000..3ecc7458f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess
@@ -0,0 +1,1187 @@
+--- a/build-aux/config.guess 2010-11-06 04:18:40.000000000 -0700
++++ b/build-aux/config.guess 2016-10-18 13:38:39.950379000 -0700
+@@ -1,14 +1,12 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+-# Free Software Foundation, Inc.
++# Copyright 1992-2016 Free Software Foundation, Inc.
+
+-timestamp='2010-09-24'
++timestamp='2016-10-02'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
++# the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful, but
+@@ -17,26 +15,22 @@
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-
+-# Originally written by Per Bothner. Please send patches (context
+-# diff format) to <config-patches@gnu.org> and include a ChangeLog
+-# entry.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+ #
+-# This script attempts to guess a canonical system name similar to
+-# config.sub. If it succeeds, it prints the system name on stdout, and
+-# exits with 0. Otherwise, it exits with 1.
++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+ #
+ # You can get the latest version of this script from:
+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
++#
++# Please send patches to <config-patches@gnu.org>.
++
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -56,9 +50,7 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+-Software Foundation, Inc.
++Copyright 1992-2016 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -92,7 +84,7 @@
+ exit 1
+ fi
+
+-trap 'exit 1' HUP INT TERM
++trap 'exit 1' 1 2 15
+
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+ # compiler to aid in system detection is discouraged as it requires
+@@ -106,7 +98,7 @@
+
+ set_cc_for_build='
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+@@ -140,12 +132,33 @@
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
++case "${UNAME_SYSTEM}" in
++Linux|GNU|GNU/*)
++ # If the system lacks a compiler, then just pick glibc.
++ # We could probably try harder.
++ LIBC=gnu
++
++ eval $set_cc_for_build
++ cat <<-EOF > $dummy.c
++ #include <features.h>
++ #if defined(__UCLIBC__)
++ LIBC=uclibc
++ #elif defined(__dietlibc__)
++ LIBC=dietlibc
++ #else
++ LIBC=gnu
++ #endif
++ EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
++ ;;
++esac
++
+ # Note: order is significant - the case branches are not exclusive.
+
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+@@ -155,19 +168,29 @@
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
++ /sbin/$sysctl 2>/dev/null || \
++ /usr/sbin/$sysctl 2>/dev/null || \
++ echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
++ earmv*)
++ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
++ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
++ machine=${arch}${endian}-unknown
++ ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+- # to ELF recently, or will in the future.
++ # to ELF recently (or will in the future) and ABI.
+ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ os=netbsdelf
++ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+@@ -181,7 +204,14 @@
+ fi
+ ;;
+ *)
+- os=netbsd
++ os=netbsd
++ ;;
++ esac
++ # Determine ABI tags.
++ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
++ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ ;;
+ esac
+ # The OS release
+@@ -194,18 +224,26 @@
+ release='-gnu'
+ ;;
+ *)
+- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+- echo "${machine}-${os}${release}"
++ echo "${machine}-${os}${release}${abi}"
++ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
++ *:LibertyBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
++ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+@@ -218,13 +256,16 @@
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
++ *:Sortix:*:*)
++ echo ${UNAME_MACHINE}-unknown-sortix
++ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+@@ -234,43 +275,46 @@
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+- UNAME_MACHINE="alphaev5" ;;
++ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+- UNAME_MACHINE="alphaev56" ;;
++ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+- UNAME_MACHINE="alphapca56" ;;
++ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+- UNAME_MACHINE="alphapca57" ;;
++ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+- UNAME_MACHINE="alphaev6" ;;
++ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+- UNAME_MACHINE="alphaev67" ;;
++ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+- UNAME_MACHINE="alphaev69" ;;
++ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+- UNAME_MACHINE="alphaev7" ;;
++ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+- UNAME_MACHINE="alphaev79" ;;
++ UNAME_MACHINE=alphaev79 ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit ;;
++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++ exitcode=$?
++ trap '' 0
++ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+@@ -296,12 +340,12 @@
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+- echo powerpc-ibm-os400
++ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+- arm:riscos:*:*|arm:RISCOS:*:*)
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+@@ -339,16 +383,16 @@
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+- SUN_ARCH="i386"
++ SUN_ARCH=i386
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+- SUN_ARCH="x86_64"
++ SUN_ARCH=x86_64
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+@@ -373,7 +417,7 @@
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+@@ -395,23 +439,23 @@
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit ;;
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+- echo m68k-milan-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+- echo m68k-hades-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+- echo m68k-unknown-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+@@ -481,8 +525,8 @@
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+- # DG/UX returns AViiON for all architectures
+- UNAME_PROCESSOR=`/usr/bin/uname -p`
++ # DG/UX returns AViiON for all architectures
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+@@ -495,7 +539,7 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- exit ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+@@ -559,8 +603,9 @@
+ else
+ IBM_ARCH=powerpc
+ fi
+- if [ -x /usr/bin/oslevel ] ; then
+- IBM_REV=`/usr/bin/oslevel`
++ if [ -x /usr/bin/lslpp ] ; then
++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+@@ -595,58 +640,58 @@
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+- case "${sc_cpu_version}" in
+- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+- 532) # CPU_PA_RISC2_0
+- case "${sc_kernel_bits}" in
+- 32) HP_ARCH="hppa2.0n" ;;
+- 64) HP_ARCH="hppa2.0w" ;;
+- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+- esac ;;
+- esac
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ case "${sc_cpu_version}" in
++ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH=hppa2.0n ;;
++ 64) HP_ARCH=hppa2.0w ;;
++ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
++ esac ;;
++ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ sed 's/^ //' << EOF >$dummy.c
+
+- #define _HPUX_SOURCE
+- #include <stdlib.h>
+- #include <unistd.h>
+-
+- int main ()
+- {
+- #if defined(_SC_KERNEL_BITS)
+- long bits = sysconf(_SC_KERNEL_BITS);
+- #endif
+- long cpu = sysconf (_SC_CPU_VERSION);
+-
+- switch (cpu)
+- {
+- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+- case CPU_PA_RISC2_0:
+- #if defined(_SC_KERNEL_BITS)
+- switch (bits)
+- {
+- case 64: puts ("hppa2.0w"); break;
+- case 32: puts ("hppa2.0n"); break;
+- default: puts ("hppa2.0"); break;
+- } break;
+- #else /* !defined(_SC_KERNEL_BITS) */
+- puts ("hppa2.0"); break;
+- #endif
+- default: puts ("hppa1.0"); break;
+- }
+- exit (0);
+- }
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
+ EOF
+- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+- if [ ${HP_ARCH} = "hppa2.0w" ]
++ if [ ${HP_ARCH} = hppa2.0w ]
+ then
+ eval $set_cc_for_build
+
+@@ -659,12 +704,12 @@
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+- HP_ARCH="hppa2.0w"
++ HP_ARCH=hppa2.0w
+ else
+- HP_ARCH="hppa64"
++ HP_ARCH=hppa64
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+@@ -731,22 +776,22 @@
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+- exit ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+- exit ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+- exit ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+- exit ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+@@ -769,15 +814,15 @@
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit ;;
++ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+@@ -789,30 +834,35 @@
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+- case ${UNAME_MACHINE} in
+- pc98)
+- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
++ *:MINGW64*:*)
++ echo ${UNAME_MACHINE}-pc-mingw64
++ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
++ *:MSYS*:*)
++ echo ${UNAME_MACHINE}-pc-msys
++ exit ;;
+ i*:windows32*:*)
+- # uname -m includes "-pc" on this system.
+- echo ${UNAME_MACHINE}-mingw32
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+- case ${UNAME_MACHINE} in
++ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+@@ -849,15 +899,22 @@
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
++ aarch64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ aarch64_be:Linux:*:*)
++ UNAME_MACHINE=aarch64_be
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+@@ -867,52 +924,62 @@
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+- esac
++ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ arc:Linux:*:* | arceb:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_PCS_VFP
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
++ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+- echo cris-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+- echo crisv32-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
++ exit ;;
++ e2k:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+- echo frv-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ hexagon:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+- LIBC=gnu
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ k1om:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+@@ -931,54 +998,69 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+- or32:Linux:*:*)
+- echo or32-unknown-linux-gnu
++ mips64el:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ openrisc*:Linux:*:*)
++ echo or1k-unknown-linux-${LIBC}
++ exit ;;
++ or32:Linux:*:* | or1k*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+- echo sparc-unknown-linux-gnu
++ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
++ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+- PA7*) echo hppa1.1-unknown-linux-gnu ;;
+- PA8*) echo hppa2.0-unknown-linux-gnu ;;
+- *) echo hppa-unknown-linux-gnu ;;
++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
++ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
++ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
++ echo powerpc-unknown-linux-${LIBC}
++ exit ;;
++ ppc64le:Linux:*:*)
++ echo powerpc64le-unknown-linux-${LIBC}
++ exit ;;
++ ppcle:Linux:*:*)
++ echo powerpcle-unknown-linux-${LIBC}
++ exit ;;
++ riscv32:Linux:*:* | riscv64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+- echo ${UNAME_MACHINE}-ibm-linux
++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+- echo ${UNAME_MACHINE}-tilera-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+- echo ${UNAME_MACHINE}-dec-linux-gnu
++ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+- echo x86_64-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+@@ -987,11 +1069,11 @@
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+- # Unixware is an offshoot of SVR4, but it has its own version
+- # number series starting with 2...
+- # I am not positive that other SVR4 systems won't match this,
++ # Unixware is an offshoot of SVR4, but it has its own version
++ # number series starting with 2...
++ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+- # Use sysv4.2uw... so that sysv4* matches it.
++ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+@@ -1023,7 +1105,7 @@
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+- # UnixWare 7.x, OpenUNIX and OpenServer 6.
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+@@ -1051,13 +1133,13 @@
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+- # uname -m prints for DJGPP always 'pc', but it prints nothing about
+- # the processor, so we play safe by assuming i586.
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+- # prints for the "djgpp" host, or else GDB configury will decide that
++ # prints for the "djgpp" host, or else GDB configure will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+- exit ;;
++ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+@@ -1092,8 +1174,8 @@
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && { echo i486-ncr-sysv4; exit; } ;;
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+@@ -1136,10 +1218,10 @@
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says <Richard.M.Bartel@ccMail.Census.GOV>
+- echo i586-unisys-sysv4
+- exit ;;
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+@@ -1165,11 +1247,11 @@
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+- echo mips-nec-sysv${UNAME_RELEASE}
++ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+- echo mips-unknown-sysv${UNAME_RELEASE}
++ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+- exit ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+@@ -1182,6 +1264,9 @@
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+@@ -1200,6 +1285,9 @@
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
++ SX-ACE:SUPER-UX:*:*)
++ echo sxace-nec-superux${UNAME_RELEASE}
++ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+@@ -1208,24 +1296,36 @@
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+- case $UNAME_PROCESSOR in
+- i386)
+- eval $set_cc_for_build
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+- grep IS_64BIT_ARCH >/dev/null
+- then
+- UNAME_PROCESSOR="x86_64"
+- fi
+- fi ;;
+- unknown) UNAME_PROCESSOR=powerpc ;;
+- esac
++ eval $set_cc_for_build
++ if test "$UNAME_PROCESSOR" = unknown ; then
++ UNAME_PROCESSOR=powerpc
++ fi
++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ case $UNAME_PROCESSOR in
++ i386) UNAME_PROCESSOR=x86_64 ;;
++ powerpc) UNAME_PROCESSOR=powerpc64 ;;
++ esac
++ fi
++ fi
++ elif test "$UNAME_PROCESSOR" = i386 ; then
++ # Avoid executing cc on OS X 10.9, as it ships with a stub
++ # that puts up a graphical alert prompting to install
++ # developer tools. Any system running Mac OS X 10.7 or
++ # later (Darwin 11 and later) is required to have a 64-bit
++ # processor. This is not true of the ARM version of Darwin
++ # that Apple uses in portable devices.
++ UNAME_PROCESSOR=x86_64
++ fi
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+- if test "$UNAME_PROCESSOR" = "x86"; then
++ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+@@ -1237,7 +1337,7 @@
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+- NSE-?:NONSTOP_KERNEL:*:*)
++ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+@@ -1256,7 +1356,7 @@
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+- if test "$cputype" = "386"; then
++ if test "$cputype" = 386; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+@@ -1282,13 +1382,13 @@
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+- echo mips-sei-seiux${UNAME_RELEASE}
++ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+- UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+@@ -1298,7 +1398,7 @@
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+@@ -1306,174 +1406,28 @@
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+-esac
+-
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+-eval $set_cc_for_build
+-cat >$dummy.c <<EOF
+-#ifdef _SEQUENT_
+-# include <sys/types.h>
+-# include <sys/utsname.h>
+-#endif
+-main ()
+-{
+-#if defined (sony)
+-#if defined (MIPSEB)
+- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+- I don't know.... */
+- printf ("mips-sony-bsd\n"); exit (0);
+-#else
+-#include <sys/param.h>
+- printf ("m68k-sony-newsos%s\n",
+-#ifdef NEWSOS4
+- "4"
+-#else
+- ""
+-#endif
+- ); exit (0);
+-#endif
+-#endif
+-
+-#if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix\n"); exit (0);
+-#endif
+-
+-#if defined (hp300) && !defined (hpux)
+- printf ("m68k-hp-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (NeXT)
+-#if !defined (__ARCHITECTURE__)
+-#define __ARCHITECTURE__ "m68k"
+-#endif
+- int version;
+- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+- if (version < 4)
+- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+- else
+- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+- exit (0);
+-#endif
+-
+-#if defined (MULTIMAX) || defined (n16)
+-#if defined (UMAXV)
+- printf ("ns32k-encore-sysv\n"); exit (0);
+-#else
+-#if defined (CMU)
+- printf ("ns32k-encore-mach\n"); exit (0);
+-#else
+- printf ("ns32k-encore-bsd\n"); exit (0);
+-#endif
+-#endif
+-#endif
+-
+-#if defined (__386BSD__)
+- printf ("i386-pc-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (sequent)
+-#if defined (i386)
+- printf ("i386-sequent-dynix\n"); exit (0);
+-#endif
+-#if defined (ns32000)
+- printf ("ns32k-sequent-dynix\n"); exit (0);
+-#endif
+-#endif
+-
+-#if defined (_SEQUENT_)
+- struct utsname un;
+-
+- uname(&un);
+-
+- if (strncmp(un.version, "V2", 2) == 0) {
+- printf ("i386-sequent-ptx2\n"); exit (0);
+- }
+- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+- printf ("i386-sequent-ptx1\n"); exit (0);
+- }
+- printf ("i386-sequent-ptx\n"); exit (0);
+-
+-#endif
+-
+-#if defined (vax)
+-# if !defined (ultrix)
+-# include <sys/param.h>
+-# if defined (BSD)
+-# if BSD == 43
+- printf ("vax-dec-bsd4.3\n"); exit (0);
+-# else
+-# if BSD == 199006
+- printf ("vax-dec-bsd4.3reno\n"); exit (0);
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# endif
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# else
+- printf ("vax-dec-ultrix\n"); exit (0);
+-# endif
+-#endif
+-
+-#if defined (alliant) && defined (i860)
+- printf ("i860-alliant-bsd\n"); exit (0);
+-#endif
+-
+- exit (1);
+-}
+-EOF
+-
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+- { echo "$SYSTEM_NAME"; exit; }
+-
+-# Apollos put the system type in the environment.
+-
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+-
+-# Convex versions that predate uname can use getsysinfo(1)
+-
+-if [ -x /usr/convex/getsysinfo ]
+-then
+- case `getsysinfo -f cpu_type` in
+- c1*)
+- echo c1-convex-bsd
+- exit ;;
+- c2*)
+- if getsysinfo -f scalar_acc
+- then echo c32-convex-bsd
+- else echo c2-convex-bsd
+- fi
+- exit ;;
+- c34*)
+- echo c34-convex-bsd
+- exit ;;
+- c38*)
+- echo c38-convex-bsd
++ x86_64:VMkernel:*:*)
++ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+- c4*)
+- echo c4-convex-bsd
++ amd64:Isilon\ OneFS:*:*)
++ echo x86_64-unknown-onefs
+ exit ;;
+- esac
+-fi
++esac
+
+ cat >&2 <<EOF
+ $0: unable to guess system type
+
+-This script, last modified $timestamp, has failed to recognize
+-the operating system you are using. It is advised that you
+-download the most up to date version of the config scripts from
++This script (version $timestamp), has failed to recognize the
++operating system you are using. If your script is old, overwrite
++config.guess and config.sub with the latest versions from:
+
+- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ and
+- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+-If the version you run ($0) is already up to date, please
+-send the following data and any information you think might be
+-pertinent to <config-patches@gnu.org> in order to provide the needed
+-information to handle your system.
++If $0 has already been updated, send the following data and any
++information you think might be pertinent to config-patches@gnu.org to
++provide the necessary information to handle your system.
+
+ config.guess timestamp = $timestamp
+
diff --git a/var/spack/repos/builtin/packages/libsm/package.py b/var/spack/repos/builtin/packages/libsm/package.py
new file mode 100644
index 0000000000..4affd50127
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsm/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libsm(Package):
+ """libSM - X Session Management Library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libSM"
+ url = "https://www.x.org/archive/individual/lib/libSM-1.2.2.tar.gz"
+
+ version('1.2.2', '18e5084ed9500b1b47719fd1758f0ec8')
+
+ depends_on('libice@1.0.5:')
+
+ depends_on('xproto', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libsodium/package.py b/var/spack/repos/builtin/packages/libsodium/package.py
index 831a75e659..805881ce07 100644
--- a/var/spack/repos/builtin/packages/libsodium/package.py
+++ b/var/spack/repos/builtin/packages/libsodium/package.py
@@ -24,18 +24,27 @@
##############################################################################
from spack import *
+
class Libsodium(Package):
"""Sodium is a modern, easy-to-use software library for encryption,
decryption, signatures, password hashing and more."""
homepage = "https://download.libsodium.org/doc/"
- url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.3.tar.gz"
+ url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.11.tar.gz"
+ version('1.0.11', 'b58928d035064b2a46fb564937b83540')
+ version('1.0.10', 'ea89dcbbda0b2b6ff6a1c476231870dd')
version('1.0.3', 'b3bcc98e34d3250f55ae196822307fab')
version('1.0.2', 'dc40eb23e293448c6fc908757738003f')
version('1.0.1', '9a221b49fba7281ceaaf5e278d0f4430')
version('1.0.0', '3093dabe4e038d09f0d150cef064b2f7')
version('0.7.1', 'c224fe3923d1dcfe418c65c8a7246316')
+ def url_for_version(self, version):
+ url = 'https://download.libsodium.org/libsodium/releases/'
+ if version < Version('1.0.4'):
+ url += 'old/'
+ return url + 'libsodium-{0}.tar.gz'.format(version)
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/libspatialindex/package.py b/var/spack/repos/builtin/packages/libspatialindex/package.py
new file mode 100644
index 0000000000..5dd839a7c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libspatialindex/package.py
@@ -0,0 +1,32 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libspatialindex(CMakePackage):
+ homepage = "http://libspatialindex.github.io"
+ url = "https://github.com/libspatialindex/libspatialindex/tarball/1.8.5"
+
+ version('1.8.5', 'a95d8159714dbda9a274792cd273d298')
diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py
new file mode 100644
index 0000000000..c87dae19be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsplash/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libsplash(Package):
+ """libSplash aims at developing a HDF5-based I/O library for HPC
+ simulations. It is created as an easy-to-use frontend for the standard HDF5
+ library with support for MPI processes in a cluster environment. While the
+ standard HDF5 library provides detailed low-level control, libSplash
+ simplifies tasks commonly found in large-scale HPC simulations, such as
+ iterative computations and MPI distributed processes.
+ """
+
+ homepage = "https://github.com/ComputationalRadiationPhysics/libSplash"
+ url = "https://github.com/ComputationalRadiationPhysics/libSplash/archive/v1.4.0.tar.gz"
+
+ version('dev', branch='dev',
+ git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
+ version('master', branch='master',
+ git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
+ version('1.6.0', 'c05bce95abfe1ae4cd9d9817acf58d94')
+ version('1.5.0', 'c1efec4c20334242c8a3b6bfdc0207e3')
+ version('1.4.0', '2de37bcef6fafa1960391bf44b1b50e0')
+ version('1.3.1', '524580ba088d97253d03b4611772f37c')
+ version('1.2.4', '3fccb314293d22966beb7afd83b746d0')
+
+ variant('mpi', default=True,
+ description='Enable parallel I/O (one-file aggregation) support')
+
+ depends_on('cmake', type='build')
+ depends_on('hdf5@1.8.6:')
+ depends_on('hdf5+mpi', when='+mpi')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '..', *std_cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libtermkey/package.py b/var/spack/repos/builtin/packages/libtermkey/package.py
index c7db959a40..64688505c4 100644
--- a/var/spack/repos/builtin/packages/libtermkey/package.py
+++ b/var/spack/repos/builtin/packages/libtermkey/package.py
@@ -24,17 +24,17 @@
##############################################################################
from spack import *
+
class Libtermkey(Package):
"""Easy keyboard entry processing for terminal programs"""
homepage = "http://www.leonerd.org.uk/code/libtermkey/"
url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.18.tar.gz"
- version('0.18' , '3be2e3e5a851a49cc5e8567ac108b520')
- version('0.17' , '20edb99e0d95ec1690fe90e6a555ae6d')
- version('0.16' , '7a24b675aaeb142d30db28e7554987d4')
+ version('0.18', '3be2e3e5a851a49cc5e8567ac108b520')
+ version('0.17', '20edb99e0d95ec1690fe90e6a555ae6d')
+ version('0.16', '7a24b675aaeb142d30db28e7554987d4')
version('0.15b', '27689756e6c86c56ae454f2ac259bc3d')
- version('0.14' , 'e08ce30f440f9715c459060e0e048978')
-
+ version('0.14', 'e08ce30f440f9715c459060e0e048978')
def install(self, spec, prefix):
make()
diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py
index 4b03e7997b..70c371b3b8 100644
--- a/var/spack/repos/builtin/packages/libtiff/package.py
+++ b/var/spack/repos/builtin/packages/libtiff/package.py
@@ -24,19 +24,15 @@
##############################################################################
from spack import *
-class Libtiff(Package):
+
+class Libtiff(AutotoolsPackage):
"""libtiff graphics format library"""
- homepage = "http://www.remotesensing.org/libtiff/"
- url = "http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz"
+ homepage = "http://www.simplesystems.org/libtiff/"
+ url = "ftp://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz"
+ version('4.0.6', 'd1d2e940dea0b5ad435f21f03d96dd72')
version('4.0.3', '051c1068e6a0627f461948c365290410')
depends_on('jpeg')
depends_on('zlib')
depends_on('xz')
-
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
-
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/libtool/package.py b/var/spack/repos/builtin/packages/libtool/package.py
index 90e7b3b643..cd12503681 100644
--- a/var/spack/repos/builtin/packages/libtool/package.py
+++ b/var/spack/repos/builtin/packages/libtool/package.py
@@ -24,18 +24,24 @@
##############################################################################
from spack import *
-class Libtool(Package):
- """libtool -- library building part of autotools"""
- homepage = "https://www.gnu.org/software/libtool/"
- url = "http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz"
- version('2.4.6' , 'addf44b646ddb4e3919805aa88fa7c5e')
- version('2.4.2' , 'd2f3b7d4627e69e13514a40e72a24d50')
+class Libtool(AutotoolsPackage):
+ """libtool -- library building part of autotools."""
- depends_on('m4')
+ homepage = 'https://www.gnu.org/software/libtool/'
+ url = 'http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz'
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ version('2.4.6', 'addf44b646ddb4e3919805aa88fa7c5e')
+ version('2.4.2', 'd2f3b7d4627e69e13514a40e72a24d50')
- make()
- make("install")
+ depends_on('m4@1.4.6:', type='build')
+
+ def _make_executable(self, name):
+ return Executable(join_path(self.prefix.bin, name))
+
+ def setup_dependent_package(self, module, dependent_spec):
+ # Automake is very likely to be a build dependency,
+ # so we add the tools it provides to the dependent module
+ executables = ['libtoolize', 'libtool']
+ for name in executables:
+ setattr(module, name, self._make_executable(name))
diff --git a/var/spack/repos/builtin/packages/libunistring/package.py b/var/spack/repos/builtin/packages/libunistring/package.py
new file mode 100644
index 0000000000..5b8837e72b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libunistring/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libunistring(Package):
+ """This library provides functions for manipulating Unicode strings
+ and for manipulating C strings according to the Unicode standard."""
+
+ homepage = "https://www.gnu.org/software/libunistring/"
+ url = "http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.6.tar.xz"
+
+ version('0.9.6', 'cb09c398020c27edac10ca590e9e9ef3')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ # make('check') # test-verify fails for me, contacted developers
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py
index 980b765c02..63ab4aec59 100644
--- a/var/spack/repos/builtin/packages/libunwind/package.py
+++ b/var/spack/repos/builtin/packages/libunwind/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libunwind(Package):
"""A portable and efficient C programming interface (API) to determine
the call-chain of a program."""
diff --git a/var/spack/repos/builtin/packages/libuuid/package.py b/var/spack/repos/builtin/packages/libuuid/package.py
index 0dd32ec77d..b8f6b1cc3a 100644
--- a/var/spack/repos/builtin/packages/libuuid/package.py
+++ b/var/spack/repos/builtin/packages/libuuid/package.py
@@ -24,9 +24,10 @@
##############################################################################
from spack import *
+
class Libuuid(Package):
"""Portable uuid C library"""
- # FIXME: add a proper url for your package's homepage here.
+
homepage = "http://sourceforge.net/projects/libuuid/"
url = "http://downloads.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibuuid%2F&ts=1433881396&use_mirror=iweb"
@@ -35,6 +36,5 @@ class Libuuid(Package):
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libuv/package.py b/var/spack/repos/builtin/packages/libuv/package.py
index 63565c7aea..dae10809f2 100644
--- a/var/spack/repos/builtin/packages/libuv/package.py
+++ b/var/spack/repos/builtin/packages/libuv/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libuv(Package):
"""Multi-platform library with a focus on asynchronous IO"""
homepage = "http://libuv.org"
@@ -31,9 +32,9 @@ class Libuv(Package):
version('1.9.0', '14737f9c76123a19a290dabb7d1cd04c')
- depends_on('automake')
- depends_on('autoconf')
- depends_on('libtool')
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('libtool', type='build')
def install(self, spec, prefix):
bash = which("bash")
diff --git a/var/spack/repos/builtin/packages/libvterm/package.py b/var/spack/repos/builtin/packages/libvterm/package.py
index e57af273ad..2e1ef99b98 100644
--- a/var/spack/repos/builtin/packages/libvterm/package.py
+++ b/var/spack/repos/builtin/packages/libvterm/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libvterm(Package):
"""An abstract library implementation of a terminal emulator"""
homepage = "http://www.leonerd.org.uk/code/libvterm/"
diff --git a/var/spack/repos/builtin/packages/libwebsockets/package.py b/var/spack/repos/builtin/packages/libwebsockets/package.py
new file mode 100644
index 0000000000..3ce58a4c36
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libwebsockets/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libwebsockets(CMakePackage):
+ """C library for lightweight websocket clients and servers."""
+
+ homepage = "https://github.com/warmcat/libwebsockets"
+ url = "https://github.com/warmcat/libwebsockets/archive/v2.1.0.tar.gz"
+
+ version('2.1.0', '4df3be57dee43aeebd54a3ed56568f50')
+ version('2.0.3', 'a025156d606d90579e65d53ccd062a94')
+ version('1.7.9', '7b3692ead5ae00fd0e1d56c080170f07')
+
+ depends_on('zlib')
+ depends_on('openssl')
diff --git a/var/spack/repos/builtin/packages/libwindowswm/package.py b/var/spack/repos/builtin/packages/libwindowswm/package.py
new file mode 100644
index 0000000000..3836e0d419
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libwindowswm/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libwindowswm(Package):
+ """WindowsWM - Cygwin/X rootless window management extension.
+
+ WindowsWM is a simple library designed to interface with the
+ Windows-WM extension. This extension allows X window managers to
+ better interact with the Cygwin XWin server when running X11 in a
+ rootless mode."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libWindowsWM"
+ url = "https://www.x.org/archive/individual/lib/libWindowsWM-1.0.1.tar.gz"
+
+ version('1.0.1', 'f260e124706ff6209c566689528667c6')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('windowswmproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libx11/package.py b/var/spack/repos/builtin/packages/libx11/package.py
new file mode 100644
index 0000000000..c5df2e0f83
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libx11/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libx11(Package):
+ """libX11 - Core X11 protocol client library."""
+
+ homepage = "https://www.x.org/"
+ url = "https://www.x.org/archive/individual/lib/libX11-1.6.3.tar.gz"
+
+ version('1.6.3', '7d16653fe7c36209799175bb3dc1ae46')
+
+ depends_on('libxcb@1.1.92:')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('kbproto', type='build')
+ depends_on('inputproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxau/package.py b/var/spack/repos/builtin/packages/libxau/package.py
new file mode 100644
index 0000000000..eb1f1326c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxau/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxau(Package):
+ """The libXau package contains a library implementing the X11
+ Authorization Protocol. This is useful for restricting client
+ access to the display."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXau/"
+ url = "https://www.x.org/archive/individual/lib/libXau-1.0.8.tar.gz"
+
+ version('1.0.8', 'a85cd601d82bc79c0daa280917572e20')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxaw/package.py b/var/spack/repos/builtin/packages/libxaw/package.py
new file mode 100644
index 0000000000..9f92ff57d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxaw/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxaw(Package):
+ """Xaw is the X Athena Widget Set.
+ Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw"
+ url = "https://www.x.org/archive/individual/lib/libXaw-1.0.13.tar.gz"
+
+ version('1.0.13', '6c522476024df5872cddc5f1562fb656')
+
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxt')
+ depends_on('libxmu')
+ depends_on('libxpm')
+
+ depends_on('xproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxaw3d/package.py b/var/spack/repos/builtin/packages/libxaw3d/package.py
new file mode 100644
index 0000000000..498f57cbca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxaw3d/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxaw3d(Package):
+ """Xaw3d is the X 3D Athena Widget Set.
+ Xaw3d is a widget set based on the X Toolkit Intrinsics (Xt) Library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw3d"
+ url = "https://www.x.org/archive/individual/lib/libXaw3d-1.6.2.tar.gz"
+
+ version('1.6.2', 'e51e00b734853e555ae9b367d213de45')
+
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxmu')
+ depends_on('libxext')
+ depends_on('libxpm')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py
index 87437373d6..d773395e6c 100644
--- a/var/spack/repos/builtin/packages/libxc/package.py
+++ b/var/spack/repos/builtin/packages/libxc/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libxc(Package):
"""Libxc is a library of exchange-correlation functionals for
density-functional theory."""
@@ -31,12 +32,28 @@ class Libxc(Package):
homepage = "http://www.tddft.org/programs/octopus/wiki/index.php/Libxc"
url = "http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.2.2.tar.gz"
+ version('3.0.0', '8227fa3053f8fc215bd9d7b0d36de03c')
version('2.2.2', 'd9f90a0d6e36df6c1312b6422280f2ec')
-
+ version('2.2.1', '38dc3a067524baf4f8521d5bb1cd0b8f')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix,
+ # Optimizations for the Intel compiler, suggested by CP2K
+ optflags = '-O2'
+ if self.compiler.name == 'intel':
+ optflags += ' -xAVX -axCORE-AVX2 -ipo'
+ if which('xiar'):
+ env['AR'] = 'xiar'
+
+ env['CFLAGS'] = optflags
+ env['FCFLAGS'] = optflags
+
+ configure('--prefix={0}'.format(prefix),
'--enable-shared')
make()
- make("install")
+
+ # libxc provides a testsuite, but many tests fail
+ # http://www.tddft.org/pipermail/libxc/2013-February/000032.html
+ # make('check')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxcb/package.py b/var/spack/repos/builtin/packages/libxcb/package.py
index 0f39bb0f1d..9fa1c6f97c 100644
--- a/var/spack/repos/builtin/packages/libxcb/package.py
+++ b/var/spack/repos/builtin/packages/libxcb/package.py
@@ -24,30 +24,38 @@
##############################################################################
from spack import *
+
class Libxcb(Package):
"""The X protocol C-language Binding (XCB) is a replacement
for Xlib featuring a small footprint, latency hiding, direct
access to the protocol, improved threading support, and
extensibility."""
- homepage = "http://xcb.freedesktop.org/"
- url = "http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz"
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz"
+ version('1.12', '95eee7c28798e16ba5443f188b27a476')
version('1.11', '1698dd837d7e6e94d029dbe8b3a82deb')
version('1.11.1', '118623c15a96b08622603a71d8789bf3')
- depends_on("python")
- depends_on("xcb-proto")
- depends_on("pkg-config")
- # depends_on('pthread') # Ubuntu: apt-get install libpthread-stubs0-dev
- # depends_on('xau') # Ubuntu: apt-get install libxau-dev
+ depends_on('libpthread-stubs')
+ depends_on('libxau@0.99.2:')
+ depends_on('libxdmcp')
- def patch(self):
- filter_file('typedef struct xcb_auth_info_t {', 'typedef struct {', 'src/xcb.h')
+ depends_on('xcb-proto', type='build')
+ depends_on('python@2:2.8', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+ def patch(self):
+ filter_file(
+ 'typedef struct xcb_auth_info_t {',
+ 'typedef struct {',
+ 'src/xcb.h')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
make()
- make("install")
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxcomposite/package.py b/var/spack/repos/builtin/packages/libxcomposite/package.py
new file mode 100644
index 0000000000..48cba00250
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxcomposite/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxcomposite(Package):
+ """libXcomposite - client library for the Composite extension to the
+ X11 protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXcomposite"
+ url = "https://www.x.org/archive/individual/lib/libXcomposite-0.4.4.tar.gz"
+
+ version('0.4.4', 'af860b1554a423735d831e6f29ac1ef5')
+
+ depends_on('libx11')
+ depends_on('libxfixes')
+
+ depends_on('compositeproto@0.4:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxcursor/package.py b/var/spack/repos/builtin/packages/libxcursor/package.py
new file mode 100644
index 0000000000..215452ef52
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxcursor/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxcursor(Package):
+ """libXcursor - X Window System Cursor management library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXcursor"
+ url = "https://www.x.org/archive/individual/lib/libXcursor-1.1.14.tar.gz"
+
+ version('1.1.14', '39c8423de190d64f1c52fbc00022e52c')
+
+ depends_on('libxrender@0.8.2:')
+ depends_on('libxfixes')
+ depends_on('libx11')
+
+ depends_on('fixesproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxdamage/package.py b/var/spack/repos/builtin/packages/libxdamage/package.py
new file mode 100644
index 0000000000..448ac21945
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxdamage/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxdamage(Package):
+ """This package contains the library for the X Damage extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXdamage"
+ url = "https://www.x.org/archive/individual/lib/libXdamage-1.1.4.tar.gz"
+
+ version('1.1.4', '95867778da012623815214769007c0d7')
+
+ depends_on('libxfixes')
+ depends_on('libx11')
+
+ depends_on('damageproto@1.1:', type='build')
+ depends_on('fixesproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxdmcp/package.py b/var/spack/repos/builtin/packages/libxdmcp/package.py
new file mode 100644
index 0000000000..c05d4b8771
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxdmcp/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxdmcp(Package):
+ """libXdmcp - X Display Manager Control Protocol library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXdmcp"
+ url = "https://www.x.org/archive/individual/lib/libXdmcp-1.1.2.tar.gz"
+
+ version('1.1.2', 'ab0d6a38f0344a05d698ec7d48cfa5a8')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxevie/package.py b/var/spack/repos/builtin/packages/libxevie/package.py
new file mode 100644
index 0000000000..b9f0e41631
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxevie/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxevie(Package):
+ """Xevie - X Event Interception Extension (XEvIE)."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXevie"
+ url = "https://www.x.org/archive/individual/lib/libXevie-1.0.3.tar.gz"
+
+ version('1.0.3', '100e6485cabfe6e788e09c110ca680d8')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('evieext', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxext/package.py b/var/spack/repos/builtin/packages/libxext/package.py
new file mode 100644
index 0000000000..192ab3957a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxext/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxext(Package):
+ """libXext - library for common extensions to the X11 protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXext"
+ url = "https://www.x.org/archive/individual/lib/libXext-1.3.3.tar.gz"
+
+ version('1.3.3', '93f5ec084c998efbfb0befed22f9b57f')
+
+ depends_on('libx11@1.6:')
+
+ depends_on('xproto@7.0.13:', type='build')
+ depends_on('xextproto@7.1.99:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxfixes/package.py b/var/spack/repos/builtin/packages/libxfixes/package.py
new file mode 100644
index 0000000000..6b8b599a85
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfixes/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxfixes(Package):
+ """This package contains header files and documentation for the XFIXES
+ extension. Library and server implementations are separate."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXfixes"
+ url = "https://www.x.org/archive/individual/lib/libXfixes-5.0.2.tar.gz"
+
+ version('5.0.2', '3636e59f8f5fa2e469d556d49f30e98d')
+
+ depends_on('libx11@1.6:')
+
+ depends_on('xproto', type='build')
+ depends_on('fixesproto@5.0:', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxfont/package.py b/var/spack/repos/builtin/packages/libxfont/package.py
new file mode 100644
index 0000000000..1ebf321c9f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfont/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxfont(Package):
+ """libXfont provides the core of the legacy X11 font system, handling the
+ index files (fonts.dir, fonts.alias, fonts.scale), the various font file
+ formats, and rasterizing them. It is used by the X servers, the
+ X Font Server (xfs), and some font utilities (bdftopcf for instance),
+ but should not be used by normal X11 clients. X11 clients access fonts
+ via either the new API's in libXft, or the legacy API's in libX11."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont"
+ url = "https://www.x.org/archive/individual/lib/libXfont-1.5.2.tar.gz"
+
+ version('1.5.2', 'e8c616db0e59df4614980915e79bb05e')
+
+ depends_on('libfontenc')
+ depends_on('freetype')
+
+ depends_on('xtrans', type='build')
+ depends_on('xproto', type='build')
+ depends_on('fontsproto@2.1.3:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxfont2/package.py b/var/spack/repos/builtin/packages/libxfont2/package.py
new file mode 100644
index 0000000000..8611e65ebb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfont2/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxfont2(Package):
+ """libXfont provides the core of the legacy X11 font system, handling the
+ index files (fonts.dir, fonts.alias, fonts.scale), the various font file
+ formats, and rasterizing them. It is used by the X servers, the
+ X Font Server (xfs), and some font utilities (bdftopcf for instance),
+ but should not be used by normal X11 clients. X11 clients access fonts
+ via either the new API's in libXft, or the legacy API's in libX11."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont"
+ url = "https://www.x.org/archive/individual/lib/libXfont2-2.0.1.tar.gz"
+
+ version('2.0.1', '6ae5ae1f9fb1213b04f14a802a1d721c')
+
+ depends_on('libfontenc')
+ depends_on('freetype')
+
+ depends_on('xtrans', type='build')
+ depends_on('xproto', type='build')
+ depends_on('fontsproto@2.1.3:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxfontcache/package.py b/var/spack/repos/builtin/packages/libxfontcache/package.py
new file mode 100644
index 0000000000..5421f093ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxfontcache/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxfontcache(Package):
+ """Xfontcache - X-TrueType font cache extension client library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXfontcache"
+ url = "https://www.x.org/archive/individual/lib/libXfontcache-1.0.5.tar.gz"
+
+ version('1.0.5', '5030fc9c7f16dbb52f92a8ba2c574f5c')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('fontcacheproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxft/package.py b/var/spack/repos/builtin/packages/libxft/package.py
new file mode 100644
index 0000000000..b1b8f853d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxft/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxft(Package):
+ """X FreeType library.
+
+ Xft version 2.1 was the first stand alone release of Xft, a library that
+ connects X applications with the FreeType font rasterization library. Xft
+ uses fontconfig to locate fonts so it has no configuration files."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXft"
+ url = "https://www.x.org/archive/individual/lib/libXft-2.3.2.tar.gz"
+
+ version('2.3.2', '3a2c1ce2641817dace55cd2bfe10b0f0')
+
+ depends_on('freetype@2.1.6:')
+ depends_on('fontconfig@2.5.92:')
+ depends_on('libx11')
+ depends_on('libxrender@0.8.2:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxi/package.py b/var/spack/repos/builtin/packages/libxi/package.py
new file mode 100644
index 0000000000..4e9a273579
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxi/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxi(Package):
+ """libXi - library for the X Input Extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXi"
+ url = "https://www.x.org/archive/individual/lib/libXi-1.7.6.tar.gz"
+
+ version('1.7.6', 'f3828f9d7893068f6f6f10fe15b31afa')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext@1.0.99.1:')
+ depends_on('libxfixes@5:')
+
+ depends_on('xproto@7.0.13:', type='build')
+ depends_on('xextproto@7.0.3:', type='build')
+ depends_on('inputproto@2.2.99.1:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxinerama/package.py b/var/spack/repos/builtin/packages/libxinerama/package.py
new file mode 100644
index 0000000000..a001c41ca7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxinerama/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxinerama(Package):
+ """libXinerama - API for Xinerama extension to X11 Protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXinerama"
+ url = "https://www.x.org/archive/individual/lib/libXinerama-1.1.3.tar.gz"
+
+ version('1.1.3', '7224a1baa9733a54053550a3fb4be118')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('xineramaproto@1.1.99.1:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxkbfile/package.py b/var/spack/repos/builtin/packages/libxkbfile/package.py
new file mode 100644
index 0000000000..af8029a024
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxkbfile/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxkbfile(Package):
+ """XKB file handling routines."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libxkbfile"
+ url = "https://www.x.org/archive/individual/lib/libxkbfile-1.0.9.tar.gz"
+
+ version('1.0.9', '5aab87eba67f37dd910a19be5c1129ee')
+
+ depends_on('libx11')
+
+ depends_on('kbproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxkbui/package.py b/var/spack/repos/builtin/packages/libxkbui/package.py
new file mode 100644
index 0000000000..d0c132d970
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxkbui/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxkbui(Package):
+ """X.org libxkbui library."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libxkbui/"
+ url = "https://www.x.org/archive/individual/lib/libxkbui-1.0.2.tar.gz"
+
+ version('1.0.2', 'a6210171defde64d9e8bcf6a6f6074b0')
+
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxkbfile')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py
index baaa2fc83d..bbb934ab9f 100644
--- a/var/spack/repos/builtin/packages/libxml2/package.py
+++ b/var/spack/repos/builtin/packages/libxml2/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class Libxml2(Package):
"""Libxml2 is the XML C parser and toolkit developed for the Gnome
@@ -32,23 +32,31 @@ class Libxml2(Package):
homepage = "http://xmlsoft.org"
url = "http://xmlsoft.org/sources/libxml2-2.9.2.tar.gz"
+ version('2.9.4', 'ae249165c173b1ff386ee8ad676815f5')
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
variant('python', default=False, description='Enable Python support')
- extends('python', when='+python', ignore=r'(bin.*$)|(include.*$)|(share.*$)|(lib/libxml2.*$)|(lib/xml2.*$)|(lib/cmake.*$)')
+ extends('python', when='+python',
+ ignore=r'(bin.*$)|(include.*$)|(share.*$)|(lib/libxml2.*$)|'
+ '(lib/xml2.*$)|(lib/cmake.*$)')
depends_on('zlib')
depends_on('xz')
+ depends_on('pkg-config@0.9.0:', type='build')
+
def install(self, spec, prefix):
if '+python' in spec:
- site_packages_dir = os.path.join(prefix, 'lib/python%s.%s/site-packages' %(spec['python'].version[:2]))
- python_args = ["--with-python=%s" % spec['python'].prefix, "--with-python-install-dir=%s" % site_packages_dir]
+ python_args = [
+ '--with-python={0}'.format(spec['python'].prefix),
+ '--with-python-install-dir={0}'.format(site_packages_dir)
+ ]
else:
- python_args = ["--without-python"]
+ python_args = ['--without-python']
- configure("--prefix=%s" % prefix,
- *python_args)
+ configure('--prefix={0}'.format(prefix), *python_args)
make()
- make("install")
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxmu/package.py b/var/spack/repos/builtin/packages/libxmu/package.py
new file mode 100644
index 0000000000..dbba5f168d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxmu/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxmu(Package):
+ """This library contains miscellaneous utilities and is not part of the
+ Xlib standard. It contains routines which only use public interfaces so
+ that it may be layered on top of any proprietary implementation of Xlib
+ or Xt."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXmu"
+ url = "https://www.x.org/archive/individual/lib/libXmu-1.1.2.tar.gz"
+
+ version('1.1.2', 'd5be323b02e6851607205c8e941b4e61')
+
+ depends_on('libxt')
+ depends_on('libxext')
+ depends_on('libx11')
+
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxp/package.py b/var/spack/repos/builtin/packages/libxp/package.py
new file mode 100644
index 0000000000..10aaccc54f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxp/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxp(Package):
+ """libXp - X Print Client Library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXp"
+ url = "https://www.x.org/archive/individual/lib/libXp-1.0.3.tar.gz"
+
+ version('1.0.3', '1157da663b28e110f440ce64cede6e18')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext')
+ depends_on('libxau')
+
+ depends_on('xextproto', type='build')
+ depends_on('printproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py
new file mode 100644
index 0000000000..b726e74b0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxpm/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxpm(Package):
+ """libXpm - X Pixmap (XPM) image file format library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXpm"
+ url = "https://www.x.org/archive//individual/lib/libXpm-3.5.11.tar.gz"
+
+ version('3.5.11', '7c67c878ee048206b070bc0b24154f04')
+ version('3.5.10', 'a70507638d74541bf30a771f1e5938bb')
+ version('3.5.9', 'd6d4b0f76248a6b346eb42dfcdaa72a6')
+ version('3.5.8', '2d81d6633e67ac5562e2fbee126b2897')
+ version('3.5.7', '7bbc8f112f7143ed6961a58ce4e14558')
+
+ depends_on('libx11')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxpresent/package.py b/var/spack/repos/builtin/packages/libxpresent/package.py
new file mode 100644
index 0000000000..e65d4353a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxpresent/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxpresent(Package):
+ """This package contains header files and documentation for the Present
+ extension. Library and server implementations are separate."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXpresent/"
+ url = "https://www.x.org/archive/individual/lib/libXpresent-1.0.0.tar.gz"
+
+ version('1.0.0', '2f543a595c3e6a519e2e38d079002958')
+
+ depends_on('libx11')
+
+ depends_on('xproto', type='build')
+ depends_on('presentproto@1.0:', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxprintapputil/package.py b/var/spack/repos/builtin/packages/libxprintapputil/package.py
new file mode 100644
index 0000000000..fc66b76ac0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxprintapputil/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxprintapputil(Package):
+ """Xprint application utility routines."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXprintAppUtil/"
+ url = "https://www.x.org/archive/individual/lib/libXprintAppUtil-1.0.1.tar.gz"
+
+ version('1.0.1', '3adb71fa34a2d4e75d8b840310318f76')
+
+ depends_on('libx11')
+ depends_on('libxp')
+ depends_on('libxprintutil')
+ depends_on('libxau')
+
+ depends_on('printproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxprintutil/package.py b/var/spack/repos/builtin/packages/libxprintutil/package.py
new file mode 100644
index 0000000000..8eb768958f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxprintutil/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxprintutil(Package):
+ """Xprint application utility routines."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXprintUtil/"
+ url = "https://www.x.org/archive/individual/lib/libXprintUtil-1.0.1.tar.gz"
+
+ version('1.0.1', '2f02e812f3e419534ced6fcb5860825f')
+
+ depends_on('libx11')
+ depends_on('libxp')
+ depends_on('libxt')
+ depends_on('libxau')
+
+ depends_on('printproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxrandr/package.py b/var/spack/repos/builtin/packages/libxrandr/package.py
new file mode 100644
index 0000000000..56c36c0c7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxrandr/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxrandr(Package):
+ """libXrandr - X Resize, Rotate and Reflection extension library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXrandr"
+ url = "https://www.x.org/archive/individual/lib/libXrandr-1.5.0.tar.gz"
+
+ version('1.5.0', 'e2fafff575b94ba0b15983eb4df93656')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext')
+ depends_on('libxrender')
+
+ depends_on('randrproto@1.5:', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('renderproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxrender/package.py b/var/spack/repos/builtin/packages/libxrender/package.py
new file mode 100644
index 0000000000..c5a6dac1be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxrender/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxrender(Package):
+ """libXrender - library for the Render Extension to the X11 protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXrender"
+ url = "https://www.x.org/archive/individual/lib/libXrender-0.9.9.tar.gz"
+
+ version('0.9.9', '0c797c4f2a7b782896bc223e6dac4333')
+
+ depends_on('libx11@1.6:')
+
+ depends_on('renderproto@0.9:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxres/package.py b/var/spack/repos/builtin/packages/libxres/package.py
new file mode 100644
index 0000000000..6d0684c4b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxres/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxres(Package):
+ """libXRes - X-Resource extension client library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXRes"
+ url = "https://www.x.org/archive/individual/lib/libXres-1.0.7.tar.gz"
+
+ version('1.0.7', '7fad9ab34201bb4adffcbf0cd7e87a89')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('resourceproto@1.0:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxscrnsaver/package.py b/var/spack/repos/builtin/packages/libxscrnsaver/package.py
new file mode 100644
index 0000000000..c9ca6ac1c8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxscrnsaver/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxscrnsaver(Package):
+ """XScreenSaver - X11 Screen Saver extension client library"""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXScrnSaver"
+ url = "https://www.x.org/archive/individual/lib/libXScrnSaver-1.2.2.tar.gz"
+
+ version('1.2.2', '79227e7d8c0dad27654c526de3d6fef3')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('scrnsaverproto@1.2:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxshmfence/package.py b/var/spack/repos/builtin/packages/libxshmfence/package.py
index 6d63ea6426..d4f4c85203 100644
--- a/var/spack/repos/builtin/packages/libxshmfence/package.py
+++ b/var/spack/repos/builtin/packages/libxshmfence/package.py
@@ -24,17 +24,26 @@
##############################################################################
from spack import *
+
class Libxshmfence(Package):
- """This is a tiny library that exposes a event API on top of Linux
- futexes."""
+ """libxshmfence - Shared memory 'SyncFence' synchronization primitive.
+
+ This library offers a CPU-based synchronization primitive compatible
+ with the X SyncFence objects that can be shared between processes
+ using file descriptor passing."""
- homepage = "http://keithp.com/blogs/dri3_extension/" # not really...
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libxshmfence/"
url = "http://xorg.freedesktop.org/archive/individual/lib/libxshmfence-1.2.tar.gz"
version('1.2', 'f0b30c0fc568b22ec524859ee28556f1')
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
make()
- make("install")
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxslt/package.py b/var/spack/repos/builtin/packages/libxslt/package.py
index c6c439ad09..9c5a42bcfb 100644
--- a/var/spack/repos/builtin/packages/libxslt/package.py
+++ b/var/spack/repos/builtin/packages/libxslt/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class Libxslt(Package):
+
+class Libxslt(AutotoolsPackage):
"""Libxslt is the XSLT C library developed for the GNOME
project. XSLT itself is a an XML language to define
transformation for XML. Libxslt is based on libxml2 the XML C
@@ -36,13 +37,9 @@ class Libxslt(Package):
url = "http://xmlsoft.org/sources/libxslt-1.1.28.tar.gz"
version('1.1.28', '9667bf6f9310b957254fdcf6596600b7')
+ version('1.1.29', 'a129d3c44c022de3b9dcf6d6f288d72e')
depends_on("libxml2")
depends_on("xz")
depends_on("zlib")
depends_on("libgcrypt")
-
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py
new file mode 100644
index 0000000000..a736490600
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxsmm/package.py
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxsmm(Package):
+ '''LIBXSMM is a library for small dense and small sparse matrix-matrix
+ multiplications targeting Intel Architecture (x86).'''
+
+ homepage = 'https://github.com/hfp/libxsmm'
+ url = 'https://github.com/hfp/libxsmm/archive/1.4.3.tar.gz'
+
+ version('1.4.3', '9839bf0fb8be7badf1e97ce4c817149b')
+ version('1.4.2', 'ea025761437f3b5c936821b9ca21ec31')
+ version('1.4.1', '71648500ea4510529845d329091917df')
+ version('1.4', 'b42f91bf5285e7ad0463446e55ebdc2b')
+
+ def patch(self):
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
+ makefile = FileFilter('Makefile.inc')
+
+ # Spack sets CC, CXX, and FC to point to the compiler wrappers
+ # Don't let Makefile.inc overwrite these
+ makefile.filter('CC = icc', 'CC ?= icc', **kwargs)
+ makefile.filter('CC = gcc', 'CC ?= gcc', **kwargs)
+ makefile.filter('CXX = icpc', 'CXX ?= icpc', **kwargs)
+ makefile.filter('CXX = g++', 'CXX ?= g++', **kwargs)
+ makefile.filter('FC = ifort', 'FC ?= ifort', **kwargs)
+ makefile.filter('FC = gfortran', 'FC ?= gfortran', **kwargs)
+
+ def manual_install(self, prefix):
+ install_tree('include', prefix.include)
+ install_tree('lib', prefix.lib)
+ install_tree('documentation', prefix.share + '/libxsmm/doc')
+
+ def install(self, spec, prefix):
+ make_args = [
+ 'ROW_MAJOR=0',
+ 'INDICES_M={0}'.format(' '.join(str(i) for i in range(1, 25))),
+ 'INDICES_N={0}'.format(' '.join(str(i) for i in range(1, 25))),
+ 'INDICES_K={0}'.format(' '.join(str(i) for i in range(1, 25)))
+ ]
+ make(*make_args)
+ self.manual_install(prefix)
diff --git a/var/spack/repos/builtin/packages/libxstream/package.py b/var/spack/repos/builtin/packages/libxstream/package.py
new file mode 100644
index 0000000000..3201b58620
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxstream/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxstream(Package):
+ '''LIBXSTREAM is a library to work with streams, events, and code regions
+ that are able to run asynchronous while preserving the usual stream
+ conditions.'''
+
+ homepage = 'https://github.com/hfp/libxstream'
+ url = 'https://github.com/hfp/libxstream.git'
+
+ version('0.9.0', git='https://github.com/hfp/libxstream.git')
+
+ def patch(self):
+ kwargs = {'ignore_absent': False, 'backup': True, 'string': True}
+ makefile = FileFilter('Makefile.inc')
+
+ makefile.filter('CC =', 'CC ?=', **kwargs)
+ makefile.filter('CXX =', 'CXX ?=', **kwargs)
+ makefile.filter('FC =', 'FC ?=', **kwargs)
+
+ def install(self, spec, prefix):
+ make()
+ install_tree('lib', prefix.lib)
+ install_tree('include', prefix.include)
+ install_tree('documentation', prefix.share + '/libxstream/doc/')
diff --git a/var/spack/repos/builtin/packages/libxt/package.py b/var/spack/repos/builtin/packages/libxt/package.py
new file mode 100644
index 0000000000..c657c866b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxt/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxt(Package):
+ """libXt - X Toolkit Intrinsics library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXt"
+ url = "https://www.x.org/archive/individual/lib/libXt-1.1.5.tar.gz"
+
+ version('1.1.5', '77d317fbc508dd6adefb59d57a663032')
+
+ depends_on('libsm')
+ depends_on('libice')
+ depends_on('libx11')
+
+ depends_on('xproto', type='build')
+ depends_on('kbproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxtrap/package.py b/var/spack/repos/builtin/packages/libxtrap/package.py
new file mode 100644
index 0000000000..4589f98a87
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxtrap/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxtrap(Package):
+ """libXTrap is the Xlib-based client API for the DEC-XTRAP extension.
+
+ XTrap was a proposed standard extension for X11R5 which facilitated the
+ capturing of server protocol and synthesizing core input events.
+
+ Digital participated in the X Consortium's xtest working group which chose
+ to evolve XTrap functionality into the XTEST & RECORD extensions for X11R6.
+
+ As X11R6 was released in 1994, XTrap has now been deprecated for over
+ 15 years, and uses of it should be quite rare."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXTrap"
+ url = "https://www.x.org/archive/individual/lib/libXTrap-1.0.1.tar.gz"
+
+ version('1.0.1', 'fde266b82ee14da3e4f4f81c9584c1ea')
+
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxext')
+
+ depends_on('trapproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxtst/package.py b/var/spack/repos/builtin/packages/libxtst/package.py
new file mode 100644
index 0000000000..0d16643f94
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxtst/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxtst(Package):
+ """libXtst provides the Xlib-based client API for the XTEST & RECORD
+ extensions.
+
+ The XTEST extension is a minimal set of client and server extensions
+ required to completely test the X11 server with no user intervention.
+ This extension is not intended to support general journaling and
+ playback of user actions.
+
+ The RECORD extension supports the recording and reporting of all
+ core X protocol and arbitrary X extension protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXtst"
+ url = "https://www.x.org/archive/individual/lib/libXtst-1.2.2.tar.gz"
+
+ version('1.2.2', 'efef3b1e44bd8074a601c0c5ce0788f4')
+
+ depends_on('libx11')
+ depends_on('libxext@1.0.99.4:')
+ depends_on('libxi')
+
+ depends_on('recordproto@1.13.99.1:', type='build')
+ depends_on('xextproto@7.0.99.3:', type='build')
+ depends_on('inputproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxv/package.py b/var/spack/repos/builtin/packages/libxv/package.py
new file mode 100644
index 0000000000..03f10a1842
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxv/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxv(Package):
+ """libXv - library for the X Video (Xv) extension to the
+ X Window System."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXv"
+ url = "https://www.x.org/archive/individual/lib/libXv-1.0.10.tar.gz"
+
+ version('1.0.10', 'e7182673b4bbe3ca00ac932e22edc038')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext')
+
+ depends_on('xextproto', type='build')
+ depends_on('videoproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxvmc/package.py b/var/spack/repos/builtin/packages/libxvmc/package.py
new file mode 100644
index 0000000000..9d5695c2c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxvmc/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxvmc(Package):
+ """X.org libXvMC library."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXvMC"
+ url = "https://www.x.org/archive/individual/lib/libXvMC-1.0.9.tar.gz"
+
+ version('1.0.9', 'a28c0780373537f4774565309b31a69e')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext')
+ depends_on('libxv')
+
+ depends_on('xextproto', type='build')
+ depends_on('videoproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxxf86dga/package.py b/var/spack/repos/builtin/packages/libxxf86dga/package.py
new file mode 100644
index 0000000000..292c5d213b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxxf86dga/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxxf86dga(Package):
+ """libXxf86dga - Client library for the XFree86-DGA extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86dga"
+ url = "https://www.x.org/archive/individual/lib/libXxf86dga-1.1.4.tar.gz"
+
+ version('1.1.4', '8ed1c8674e730e8d333dfe4b9f2097d9')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('xf86dgaproto@2.0.99.2:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxxf86misc/package.py b/var/spack/repos/builtin/packages/libxxf86misc/package.py
new file mode 100644
index 0000000000..0247f8b57c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxxf86misc/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxxf86misc(Package):
+ """libXxf86misc - Extension library for the XFree86-Misc X extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86misc"
+ url = "https://www.x.org/archive/individual/lib/libXxf86misc-1.0.3.tar.gz"
+
+ version('1.0.3', 'c8d8743e146bcd2aa9856117ac5ef6c0')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('xproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('xf86miscproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/libxxf86vm/package.py b/var/spack/repos/builtin/packages/libxxf86vm/package.py
new file mode 100644
index 0000000000..feec5ff3d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libxxf86vm/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libxxf86vm(Package):
+ """libXxf86vm - Extension library for the XFree86-VidMode X extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86vm"
+ url = "https://www.x.org/archive/individual/lib/libXxf86vm-1.1.4.tar.gz"
+
+ version('1.1.4', '675bd0c521472628d5796602f625ef51')
+
+ depends_on('libx11@1.6:')
+ depends_on('libxext')
+
+ depends_on('xproto', type='build')
+ depends_on('xextproto', type='build')
+ depends_on('xf86vidmodeproto@2.2.99.1:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py
new file mode 100644
index 0000000000..8d1687a11a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/likwid/package.py
@@ -0,0 +1,69 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Likwid(Package):
+ """Likwid is a simple to install and use toolsuite of command line
+ applications for performance oriented programmers. It works for Intel and
+ AMD processors on the Linux operating system."""
+
+ homepage = "https://github.com/RRZE-HPC/likwid"
+ url = "https://github.com/RRZE-HPC/likwid/archive/4.1.2.tar.gz"
+
+ version('4.1.2', 'a857ce5bd23e31d96e2963fe81cb38f0')
+
+ # NOTE: There is no way to use an externally provided hwloc with Likwid.
+ # The reason is that the internal hwloc is patched to contain extra
+ # functionality and functions are prefixed with "likwid_".
+
+ # TODO: how to specify those?
+ # depends_on('lua')
+
+ # TODO: check
+ # depends_on('gnuplot', type='run')
+
+ supported_compilers = {'clang': 'CLANG', 'gcc': 'GCC', 'intel': 'ICC'}
+
+ def install(self, spec, prefix):
+ if self.compiler.name not in self.supported_compilers:
+ raise RuntimeError('{0} is not a supported compiler \
+ to compile Likwid'.format(self.compiler.name))
+
+ filter_file('^COMPILER .*',
+ 'COMPILER = ' +
+ self.supported_compilers[self.compiler.name],
+ 'config.mk')
+ filter_file('^PREFIX .*',
+ 'PREFIX = ' +
+ prefix,
+ 'config.mk')
+
+ filter_file('^INSTALL_CHOWN.*',
+ 'INSTALL_CHOWN = -o $(USER)',
+ 'config.mk')
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/listres/package.py b/var/spack/repos/builtin/packages/listres/package.py
new file mode 100644
index 0000000000..c6b3d149f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/listres/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Listres(Package):
+ """The listres program generates a list of X resources for a widget
+ in an X client written using a toolkit based on libXt."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/listres"
+ url = "https://www.x.org/archive/individual/app/listres-1.0.3.tar.gz"
+
+ version('1.0.3', '77cafc32e8e02cca2d4453e73e0c0e7d')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+ depends_on('libxmu')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/llvm-lld/package.py b/var/spack/repos/builtin/packages/llvm-lld/package.py
index 073c2d1b9e..6a167cca33 100644
--- a/var/spack/repos/builtin/packages/llvm-lld/package.py
+++ b/var/spack/repos/builtin/packages/llvm-lld/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class LlvmLld(Package):
"""lld - The LLVM Linker
lld is a new set of modular code for creating linker tools."""
@@ -34,8 +35,10 @@ class LlvmLld(Package):
version('3.4', '3b6a17e58c8416c869c14dd37682f78e')
+ depends_on('cmake', type='build')
+
def install(self, spec, prefix):
- env['CXXFLAGS'] = self.compier.cxx11_flag
+ env['CXXFLAGS'] = self.compiler.cxx11_flag
with working_dir('spack-build', create=True):
cmake('..',
diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index c090c131c6..06572ea312 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -22,34 +22,58 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+import os
+
from spack import *
-import os, shutil
class Llvm(Package):
"""The LLVM Project is a collection of modular and reusable compiler and
- toolchain technologies. Despite its name, LLVM has little to do with
- traditional virtual machines, though it does provide helpful libraries
- that can be used to build them. The name "LLVM" itself is not an acronym;
- it is the full name of the project.
+ toolchain technologies. Despite its name, LLVM has little to do
+ with traditional virtual machines, though it does provide helpful
+ libraries that can be used to build them. The name "LLVM" itself
+ is not an acronym; it is the full name of the project.
"""
+
homepage = 'http://llvm.org/'
url = 'http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz'
- version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz') # currently required by mesa package
+ family = 'compiler' # Used by lmod
- variant('debug', default=False, description="Build a debug version of LLVM, this increases binary size by an order of magnitude, make sure you have 20-30gb of space available to build this")
- variant('clang', default=True, description="Build the LLVM C/C++/Objective-C compiler frontend")
- variant('lldb', default=True, description="Build the LLVM debugger")
- variant('internal_unwind', default=True, description="Build the libcxxabi libunwind")
- variant('polly', default=True, description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+")
- variant('libcxx', default=True, description="Build the LLVM C++ standard library")
- variant('compiler-rt', default=True, description="Build the LLVM compiler runtime, including sanitizers")
- variant('gold', default=True, description="Add support for LTO with the gold linker plugin")
+ # currently required by mesa package
+ version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005',
+ url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
+ variant('debug', default=False,
+ description="Build a debug version of LLVM, this increases "
+ "binary size by an order of magnitude, make sure you have "
+ "20-30gb of space available to build this")
+ variant('clang', default=True,
+ description="Build the LLVM C/C++/Objective-C compiler frontend")
+ variant('lldb', default=True, description="Build the LLVM debugger")
+ variant('internal_unwind', default=True,
+ description="Build the libcxxabi libunwind")
+ variant('polly', default=True,
+ description="Build the LLVM polyhedral optimization plugin, "
+ "only builds for 3.7.0+")
+ variant('libcxx', default=True,
+ description="Build the LLVM C++ standard library")
+ variant('compiler-rt', default=True,
+ description="Build LLVM compiler runtime, including sanitizers")
+ variant('gold', default=True,
+ description="Add support for LTO with the gold linker plugin")
+ variant('shared_libs', default=False,
+ description="Build all components as shared libraries, faster, "
+ "less memory to build, less stable")
+ variant('link_dylib', default=False,
+ description="Build and link the libLLVM shared library rather "
+ "than static")
+ variant('all_targets', default=True,
+ description="Build all supported targets, default targets "
+ "<current arch>,NVPTX,AMDGPU,CppBackend")
# Build dependency
- depends_on('cmake @2.8.12.2:')
+ depends_on('cmake@2.8.12.2:', type='build')
# Universal dependency
depends_on('python@2.7:2.8') # Seems not to support python 3.X.Y
@@ -66,147 +90,177 @@ class Llvm(Package):
depends_on('gmp', when='@:3.6.999 +polly')
depends_on('isl', when='@:3.6.999 +polly')
- base_url = 'http://llvm.org/releases/%%(version)s/%(pkg)s-%%(version)s.src.tar.xz'
- llvm_url = base_url % { 'pkg' : 'llvm'}
+ base_url = 'http://llvm.org/releases/%%(version)s/%(pkg)s-%%(version)s.src.tar.xz'
+ llvm_url = base_url % {'pkg': 'llvm'}
resources = {
- 'compiler-rt' : {
- 'url' : base_url % { 'pkg' : 'compiler-rt'},
- 'destination' : 'projects',
- 'placement' : 'compiler-rt',
- },
- 'openmp' : {
- 'url' : base_url % { 'pkg' : 'openmp'},
- 'destination' : 'projects',
- 'placement' : 'openmp',
- },
- 'libcxx' : {
- 'url' : base_url % { 'pkg' : 'libcxx'},
- 'destination' : 'projects',
- 'placement' : 'libcxx',
- },
- 'libcxxabi' : {
- 'url' : base_url % { 'pkg' : 'libcxxabi'},
- 'destination' : 'projects',
- 'placement' : 'libcxxabi',
- },
- 'clang' : {
- 'url' : base_url % { 'pkg' : 'cfe'},
- 'destination' : 'tools',
- 'placement' : 'clang',
- },
- 'clang-tools-extra' : {
- 'url' : base_url % { 'pkg' : 'clang-tools-extra'},
- 'destination' : 'tools/clang/tools',
- 'placement' : 'extra',
- },
- 'lldb' : {
- 'url' : base_url % { 'pkg' : 'lldb'},
- 'destination' : 'tools',
- 'placement' : 'lldb',
- },
- 'polly' : {
- 'url' : base_url % { 'pkg' : 'polly'},
- 'destination' : 'tools',
- 'placement' : 'polly',
- },
- 'llvm-libunwind' : {
- 'url' : base_url % { 'pkg' : 'libunwind'},
- 'destination' : 'projects',
- 'placement' : 'libunwind',
- },
- }
+ 'compiler-rt': {
+ 'url': base_url % {'pkg': 'compiler-rt'},
+ 'destination': 'projects',
+ 'placement': 'compiler-rt',
+ },
+ 'openmp': {
+ 'url': base_url % {'pkg': 'openmp'},
+ 'destination': 'projects',
+ 'placement': 'openmp',
+ },
+ 'libcxx': {
+ 'url': base_url % {'pkg': 'libcxx'},
+ 'destination': 'projects',
+ 'placement': 'libcxx',
+ },
+ 'libcxxabi': {
+ 'url': base_url % {'pkg': 'libcxxabi'},
+ 'destination': 'projects',
+ 'placement': 'libcxxabi',
+ },
+ 'cfe': {
+ 'url': base_url % {'pkg': 'cfe'},
+ 'destination': 'tools',
+ 'placement': 'clang',
+ },
+ 'clang-tools-extra': {
+ 'url': base_url % {'pkg': 'clang-tools-extra'},
+ 'destination': 'tools/clang/tools',
+ 'placement': 'extra',
+ },
+ 'lldb': {
+ 'url': base_url % {'pkg': 'lldb'},
+ 'destination': 'tools',
+ 'placement': 'lldb',
+ },
+ 'polly': {
+ 'url': base_url % {'pkg': 'polly'},
+ 'destination': 'tools',
+ 'placement': 'polly',
+ },
+ 'llvm-libunwind': {
+ 'url': base_url % {'pkg': 'libunwind'},
+ 'destination': 'projects',
+ 'placement': 'libunwind',
+ },
+ }
releases = [
- {
- 'version' : 'trunk',
- 'repo' : 'http://llvm.org/svn/llvm-project/llvm/trunk',
- 'resources' : {
- 'compiler-rt' : 'http://llvm.org/svn/llvm-project/compiler-rt/trunk',
- 'openmp' : 'http://llvm.org/svn/llvm-project/openmp/trunk',
- 'polly' : 'http://llvm.org/svn/llvm-project/polly/trunk',
- 'libcxx' : 'http://llvm.org/svn/llvm-project/libcxx/trunk',
- 'libcxxabi' : 'http://llvm.org/svn/llvm-project/libcxxabi/trunk',
- 'clang' : 'http://llvm.org/svn/llvm-project/cfe/trunk',
- 'clang-tools-extra' : 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk',
- 'lldb' : 'http://llvm.org/svn/llvm-project/lldb/trunk',
- 'llvm-libunwind' : 'http://llvm.org/svn/llvm-project/libunwind/trunk',
- }
- },
- {
- 'version' : '3.8.0',
- 'md5':'07a7a74f3c6bd65de4702bf941b511a0',
- 'resources' : {
- 'compiler-rt' : 'd6fcbe14352ffb708e4d1ac2e48bb025',
- 'openmp' : '8fd7cc35d48051613cf1e750e9f22e40',
- 'polly' : '1b3b20f52d34a4024e21a4ea7112caa7',
- 'libcxx' : 'd6e0bdbbee39f7907ad74fd56d03b88a',
- 'libcxxabi' : 'bbe6b4d72c7c5978550d370af529bcf7',
- 'clang' : 'cc99e7019bb74e6459e80863606250c5',
- 'clang-tools-extra' : 'c2344f50e0eea0b402f0092a80ddc036',
- 'lldb' : 'a5da35ed9cc8c8817ee854e3dbfba00e',
- 'llvm-libunwind' : '162ade468607f153cca12be90b5194fa',
- }
- },
- {
- 'version' : '3.7.1',
- 'md5':'bf8b3a2c79e61212c5409041dfdbd319',
- 'resources' : {
- 'compiler-rt' : '1c6975daf30bb3b0473b53c3a1a6ff01',
- 'openmp' : 'b4ad08cda4e5c22e42b66062b140438e',
- 'polly' : '3a2a7367002740881637f4d47bca4dc3',
- 'libcxx' : 'f9c43fa552a10e14ff53b94d04bea140',
- 'libcxxabi' : '52d925afac9f97e9dcac90745255c169',
- 'clang' : '0acd026b5529164197563d135a8fd83e',
- 'clang-tools-extra' : '5d49ff745037f061a7c86aeb6a24c3d2',
- 'lldb' : 'a106d8a0d21fc84d76953822fbaf3398',
- 'llvm-libunwind' : '814bd52c9247c5d04629658fbcb3ab8c',
- }
- },
- {
- 'version' : '3.7.0',
- 'md5':'b98b9495e5655a672d6cb83e1a180f8e',
- 'resources' : {
- 'compiler-rt' : '383c10affd513026f08936b5525523f5',
- 'openmp' : 'f482c86fdead50ba246a1a2b0bbf206f',
- 'polly' : '32f93ffc9cc7e042df22089761558f8b',
- 'libcxx' : '46aa5175cbe1ad42d6e9c995968e56dd',
- 'libcxxabi' : '5aa769e2fca79fa5335cfae8f6258772',
- 'clang' : '8f9d27335e7331cf0a4711e952f21f01',
- 'clang-tools-extra' : 'd5a87dacb65d981a427a536f6964642e',
- 'lldb' : 'e5931740400d1dc3e7db4c7ba2ceff68',
- 'llvm-libunwind' : '9a75392eb7eb8ed5c0840007e212baf5',
- }
- },
- {
- 'version' : '3.6.2',
- 'md5':'0c1ee3597d75280dee603bae9cbf5cc2',
- 'resources' : {
- 'compiler-rt' : 'e3bc4eb7ba8c39a6fe90d6c988927f3c',
- 'openmp' : '65dd5863b9b270960a96817e9152b123',
- 'libcxx' : '22214c90697636ef960a49aef7c1823a',
- 'libcxxabi' : '17518e361e4e228f193dd91e8ef54ba2',
- 'clang' : 'ff862793682f714bb7862325b9c06e20',
- 'clang-tools-extra' : '3ebc1dc41659fcec3db1b47d81575e06',
- 'lldb' : '51e5eb552f777b950bb0ff326e60d5f0',
- }
- },
- {
- 'version' : '3.5.1',
- 'md5':'2d3d8004f38852aa679e5945b8ce0b14',
- 'resources' : {
- 'compiler-rt' : 'd626cfb8a9712cb92b820798ab5bc1f8',
- 'openmp' : '121ddb10167d7fc38b1f7e4b029cf059',
- 'libcxx' : '406f09b1dab529f3f7879f4d548329d2',
- 'libcxxabi' : 'b22c707e8d474a99865ad3c521c3d464',
- 'clang' : '93f9532f8f7e6f1d8e5c1116907051cb',
- 'clang-tools-extra' : 'f13f31ed3038acadc6fa63fef812a246',
- 'lldb' : 'cc5ea8a414c62c33e760517f8929a204',
- }
- },
- ]
+ {
+ 'version': 'trunk',
+ 'repo': 'http://llvm.org/svn/llvm-project/llvm/trunk',
+ 'resources': {
+ 'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk',
+ 'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk',
+ 'polly': 'http://llvm.org/svn/llvm-project/polly/trunk',
+ 'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk',
+ 'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk',
+ 'cfe': 'http://llvm.org/svn/llvm-project/cfe/trunk',
+ 'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk',
+ 'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk',
+ 'llvm-libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk',
+ }
+ },
+ {
+ 'version': '3.9.0',
+ 'md5': 'f2093e98060532449eb7d2fcfd0bc6c6',
+ 'resources': {
+ 'compiler-rt': 'b7ea34c9d744da16ffc0217b6990d095',
+ 'openmp': '5390164f2374e1444e82393541ecf6c7',
+ 'polly': '1cf328cbae25267749b68cfa6f113674',
+ 'libcxx': '0a11efefd864ce6f321194e441f7e569',
+ 'libcxxabi': 'd02642308e22e614af6b061b9b4fedfa',
+ 'cfe': '29e1d86bee422ab5345f5e9fb808d2dc',
+ 'clang-tools-extra': 'f4f663068c77fc742113211841e94d5e',
+ 'lldb': '968d053c3c3d7297983589164c6999e9',
+ 'llvm-libunwind': '3e5c87c723a456be599727a444b1c166',
+ }
+ },
+ {
+ 'version': '3.8.1',
+ 'md5': '538467e6028bbc9259b1e6e015d25845',
+ 'resources': {
+ 'compiler-rt': 'f140db073d2453f854fbe01cc46f3110',
+ 'openmp': '078b8d4c51ad437a4f8b5989f5ec4156',
+ 'polly': '8a40e697a4ba1c8b640b85d074bd6e25',
+ 'libcxx': '1bc60150302ff76a0d79d6f9db22332e',
+ 'libcxxabi': '3c63b03ba2f30a01279ca63384a67773',
+ 'cfe': '4ff2f8844a786edb0220f490f7896080',
+ 'clang-tools-extra': '6e49f285d0b366cc3cab782d8c92d382',
+ 'lldb': '9e4787b71be8e432fffd31e13ac87623',
+ 'llvm-libunwind': 'd66e2387e1d37a8a0c8fe6a0063a3bab',
+ }
+ },
+ {
+ 'version': '3.8.0',
+ 'md5': '07a7a74f3c6bd65de4702bf941b511a0',
+ 'resources': {
+ 'compiler-rt': 'd6fcbe14352ffb708e4d1ac2e48bb025',
+ 'openmp': '8fd7cc35d48051613cf1e750e9f22e40',
+ 'polly': '1b3b20f52d34a4024e21a4ea7112caa7',
+ 'libcxx': 'd6e0bdbbee39f7907ad74fd56d03b88a',
+ 'libcxxabi': 'bbe6b4d72c7c5978550d370af529bcf7',
+ 'cfe': 'cc99e7019bb74e6459e80863606250c5',
+ 'clang-tools-extra': 'c2344f50e0eea0b402f0092a80ddc036',
+ 'lldb': 'a5da35ed9cc8c8817ee854e3dbfba00e',
+ 'llvm-libunwind': '162ade468607f153cca12be90b5194fa',
+ }
+ },
+ {
+ 'version': '3.7.1',
+ 'md5': 'bf8b3a2c79e61212c5409041dfdbd319',
+ 'resources': {
+ 'compiler-rt': '1c6975daf30bb3b0473b53c3a1a6ff01',
+ 'openmp': 'b4ad08cda4e5c22e42b66062b140438e',
+ 'polly': '3a2a7367002740881637f4d47bca4dc3',
+ 'libcxx': 'f9c43fa552a10e14ff53b94d04bea140',
+ 'libcxxabi': '52d925afac9f97e9dcac90745255c169',
+ 'cfe': '0acd026b5529164197563d135a8fd83e',
+ 'clang-tools-extra': '5d49ff745037f061a7c86aeb6a24c3d2',
+ 'lldb': 'a106d8a0d21fc84d76953822fbaf3398',
+ 'llvm-libunwind': '814bd52c9247c5d04629658fbcb3ab8c',
+ }
+ },
+ {
+ 'version': '3.7.0',
+ 'md5': 'b98b9495e5655a672d6cb83e1a180f8e',
+ 'resources': {
+ 'compiler-rt': '383c10affd513026f08936b5525523f5',
+ 'openmp': 'f482c86fdead50ba246a1a2b0bbf206f',
+ 'polly': '32f93ffc9cc7e042df22089761558f8b',
+ 'libcxx': '46aa5175cbe1ad42d6e9c995968e56dd',
+ 'libcxxabi': '5aa769e2fca79fa5335cfae8f6258772',
+ 'cfe': '8f9d27335e7331cf0a4711e952f21f01',
+ 'clang-tools-extra': 'd5a87dacb65d981a427a536f6964642e',
+ 'lldb': 'e5931740400d1dc3e7db4c7ba2ceff68',
+ 'llvm-libunwind': '9a75392eb7eb8ed5c0840007e212baf5',
+ }
+ },
+ {
+ 'version': '3.6.2',
+ 'md5': '0c1ee3597d75280dee603bae9cbf5cc2',
+ 'resources': {
+ 'compiler-rt': 'e3bc4eb7ba8c39a6fe90d6c988927f3c',
+ 'openmp': '65dd5863b9b270960a96817e9152b123',
+ 'libcxx': '22214c90697636ef960a49aef7c1823a',
+ 'libcxxabi': '17518e361e4e228f193dd91e8ef54ba2',
+ 'cfe': 'ff862793682f714bb7862325b9c06e20',
+ 'clang-tools-extra': '3ebc1dc41659fcec3db1b47d81575e06',
+ 'lldb': '51e5eb552f777b950bb0ff326e60d5f0',
+ }
+ },
+ {
+ 'version': '3.5.1',
+ 'md5': '2d3d8004f38852aa679e5945b8ce0b14',
+ 'resources': {
+ 'compiler-rt': 'd626cfb8a9712cb92b820798ab5bc1f8',
+ 'openmp': '121ddb10167d7fc38b1f7e4b029cf059',
+ 'libcxx': '406f09b1dab529f3f7879f4d548329d2',
+ 'libcxxabi': 'b22c707e8d474a99865ad3c521c3d464',
+ 'cfe': '93f9532f8f7e6f1d8e5c1116907051cb',
+ 'clang-tools-extra': 'f13f31ed3038acadc6fa63fef812a246',
+ 'lldb': 'cc5ea8a414c62c33e760517f8929a204',
+ }
+ },
+ ]
for release in releases:
- if release['version'] == 'trunk' :
+ if release['version'] == 'trunk':
version(release['version'], svn=release['repo'])
for name, repo in release['resources'].items():
@@ -228,18 +282,19 @@ class Llvm(Package):
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
- cmake_args = [ arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg ]
+ cmake_args = [arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg]
build_type = 'RelWithDebInfo' if '+debug' in spec else 'Release'
cmake_args.extend([
- '..',
- '-DCMAKE_BUILD_TYPE=' + build_type,
- '-DLLVM_REQUIRES_RTTI:BOOL=ON',
- '-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp',
- '-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix ])
+ '..',
+ '-DCMAKE_BUILD_TYPE=' + build_type,
+ '-DLLVM_REQUIRES_RTTI:BOOL=ON',
+ '-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp',
+ '-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix])
if '+gold' in spec:
- cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + os.path.join( spec['binutils'].prefix, 'include'))
+ cmake_args.append('-DLLVM_BINUTILS_INCDIR=' +
+ os.path.join(spec['binutils'].prefix, 'include'))
if '+polly' in spec:
cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON')
else:
@@ -257,17 +312,40 @@ class Llvm(Package):
if '+compiler-rt' not in spec:
cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF')
- if '+clang' not in spec:
+ if '+shared_libs' in spec:
+ cmake_args.append('-DBUILD_SHARED_LIBS:Bool=ON')
+
+ if '+link_dylib' in spec:
+ cmake_args.append('-DLLVM_LINK_LLVM_DYLIB:Bool=ON')
+
+ if '+all_targets' not in spec: # all is default on cmake
+ targets = ['CppBackend', 'NVPTX', 'AMDGPU']
+ if 'x86' in spec.architecture.target.lower():
+ targets.append('X86')
+ elif 'arm' in spec.architecture.target.lower():
+ targets.append('ARM')
+ elif 'aarch64' in spec.architecture.target.lower():
+ targets.append('AArch64')
+ elif 'sparc' in spec.architecture.target.lower():
+ targets.append('sparc')
+ elif ('ppc' in spec.architecture.target.lower() or
+ 'power' in spec.architecture.target.lower()):
+ targets.append('PowerPC')
+
+ cmake_args.append(
+ '-DLLVM_TARGETS_TO_BUILD:Bool=' + ';'.join(targets))
+
+ if '+clang' not in spec:
if '+clang_extra' in spec:
- raise SpackException('The clang_extra variant requires the clang variant to be selected')
+ raise SpackException(
+ 'The clang_extra variant requires the `+clang` variant.')
if '+lldb' in spec:
- raise SpackException('The lldb variant requires the clang variant to be selected')
+ raise SpackException(
+ 'The lldb variant requires the `+clang` variant')
with working_dir('spack-build', create=True):
cmake(*cmake_args)
make()
make("install")
- query_path = os.path.join('bin', 'clang-query')
- # Manually install clang-query, because llvm doesn't...
- if os.path.exists(query_path):
- shutil.copy(query_path, os.path.join(prefix, 'bin'))
+ cp = which('cp')
+ cp('-a', 'bin/', prefix)
diff --git a/var/spack/repos/builtin/packages/lmdb/package.py b/var/spack/repos/builtin/packages/lmdb/package.py
index 79c020b2df..8c6c23d8dc 100644
--- a/var/spack/repos/builtin/packages/lmdb/package.py
+++ b/var/spack/repos/builtin/packages/lmdb/package.py
@@ -25,12 +25,12 @@
import os
from spack import *
+
class Lmdb(Package):
"""Read-only mirror of official repo on openldap.org. Issues and
pull requests here are ignored. Use OpenLDAP ITS for issues.
http://www.openldap.org/software/repo.html"""
-
homepage = "http://www.openldap.org/software/repo.html"
url = "https://github.com/LMDB/lmdb/archive/LMDB_0.9.16.tar.gz"
diff --git a/var/spack/repos/builtin/packages/lmod/fix_tclsh_paths.patch b/var/spack/repos/builtin/packages/lmod/fix_tclsh_paths.patch
new file mode 100644
index 0000000000..70f0d47925
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lmod/fix_tclsh_paths.patch
@@ -0,0 +1,10 @@
+--- a/Makefile.in 2016-07-21 13:03:27.861000000 -0400
++++ b/Makefile.in 2016-07-21 13:03:58.416000000 -0400
+@@ -197,6 +197,7 @@
+ -e 's|@colorize@|$(COLORIZE)|g' \
+ -e 's|@duplicate_paths@|$(DUPLICATE_PATHS)|g' \
+ -e 's|@allow_tcl_mfiles@|$(ALLOW_TCL_MFILES)|g' \
++ -e 's|@path_to_tclsh@|$(PATH_TO_TCLSH)|g' \
+ -e 's|@mpath_avail@|$(MPATH_AVAIL)|g' \
+ -e 's|@short_time@|$(SHORT_TIME)|g' \
+ -e 's|@cacheDirs@|$(SPIDER_CACHE_DIRS)|g' \
diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py
index 0a8b9b4577..9ac270bab5 100644
--- a/var/spack/repos/builtin/packages/lmod/package.py
+++ b/var/spack/repos/builtin/packages/lmod/package.py
@@ -23,28 +23,50 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+from glob import glob
+
class Lmod(Package):
- """
- Lmod is a Lua based module system that easily handles the MODULEPATH
+ """Lmod is a Lua based module system that easily handles the MODULEPATH
Hierarchical problem. Environment Modules provide a convenient way to
dynamically change the users' environment through modulefiles. This
includes easily adding or removing directories to the PATH environment
variable. Modulefiles for Library packages provide environment variables
that specify where the library and header files can be found.
"""
- homepage = "https://www.tacc.utexas.edu/research-development/tacc-projects/lmod"
- url = "http://sourceforge.net/projects/lmod/files/Lmod-6.0.1.tar.bz2/download"
+ homepage = 'https://www.tacc.utexas.edu/research-development/tacc-projects/lmod'
+ url = 'https://github.com/TACC/Lmod/archive/6.4.1.tar.gz'
+
+ version('6.4.5', '14f6c58dbc0a5a75574d795eac2c1e3c')
+ version('6.4.1', '7978ba777c8aa41a4d8c05fec5f780f4')
+ version('6.3.7', '0fa4d5a24c41cae03776f781aa2dedc1')
version('6.0.1', '91abf52fe5033bd419ffe2842ebe7af9')
- depends_on("lua@5.2:")
+ depends_on('lua@5.2:')
+ depends_on('lua-luaposix', type=('build', 'run'))
+ depends_on('lua-luafilesystem', type=('build', 'run'))
+ depends_on('tcl', type=('build', 'run'))
+
+ parallel = False
+
+ def setup_environment(self, spack_env, run_env):
+ stage_lua_path = join_path(
+ self.stage.path, 'Lmod-{version}', 'src', '?.lua')
+ spack_env.append_path('LUA_PATH', stage_lua_path.format(
+ version=self.version), separator=';')
+
+ patch('fix_tclsh_paths.patch', when='@:6.4.3')
+
+ def patch(self):
+ """The tcl scripts should use the tclsh that was discovered
+ by the configure script. Touch up their #! lines so that the
+ sed in the Makefile's install step has something to work on.
+ Requires the change in the associated patch file.fg"""
+ if self.spec.version <= Version('6.4.3'):
+ for tclscript in glob('src/*.tcl'):
+ filter_file(r'^#!.*tclsh', '#!@path_to_tclsh@', tclscript)
def install(self, spec, prefix):
- # Add our lua to PATH
- os.environ['PATH'] = spec['lua'].prefix.bin + ';' + os.environ['PATH']
-
configure('--prefix=%s' % prefix)
- make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/lndir/package.py b/var/spack/repos/builtin/packages/lndir/package.py
new file mode 100644
index 0000000000..a7ce892502
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lndir/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lndir(Package):
+ """lndir - create a shadow directory of symbolic links to another
+ directory tree."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/util/lndir"
+ url = "https://www.x.org/archive/individual/util/lndir-1.0.3.tar.gz"
+
+ version('1.0.3', '7173b2e4832658d319c2980a7c834205')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch b/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch
new file mode 100644
index 0000000000..d4d5e66528
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch
@@ -0,0 +1,60 @@
+--- old/Makefile.spack
++++ new/Makefile.spack
+@@ -0,0 +1,57 @@
++# Set PREFIX to the install location for both building and installing
++# Set BOOST_PREFIX to the location where BOOST is installed
++# Set GMP_PREFIX to the location where GMP is installed
++
++all: liblrsgmp.la \
++ 2nash fourier lrs lrs1 lrsnash redund redund1 setnash setnash2
++
++liblrsgmp.la: lrslib-GMP.lo lrsgmp-GMP.lo
++ libtool --mode=link --tag=CC cc -g -O3 \
++ -rpath $(PREFIX)/lib -o $@ $^ \
++ -L$(GMP_PREFIX)/lib -lgmp
++
++lrs1: lrs-LONG.lo lrslib-LONG.lo lrslong-LONG.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++redund1: redund-LONG.lo lrslib-LONG.lo lrslong-LONG.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++lrs: lrs-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo liblrsgmp.la
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++redund: redund-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo liblrsgmp.la
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++fourier: fourier-GMP.lo lrslib-GMP.lo lrsgmp-GMP.lo liblrsgmp.la
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++lrsnash: lrsnash-GMP.lo lrsnashlib-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo \
++ liblrsgmp.la
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++2nash: 2nash.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++setnash: setupnash.lo lrslib.lo lrsmp.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++setnash2: setupnash2.lo lrslib.lo lrsmp.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++
++%.lo: %.c
++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -c $*.c
++%-GMP.lo: %.c
++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -DGMP -c $*.c
++%-LONG.lo: %.c
++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -DLRSLONG -c $*.c
++
++install:
++ mkdir -p $(PREFIX)/bin
++ mkdir -p $(PREFIX)/include
++ mkdir -p $(PREFIX)/lib
++ libtool --mode=install cp 2nash $(PREFIX)/bin/2nash
++ libtool --mode=install cp fourier $(PREFIX)/bin/fourier
++ libtool --mode=install cp lrs $(PREFIX)/bin/lrs
++ libtool --mode=install cp lrs1 $(PREFIX)/bin/lrs1
++ libtool --mode=install cp lrsnash $(PREFIX)/bin/lrsnash
++ libtool --mode=install cp redund $(PREFIX)/bin/redund
++ libtool --mode=install cp redund1 $(PREFIX)/bin/redund1
++ libtool --mode=install cp setnash $(PREFIX)/bin/setnash
++ libtool --mode=install cp setnash2 $(PREFIX)/bin/setnash2
++ libtool --mode=install cp lrsgmp.h $(PREFIX)/include/lrsgmp.h
++ libtool --mode=install cp lrslib.h $(PREFIX)/include/lrslib.h
++ libtool --mode=install cp liblrsgmp.la $(PREFIX)/lib/liblrsgmp.la
++
++.PHONY: all install
diff --git a/var/spack/repos/builtin/packages/lrslib/package.py b/var/spack/repos/builtin/packages/lrslib/package.py
new file mode 100644
index 0000000000..3825867bb6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lrslib/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Lrslib(Package):
+ """lrslib Ver 6.2 is a self-contained ANSI C implementation of the
+ reverse search algorithm for vertex enumeration/convex hull
+ problems and comes with a choice of three arithmetic packages"""
+ homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html"
+ url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-062.tar.gz"
+
+ version('6.2', 'be5da7b3b90cc2be628dcade90c5d1b9')
+ version('6.1', '0b3687c8693cd7d1f234a3f65e147551')
+ version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c')
+ version('5.1', 'cca323eee8bf76f598a13d7bf67cc13d')
+ version('4.3', '86dd9a45d20a3a0069f77e61be5b46ad')
+
+ # Note: lrslib can also be built with Boost, and probably without gmp
+
+ # depends_on("boost")
+ depends_on("gmp")
+ depends_on("libtool", type="build")
+
+ patch("Makefile.spack.patch")
+
+ def url_for_version(self, version):
+ url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-0{0}.tar.gz"
+ return url.format(version.joined)
+
+ def install(self, spec, prefix):
+ # The Makefile isn't portable; use our own instead
+ makeargs = ["-f", "Makefile.spack",
+ "PREFIX=%s" % prefix,
+ # "BOOST_PREFIX=%s" % spec["boost"].prefix,
+ "GMP_PREFIX=%s" % spec["gmp"].prefix]
+ make(*makeargs)
+ make("install", *makeargs)
diff --git a/var/spack/repos/builtin/packages/lrzip/package.py b/var/spack/repos/builtin/packages/lrzip/package.py
new file mode 100644
index 0000000000..42542acfdb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lrzip/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lrzip(Package):
+ """A compression utility that excels at compressing large files
+ (usually > 10-50 MB). Larger files and/or more free RAM means that the
+ utility will be able to more effectively compress your files (ie: faster /
+ smaller size), especially if the filesize(s) exceed 100 MB. You can either
+ choose to optimise for speed (fast compression / decompression) or size,
+ but not both."""
+
+ homepage = 'http://lrzip.kolivas.org'
+ url = 'https://github.com/ckolivas/lrzip/archive/v0.630.tar.gz'
+
+ version('master', git='https://github.com/ckolivas/lrzip.git')
+ version('0.630', '3ca7f1d1365aa105089d1fbfc6b0924a')
+ version('0.621', '1f07227b39ae81a98934411e8611e341')
+ version('0.616', 'd40bdb046d0807ef602e36b1e9782cc0')
+ version('0.615', 'f1c01e7f3de07f54d916b61c989dfaf2')
+
+ # depends_on('coreutils')
+ depends_on('lzo')
+ depends_on('zlib')
+ depends_on('bzip2')
+
+ def install(self, spec, prefix):
+ set_executable('./autogen.sh')
+ autogen = Executable('./autogen.sh')
+
+ configure_args = [
+ '--prefix={0}'.format(prefix),
+ '--disable-dependency-tracking'
+ ]
+ autogen(*configure_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/LuaJIT/package.py b/var/spack/repos/builtin/packages/lua-jit/package.py
index db6f7d3cad..5f7de8ff06 100644
--- a/var/spack/repos/builtin/packages/LuaJIT/package.py
+++ b/var/spack/repos/builtin/packages/lua-jit/package.py
@@ -25,7 +25,8 @@
import os
from spack import *
-class Luajit(Package):
+
+class LuaJit(Package):
"""Flast flexible JITed lua"""
homepage = "http://www.luajit.org"
url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz"
diff --git a/var/spack/repos/builtin/packages/lua-luafilesystem/package.py b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py
new file mode 100644
index 0000000000..7a5c90f36f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class LuaLuafilesystem(Package):
+ """LuaFileSystem is a Lua library developed to complement the set of
+ functions related to file systems offered by the standard Lua distribution.
+
+ LuaFileSystem offers a portable way to access the underlying directory
+ structure and file attributes.
+
+ LuaFileSystem is free software and uses the same license as Lua 5.1
+ """
+
+ homepage = 'http://keplerproject.github.io/luafilesystem'
+ url = 'https://github.com/keplerproject/luafilesystem/archive/v1_6_3.tar.gz'
+
+ version('1_6_3', 'bed11874cfded8b4beed7dd054127b24')
+
+ depends_on('git@2.9.3:', type='build')
+ extends('lua')
+
+ def install(self, spec, prefix):
+ rockspec_fmt = join_path(self.stage.path,
+ 'luafilesystem-{version.underscored}',
+ 'rockspecs',
+ 'luafilesystem-{version.dotted}-1.rockspec')
+ luarocks('--tree=' + prefix, 'install',
+ rockspec_fmt.format(version=self.spec.version))
diff --git a/var/spack/repos/builtin/packages/lua-luaposix/package.py b/var/spack/repos/builtin/packages/lua-luaposix/package.py
index 9e96548f08..3803a938c8 100644
--- a/var/spack/repos/builtin/packages/lua-luaposix/package.py
+++ b/var/spack/repos/builtin/packages/lua-luaposix/package.py
@@ -1,3 +1,27 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
import glob
diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py
index e621967586..357e2cc03a 100644
--- a/var/spack/repos/builtin/packages/lua/package.py
+++ b/var/spack/repos/builtin/packages/lua/package.py
@@ -57,21 +57,23 @@ class Lua(Package):
placement='luarocks')
def install(self, spec, prefix):
- if spec.satisfies("=darwin-i686") or spec.satisfies("=darwin-x86_64"):
+ if spec.satisfies("platform=darwin"):
target = 'macosx'
else:
target = 'linux'
make('INSTALL_TOP=%s' % prefix,
- 'MYLDFLAGS=-L%s -L%s ' % (
+ 'MYLDFLAGS=-L%s -L%s' % (
spec['readline'].prefix.lib,
spec['ncurses'].prefix.lib),
'MYLIBS=-lncurses',
+ 'CC=%s -std=gnu99' % spack_cc,
target)
make('INSTALL_TOP=%s' % prefix,
- 'MYLDFLAGS=-L%s -L%s ' % (
+ 'MYLDFLAGS=-L%s -L%s' % (
spec['readline'].prefix.lib,
spec['ncurses'].prefix.lib),
'MYLIBS=-lncurses',
+ 'CC=%s -std=gnu99' % spack_cc,
'install')
with working_dir(os.path.join('luarocks', 'luarocks')):
@@ -86,7 +88,8 @@ class Lua(Package):
def setup_dependent_environment(self, spack_env, run_env, extension_spec):
lua_paths = []
- for d in extension_spec.traverse():
+ for d in extension_spec.traverse(
+ deptypes=('build', 'run'), deptype_query='run'):
if d.package.extends(self.spec):
lua_paths.append(os.path.join(d.prefix, self.lua_lib_dir))
lua_paths.append(os.path.join(d.prefix, self.lua_share_dir))
@@ -105,6 +108,9 @@ class Lua(Package):
spack_env.set('LUA_PATH', ';'.join(lua_patterns), separator=';')
spack_env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';')
+ # Add LUA to PATH for dependent packages
+ spack_env.prepend_path('PATH', self.prefix.bin)
+
# For run time environment set only the path for extension_spec and
# prepend it to LUAPATH
if extension_spec.package.extends(self.spec):
@@ -137,11 +143,11 @@ class Lua(Package):
@property
def lua_lib_dir(self):
- return os.path.join('lib', 'lua', '%d.%d' % self.version[:2])
+ return os.path.join('lib', 'lua', self.version.up_to(2))
@property
def lua_share_dir(self):
- return os.path.join('share', 'lua', '%d.%d' % self.version[:2])
+ return os.path.join('share', 'lua', self.version.up_to(2))
def setup_dependent_package(self, module, ext_spec):
"""
@@ -153,5 +159,5 @@ class Lua(Package):
"""
# Lua extension builds can have lua and luarocks executable functions
module.lua = Executable(join_path(self.spec.prefix.bin, 'lua'))
- module.luarocks = Executable(join_path(self.spec.prefix.bin,
- 'luarocks'))
+ module.luarocks = Executable(
+ join_path(self.spec.prefix.bin, 'luarocks'))
diff --git a/var/spack/repos/builtin/packages/luit/package.py b/var/spack/repos/builtin/packages/luit/package.py
new file mode 100644
index 0000000000..54fd740bdc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/luit/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Luit(Package):
+ """Luit is a filter that can be run between an arbitrary application and
+ a UTF-8 terminal emulator such as xterm. It will convert application
+ output from the locale's encoding into UTF-8, and convert terminal
+ input from UTF-8 into the locale's encoding."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/luit"
+ url = "https://www.x.org/archive/individual/app/luit-1.1.1.tar.gz"
+
+ version('1.1.1', '04128a52f68c05129f709196819ddad3')
+
+ depends_on('libfontenc')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix),
+ # see http://www.linuxquestions.org/questions/linux-from-scratch-13/can't-compile-luit-xorg-applications-4175476308/ # noqa
+ 'CFLAGS=-U_XOPEN_SOURCE -D_XOPEN_SOURCE=600')
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/lulesh/package.py b/var/spack/repos/builtin/packages/lulesh/package.py
new file mode 100644
index 0000000000..e880d4fa14
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lulesh/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Lulesh(Package):
+ """Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH)
+ """
+
+ homepage = "https://codesign.llnl.gov/lulesh.php"
+ url = "https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz"
+
+ version("2.0.3", "336644a8750f71c7c6b9d2960976e7aa")
+
+ patch("remove_defaults.patch")
+
+ variant('mpip', default=False)
+
+ depends_on("mpi", type="build")
+ depends_on("mpip", when="+mpip")
+
+ def install(self, spec, prefix):
+ if '+mpip' in spec:
+ os.environ["LDFLAGS"] = " -lmpiP -ldwarf -lelf"
+
+ if os.uname()[4] == "x86_64":
+ os.environ["LDFLAGS"] += " -lunwind"
+
+ os.environ["CXX"] = spec['mpi'].mpicxx + " -DUSE_MPI=1"
+ os.environ["PREFIX"] = prefix
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch b/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch
new file mode 100644
index 0000000000..36cce25ba1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch
@@ -0,0 +1,60 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,17 +1,9 @@
+ #default build suggestion of MPI + OPENMP with gcc on Livermore machines you might have to change the compiler name
+
+-SHELL = /bin/sh
+ .SUFFIXES: .cc .o
+
+ LULESH_EXEC = lulesh2.0
+
+-MPI_INC = /opt/local/include/openmpi
+-MPI_LIB = /opt/local/lib
+-
+-SERCXX = g++ -DUSE_MPI=0
+-MPICXX = mpig++ -DUSE_MPI=1
+-CXX = $(MPICXX)
+-
+ SOURCES2.0 = \
+ lulesh.cc \
+ lulesh-comm.cc \
+@@ -20,28 +12,6 @@
+ lulesh-init.cc
+ OBJECTS2.0 = $(SOURCES2.0:.cc=.o)
+
+-#Default build suggestions with OpenMP for g++
+-CXXFLAGS = -g -O3 -fopenmp -I. -Wall
+-LDFLAGS = -g -O3 -fopenmp
+-
+-#Below are reasonable default flags for a serial build
+-#CXXFLAGS = -g -O3 -I. -Wall
+-#LDFLAGS = -g -O3
+-
+-#common places you might find silo on the Livermore machines.
+-#SILO_INCDIR = /opt/local/include
+-#SILO_LIBDIR = /opt/local/lib
+-#SILO_INCDIR = ./silo/4.9/1.8.10.1/include
+-#SILO_LIBDIR = ./silo/4.9/1.8.10.1/lib
+-
+-#If you do not have silo and visit you can get them at:
+-#silo: https://wci.llnl.gov/codes/silo/downloads.html
+-#visit: https://wci.llnl.gov/codes/visit/download.html
+-
+-#below is and example of how to make with silo, hdf5 to get vizulization by default all this is turned off. All paths are Livermore specific.
+-#CXXFLAGS = -g -DVIZ_MESH -I${SILO_INCDIR} -Wall -Wno-pragmas
+-#LDFLAGS = -g -L${SILO_LIBDIR} -Wl,-rpath -Wl,${SILO_LIBDIR} -lsiloh5 -lhdf5
+-
+ .cc.o: lulesh.h
+ @echo "Building $<"
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+@@ -56,6 +26,7 @@
+ /bin/rm -f *.o *~ $(OBJECTS) $(LULESH_EXEC)
+ /bin/rm -rf *.dSYM
+
+-tar: clean
+- cd .. ; tar cvf lulesh-2.0.tar LULESH-2.0 ; mv lulesh-2.0.tar LULESH-2.0
+-
++install: lulesh2.0
++ @echo "Installing"
++ mkdir -p $(PREFIX)/bin
++ install --mode=755 lulesh2.0 $(PREFIX)/bin/
diff --git a/var/spack/repos/builtin/packages/lwgrp/package.py b/var/spack/repos/builtin/packages/lwgrp/package.py
index 471098c873..9322d69b9b 100644
--- a/var/spack/repos/builtin/packages/lwgrp/package.py
+++ b/var/spack/repos/builtin/packages/lwgrp/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Lwgrp(Package):
"""Thie light-weight group library provides process group
representations using O(log N) space and time."""
diff --git a/var/spack/repos/builtin/packages/lwm2/package.py b/var/spack/repos/builtin/packages/lwm2/package.py
index 340474b47e..063204b84a 100644
--- a/var/spack/repos/builtin/packages/lwm2/package.py
+++ b/var/spack/repos/builtin/packages/lwm2/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Lwm2(Package):
"""LWM2: Light Weight Measurement Module. This is a PMPI module
that can collect a number of time-sliced MPI and POSIX I/O
diff --git a/var/spack/repos/builtin/packages/lz4/package.py b/var/spack/repos/builtin/packages/lz4/package.py
new file mode 100644
index 0000000000..de7e566e70
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lz4/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lz4(Package):
+ """LZ4 is lossless compression algorithm, providing compression speed
+ at 400 MB/s per core, scalable with multi-cores CPU. It also features
+ an extremely fast decoder, with speed in multiple GB/s per core,
+ typically reaching RAM speed limits on multi-core systems."""
+
+ homepage = "http://cyan4973.github.io/lz4/"
+ url = "https://github.com/Cyan4973/lz4/archive/r131.tar.gz"
+
+ version('131', '42b09fab42331da9d3fb33bd5c560de9')
+
+ # depends_on('valgrind', type='test')
+
+ def install(self, spec, prefix):
+ make()
+ if self.run_tests:
+ make('test') # requires valgrind to be installed
+ make('install', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/lzma/package.py b/var/spack/repos/builtin/packages/lzma/package.py
new file mode 100644
index 0000000000..3eb97a2d9f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lzma/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lzma(AutotoolsPackage):
+ """LZMA Utils are legacy data compression software with high compression
+ ratio. LZMA Utils are no longer developed, although critical bugs may be
+ fixed as long as fixing them doesn't require huge changes to the code.
+
+ Users of LZMA Utils should move to XZ Utils. XZ Utils support the legacy
+ .lzma format used by LZMA Utils, and can also emulate the command line
+ tools of LZMA Utils. This should make transition from LZMA Utils to XZ
+ Utils relatively easy."""
+
+ homepage = "http://tukaani.org/lzma/"
+ url = "http://tukaani.org/lzma/lzma-4.32.7.tar.gz"
+
+ version('4.32.7', '2a748b77a2f8c3cbc322dbd0b4c9d06a')
diff --git a/var/spack/repos/builtin/packages/lzo/package.py b/var/spack/repos/builtin/packages/lzo/package.py
new file mode 100644
index 0000000000..e9c98842f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lzo/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Lzo(AutotoolsPackage):
+ """Real-time data compression library"""
+
+ homepage = 'https://www.oberhumer.com/opensource/lzo/'
+ url = 'http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz'
+
+ version('2.09', 'c7ffc9a103afe2d1bba0b015e7aa887f')
+ version('2.08', 'fcec64c26a0f4f4901468f360029678f')
+ version('2.07', '4011935e95171e78ad4894f7335c982a')
+ version('2.06', '95380bd4081f85ef08c5209f4107e9f8')
+ version('2.05', 'c67cda5fa191bab761c7cb06fe091e36')
+
+ def configure_args(self):
+ return [
+ '--disable-dependency-tracking',
+ '--enable-shared'
+ ]
diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py
index dcb306dcd3..ebfbc28612 100644
--- a/var/spack/repos/builtin/packages/m4/package.py
+++ b/var/spack/repos/builtin/packages/m4/package.py
@@ -24,8 +24,10 @@
##############################################################################
from spack import *
-class M4(Package):
+
+class M4(AutotoolsPackage):
"""GNU M4 is an implementation of the traditional Unix macro processor."""
+
homepage = "https://www.gnu.org/software/m4/m4.html"
url = "ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz"
@@ -33,17 +35,25 @@ class M4(Package):
patch('pgi.patch', when='@1.4.17')
- variant('sigsegv', default=True, description="Build the libsigsegv dependency")
+ variant('sigsegv', default=True,
+ description="Build the libsigsegv dependency")
depends_on('libsigsegv', when='+sigsegv')
- def install(self, spec, prefix):
- configure_args = []
- if 'libsigsegv' in spec:
- configure_args.append('--with-libsigsegv-prefix=%s' % spec['libsigsegv'].prefix)
+ def configure_args(self):
+ spec = self.spec
+ args = ['--enable-c++']
+
+ if '+sigsegv' in spec:
+ args.append('--with-libsigsegv-prefix={0}'.format(
+ spec['libsigsegv'].prefix))
else:
- configure_args.append('--without-libsigsegv-prefix')
+ args.append('--without-libsigsegv-prefix')
+
+ # http://lists.gnu.org/archive/html/bug-m4/2016-09/msg00002.html
+ arch = spec.architecture
+ if (arch.platform == 'darwin' and arch.platform_os == 'sierra' and
+ '%gcc' in spec):
+ args.append('ac_cv_type_struct_sched_param=yes')
- configure("--prefix=%s" % prefix, *configure_args)
- make()
- make("install")
+ return args
diff --git a/var/spack/repos/builtin/packages/mafft/package.py b/var/spack/repos/builtin/packages/mafft/package.py
new file mode 100644
index 0000000000..131b8c58f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mafft/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mafft(Package):
+ """MAFFT is a multiple sequence alignment program for unix-like
+ operating systems. It offers a range of multiple alignment
+ methods, L-INS-i (accurate; for alignment of <~200 sequences),
+ FFT-NS-2 (fast; for alignment of <~30,000 sequences), etc."""
+
+ homepage = "http://mafft.cbrc.jp/alignment/software/index.html"
+ url = "http://mafft.cbrc.jp/alignment/software/mafft-7.221-with-extensions-src.tgz"
+
+ version('7.221', 'b1aad911e51024d631722a2e061ba215')
+
+ def install(self, spec, prefix):
+ with working_dir('core'):
+ make('PREFIX=%s' % prefix)
+ make('PREFIX=%s' % prefix, 'install')
diff --git a/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch b/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch
new file mode 100644
index 0000000000..e2e2a5d1ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch
@@ -0,0 +1,5 @@
+--- a/tools/xml2mv.py 2016-06-27 17:49:27.000000000 +0200
++++ a/tools/xml2mv.py 2016-09-13 16:25:17.246960456 +0200
+@@ -1 +1 @@
+-#!/usr/bin/python
++#!/usr/bin/env python
diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py
new file mode 100644
index 0000000000..cd793ae051
--- /dev/null
+++ b/var/spack/repos/builtin/packages/magics/package.py
@@ -0,0 +1,115 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Magics(Package):
+ """Magics is the latest generation of the ECMWF's Meteorological plotting
+ software MAGICS. Although completely redesigned in C++, it is intended
+ to be as backwards-compatible as possible with the Fortran interface."""
+
+ homepage = "https://software.ecmwf.int/wiki/display/MAGP/Magics"
+ url = "https://software.ecmwf.int/wiki/download/attachments/3473464/Magics-2.29.0-Source.tar.gz"
+
+ # Maintainers of Magics do not keep tarballs of minor releases. Once the
+ # next minor released is published the previous one becomes unavailable.
+ # That is why the preferred version is the latest stable one.
+ version('2.29.4', '91c561f413316fb665b3bb563f3878d1')
+ version('2.29.0', 'db20a4d3c51a2da5657c31ae3de59709', preferred=True)
+
+ # The patch changes the hardcoded path to python in shebang to enable the
+ # usage of the first python installation that appears in $PATH
+ patch('no_hardcoded_python.patch')
+
+ # The patch reorders includes and adds namespaces where necessary to
+ # resolve ambiguity of invocations of isnan and isinf functions. The
+ # patch is not needed since the version 2.29.1
+ patch('resolve_isnan_ambiguity.patch', when='@2.29.0')
+
+ variant('bufr', default=False, description='Enable BUFR support')
+ variant('netcdf', default=False, description='Enable NetCDF support')
+ variant('cairo', default=True, description='Enable cairo support[png/jpeg]')
+ variant('metview', default=False, description='Enable metview support')
+ variant('qt', default=False, description='Enable metview support with qt')
+
+ depends_on('cmake', type='build')
+ depends_on('pkg-config', type='build')
+
+ # Currently python is only necessary to run
+ # building preprocessing scripts.
+ depends_on('python', type='build')
+ depends_on('grib-api')
+ depends_on('proj')
+ depends_on('boost')
+ depends_on('expat')
+ depends_on('pango', when='+cairo')
+ depends_on('netcdf-cxx', when='+netcdf')
+ depends_on('libemos', when='+bufr')
+ depends_on('qt', when='+metview+qt')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+ options.append('-DENABLE_ODB=OFF')
+ options.append('-DENABLE_PYTHON=OFF')
+ options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
+ options.append('-DPROJ4_PATH=%s' % spec['proj'].prefix)
+ options.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
+ options.append('-DENABLE_TESTS=OFF')
+
+ if '+bufr' in spec:
+ options.append('-DENABLE_BUFR=ON')
+ options.append('-DLIBEMOS_PATH=%s' % spec['libemos'].prefix)
+ else:
+ options.append('-DENABLE_BUFR=OFF')
+
+ if '+netcdf' in spec:
+ options.append('-DENABLE_NETCDF=ON')
+ options.append('-DNETCDF_PATH=%s' % spec['netcdf-cxx'].prefix)
+ else:
+ options.append('-DENABLE_NETCDF=OFF')
+
+ if '+cairo' in spec:
+ options.append('-DENABLE_CAIRO=ON')
+ else:
+ options.append('-DENABLE_CAIRO=OFF')
+
+ if '+metview' in spec:
+ if '+qt' in spec:
+ options.append('-DENABLE_METVIEW=ON')
+ if spec['qt'].version.up_to(1) == '5':
+ options.append('-DENABLE_QT5=ON')
+ else:
+ options.append('-DENABLE_METVIEW_NO_QT=ON')
+ else:
+ options.append('-DENABLE_METVIEW=OFF')
+
+ if (self.compiler.f77 is None) or (self.compiler.fc is None):
+ options.append('-DENABLE_FORTRAN=OFF')
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch b/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch
new file mode 100644
index 0000000000..54b96ae88e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch
@@ -0,0 +1,73 @@
+--- a/src/common/Polyline.cc 2016-04-28 14:38:09.000000000 +0200
++++ b/src/common/Polyline.cc 2016-09-14 13:31:35.784617803 +0200
+@@ -31,2 +30,0 @@
+-#include "TeCoord2D.h"
+-#include "TeGeometryAlgorithms.h"
+--- a/src/decoders/GribRegularInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
++++ b/src/decoders/GribRegularInterpretor.cc 2016-09-14 13:43:41.673614590 +0200
+@@ -2083,2 +2083,2 @@
+- if (isnan(val1)) {
+- if (isnan(val2)) {
++ if (std::isnan(val1)) {
++ if (std::isnan(val2)) {
+@@ -2090 +2090 @@
+- if (isnan(val2)) {
++ if (std::isnan(val2)) {
+@@ -2101 +2101 @@
+- if (isnan(val) || isinf(val) || isinf(-val)) {
++ if (std::isnan(val) || std::isinf(val) || std::isinf(-val)) {
+@@ -2105 +2105 @@
+- if (isnan(val))
++ if (std::isnan(val))
+--- a/src/decoders/GribSatelliteInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
++++ b/src/decoders/GribSatelliteInterpretor.cc 2016-09-14 13:48:55.243699910 +0200
+@@ -33,5 +32,0 @@
+-#include "TeProjection.h"
+-#include "TeDataTypes.h"
+-#include "TeRasterParams.h"
+-#include "TeDecoderMemory.h"
+-#include "TeRasterRemap.h"
+--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
++++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-09-14 13:52:37.481201085 +0200
+@@ -93 +93 @@
+- if ( !isnan(*d) ) {
++ if ( !std::isnan(*d) ) {
+--- a/src/decoders/NetcdfOrcaInterpretor.cc 2016-04-28 14:38:09.000000000 +0200
++++ b/src/decoders/NetcdfOrcaInterpretor.cc 2016-09-14 13:51:16.248650570 +0200
+@@ -210,2 +210,2 @@
+- if ( isnan(val1) ) {
+- if ( isnan(val2) ) {
++ if ( std::isnan(val1) ) {
++ if ( std::isnan(val2) ) {
+@@ -218 +218 @@
+- if ( isnan(val2) ) {
++ if ( std::isnan(val2) ) {
+@@ -226 +226 @@
+- if (isnan(val) || isinf(val) || isinf(-val) ) {
++ if (std::isnan(val) || std::isinf(val) || std::isinf(-val) ) {
+@@ -230 +230 @@
+- if (isnan(val) ) val = missing;
++ if (std::isnan(val) ) val = missing;
+@@ -296 +296 @@
+- if (isnan(value) )
++ if (std::isnan(value) )
+--- a/src/terralib/kernel/TeCentroid.cpp 2016-04-28 14:38:09.000000000 +0200
++++ b/src/terralib/kernel/TeCentroid.cpp 2016-09-14 14:17:31.675996554 +0200
+@@ -23,0 +24,2 @@
++#include "TeGeometryAlgorithms.h"
++
+@@ -30 +31,0 @@
+-#include "TeGeometryAlgorithms.h"
+--- a/src/terralib/kernel/TeDatabase.h 2014-11-07 17:39:24.000000000 +0100
++++ b/src/terralib/kernel/TeDatabase.h 2016-09-14 14:20:01.041100590 +0200
+@@ -33,0 +34 @@
++#include "TeGeometry.h"
+@@ -38 +38,0 @@
+-#include "TeGeometry.h"
+--- a/src/terralib/kernel/TeOverlayUtils.h 2014-11-07 17:39:24.000000000 +0100
++++ b/src/terralib/kernel/TeOverlayUtils.h 2016-09-14 14:21:51.649920405 +0200
+@@ -37,0 +38,2 @@
++#include "TeGeometry.h"
++
+@@ -44 +45,0 @@
+-#include "TeGeometry.h"
diff --git a/var/spack/repos/builtin/packages/makedepend/package.py b/var/spack/repos/builtin/packages/makedepend/package.py
new file mode 100644
index 0000000000..5675793abc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/makedepend/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Makedepend(Package):
+ """makedepend - create dependencies in makefiles."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/util/makedepend"
+ url = "https://www.x.org/archive/individual/util/makedepend-1.0.5.tar.gz"
+
+ version('1.0.5', 'efb2d7c7e22840947863efaedc175747')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py
new file mode 100644
index 0000000000..d9df200d02
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mariadb/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mariadb(Package):
+ """MariaDB turns data into structured information in a wide array of
+ applications, ranging from banking to websites. It is an enhanced, drop-in
+ replacement for MySQL. MariaDB is used because it is fast, scalable and
+ robust, with a rich ecosystem of storage engines, plugins and many other
+ tools make it very versatile for a wide variety of use cases."""
+
+ homepage = "https://mariadb.org/about/"
+ url = "https://downloads.mariadb.org/f/mariadb-10.1.14/source/mariadb-10.1.14.tar.gz"
+
+ version('10.1.14', '294925531e0fd2f0461e3894496a5adc')
+ version('5.5.49', '67b5a499a5f158b2a586e6e3bfb4f304')
+
+ variant('nonblocking', default=True, description='Allow non blocking '
+ 'operations in the mariadb client library.')
+
+ depends_on('boost')
+ depends_on('cmake')
+ depends_on('jemalloc')
+ depends_on('libaio')
+ depends_on('libedit')
+ depends_on('libevent', when='+nonblocking')
+ depends_on('ncurses')
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+
+ cmake('..', *std_cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/matio/package.py b/var/spack/repos/builtin/packages/matio/package.py
index c141f7e8af..a33b23a4e9 100644
--- a/var/spack/repos/builtin/packages/matio/package.py
+++ b/var/spack/repos/builtin/packages/matio/package.py
@@ -25,15 +25,26 @@
from spack import *
-class Matio(Package):
+class Matio(AutotoolsPackage):
"""matio is an C library for reading and writing Matlab MAT files"""
homepage = "http://sourceforge.net/projects/matio/"
- url = "http://downloads.sourceforge.net/project/matio/matio/1.5.2/matio-1.5.2.tar.gz"
+ url = "http://downloads.sourceforge.net/project/matio/matio/1.5.9/matio-1.5.9.tar.gz"
+ version('1.5.9', 'aab5b4219a3c0262afe7eeb7bdd2f463')
version('1.5.2', '85b007b99916c63791f28398f6a4c6f1')
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ variant("zlib", default=True,
+ description='support for compressed mat files')
+ variant("hdf5", default=True,
+ description='support for version 7.3 mat files via hdf5')
- make()
- make("install")
+ depends_on("zlib", when="+zlib")
+ depends_on("hdf5", when="+hdf5")
+
+ def configure_args(self):
+ args = []
+ if '+zlib' in self.spec:
+ args.append("--with-zlib=%s" % self.spec['zlib'].prefix)
+ if '+hdf5' in self.spec:
+ args.append("--with-hdf5=%s" % self.spec['hdf5'].prefix)
+ return args
diff --git a/var/spack/repos/builtin/packages/maven/package.py b/var/spack/repos/builtin/packages/maven/package.py
new file mode 100644
index 0000000000..c4e0a1d0a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maven/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+
+
+class Maven(Package):
+ """Apache Maven is a software project management and comprehension tool."""
+
+ homepage = "https://maven.apache.org/index.html"
+ url = "http://www.gtlib.gatech.edu/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz"
+
+ version('3.3.9', '516923b3955b6035ba6b0a5b031fbd8b')
+
+ depends_on('jdk')
+
+ def install(self, spec, prefix):
+ # install pre-built distribution
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py
index ae34d25691..493ea59f0b 100644
--- a/var/spack/repos/builtin/packages/mbedtls/package.py
+++ b/var/spack/repos/builtin/packages/mbedtls/package.py
@@ -24,20 +24,25 @@
##############################################################################
from spack import *
+
class Mbedtls(Package):
- """
- mbed TLS (formerly known as PolarSSL) makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
+ """mbed TLS (formerly known as PolarSSL) makes it trivially easy for
+ developers to include cryptographic and SSL/TLS capabilities in
+ their (embedded) products, facilitating this functionality with a
+ minimal coding footprint.
+
"""
homepage = "https://tls.mbed.org"
url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz"
- version('2.2.1' , '73a38f96898d6d03e32f55dd9f9a67be')
- version('2.2.0' , 'eaf4586c1ef93ae872e606b6c1203942')
- version('2.1.4' , '40cdf67b6c6d92c9cbcfd552d39ea3ae')
- version('2.1.3' , '7eb4cf1dfa68578a2c8dbd0b6fa752dd')
+ version('2.3.0', '98158e1160a0825a3e8db38881a177a0')
+ version('2.2.1', '73a38f96898d6d03e32f55dd9f9a67be')
+ version('2.2.0', 'eaf4586c1ef93ae872e606b6c1203942')
+ version('2.1.4', '40cdf67b6c6d92c9cbcfd552d39ea3ae')
+ version('2.1.3', '7eb4cf1dfa68578a2c8dbd0b6fa752dd')
version('1.3.16', '4144d7320c691f721aeb9e67a1bc38e0')
- depends_on('cmake')
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake('.', *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/meep/package.py b/var/spack/repos/builtin/packages/meep/package.py
new file mode 100644
index 0000000000..2c1018e711
--- /dev/null
+++ b/var/spack/repos/builtin/packages/meep/package.py
@@ -0,0 +1,109 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Meep(Package):
+ """Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation
+ software package developed at MIT to model electromagnetic systems."""
+
+ homepage = "http://ab-initio.mit.edu/wiki/index.php/Meep"
+
+ version('1.3', '18a5b9e18008627a0411087e0bb60db5')
+ version('1.2.1', '9be2e743c3a832ae922de9d955d016c5')
+ version('1.1.1', '415e0cd312b6caa22b5dd612490e1ccf')
+
+ variant('blas', default=True, description='Enable BLAS support')
+ variant('lapack', default=True, description='Enable LAPACK support')
+ variant('harminv', default=True, description='Enable Harminv support')
+ variant('guile', default=True, description='Enable Guilde support')
+ variant('libctl', default=True, description='Enable libctl support')
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('hdf5', default=True, description='Enable HDF5 support')
+ variant('gsl', default=True, description='Enable GSL support')
+
+ depends_on('blas', when='+blas')
+ depends_on('lapack', when='+lapack')
+ depends_on('harminv', when='+harminv')
+ depends_on('guile', when='+guile')
+ depends_on('libctl@3.2:', when='+libctl')
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5~mpi', when='+hdf5~mpi')
+ depends_on('hdf5+mpi', when='+hdf5+mpi')
+ depends_on('gsl', when='+gsl')
+
+ def url_for_version(self, version):
+ base_url = "http://ab-initio.mit.edu/meep"
+ if version > Version('1.1.1'):
+ return "{0}/meep-{1}.tar.gz".format(base_url, version)
+ else:
+ return "{0}/old/meep-{1}.tar.gz".format(base_url, version)
+
+ def install(self, spec, prefix):
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--enable-shared'
+ ]
+
+ if '+blas' in spec:
+ config_args.append('--with-blas={0}'.format(
+ spec['blas'].prefix.lib))
+ else:
+ config_args.append('--without-blas')
+
+ if '+lapack' in spec:
+ config_args.append('--with-lapack={0}'.format(
+ spec['lapack'].prefix.lib))
+ else:
+ config_args.append('--without-lapack')
+
+ if '+libctl' in spec:
+ config_args.append('--with-libctl={0}'.format(
+ join_path(spec['libctl'].prefix.share, 'libctl')))
+ else:
+ config_args.append('--without-libctl')
+
+ if '+mpi' in spec:
+ config_args.append('--with-mpi')
+ else:
+ config_args.append('--without-mpi')
+
+ if '+hdf5' in spec:
+ config_args.append('--with-hdf5')
+ else:
+ config_args.append('--without-hdf5')
+
+ configure(*config_args)
+
+ make()
+
+ # aniso_disp test fails unless installed with harminv
+ # near2far test fails unless installed with gsl
+ if self.run_tests and '+harminv' in spec and '+gsl' in spec:
+ # Most tests fail when run in parallel
+ # 2D_convergence tests still fails to converge for unknown reasons
+ make('check', parallel=False)
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/memaxes/package.py b/var/spack/repos/builtin/packages/memaxes/package.py
index 135384e2f7..ffad167788 100644
--- a/var/spack/repos/builtin/packages/memaxes/package.py
+++ b/var/spack/repos/builtin/packages/memaxes/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Memaxes(Package):
"""MemAxes is a visualizer for sampled memory trace data."""
@@ -32,7 +33,7 @@ class Memaxes(Package):
version('0.5', '5874f3fda9fd2d313c0ff9684f915ab5',
url='https://github.com/llnl/MemAxes/archive/v0.5.tar.gz')
- depends_on("cmake@2.8.9:")
+ depends_on('cmake@2.8.9:', type='build')
depends_on("qt@5:")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py
new file mode 100644
index 0000000000..ea77953f15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mercurial/package.py
@@ -0,0 +1,69 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import llnl.util.tty as tty
+import os
+
+
+class Mercurial(Package):
+ """Mercurial is a free, distributed source control management tool."""
+
+ homepage = "https://www.mercurial-scm.org"
+ url = "https://www.mercurial-scm.org/release/mercurial-3.9.tar.gz"
+
+ version('3.9.1', '3759dd10edb8c1a6dfb8ff0ce82658ce')
+ version('3.9', 'e2b355da744e94747daae3a5339d28a0')
+ version('3.8.4', 'cec2c3db688cb87142809089c6ae13e9')
+ version('3.8.3', '97aced7018614eeccc9621a3dea35fda')
+ version('3.8.2', 'c38daa0cbe264fc621dc3bb05933b0b3')
+ version('3.8.1', '172a8c588adca12308c2aca16608d7f4')
+
+ extends('python')
+ depends_on('python@2.6:2.8')
+ depends_on('py-docutils', type='build')
+
+ def install(self, spec, prefix):
+ make('install', 'PREFIX={0}'.format(prefix))
+
+ # Configuration of HTTPS certificate authorities
+ # https://www.mercurial-scm.org/wiki/CACertificates
+ hgrc_filename = join_path(prefix.etc, 'mercurial', 'hgrc')
+ mkdirp(os.path.dirname(hgrc_filename))
+
+ with open(hgrc_filename, 'w') as hgrc:
+ if os.path.exists('/etc/ssl/certs/ca-certificates.crt'):
+ # Debian/Ubuntu/Gentoo/Arch Linux
+ hgrc.write('[web]\ncacerts = /etc/ssl/certs/ca-certificates.crt') # noqa
+ elif os.path.exists('/etc/pki/tls/certs/ca-bundle.crt'):
+ # Fedora/RHEL/CentOS
+ hgrc.write('[web]\ncacerts = /etc/pki/tls/certs/ca-bundle.crt')
+ elif os.path.exists('/etc/ssl/ca-bundle.pem'):
+ # openSUSE/SLE
+ hgrc.write('[web]\ncacerts = /etc/ssl/ca-bundle.pem')
+ else:
+ tty.warn('CA certificate not found. You may not be able to '
+ 'connect to an HTTPS server. If your CA certificate '
+ 'is in a non-standard location, you should add it to '
+ '{0}'.format(hgrc_filename))
diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py
index bd9c9eec4a..f19bb466fd 100644
--- a/var/spack/repos/builtin/packages/mesa/package.py
+++ b/var/spack/repos/builtin/packages/mesa/package.py
@@ -24,35 +24,44 @@
##############################################################################
from spack import *
+
class Mesa(Package):
"""Mesa is an open-source implementation of the OpenGL
specification - a system for rendering interactive 3D graphics."""
homepage = "http://www.mesa3d.org"
- url = "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/8.0.5/MesaLib-8.0.5.tar.gz"
- # url = "ftp://ftp.freedesktop.org/pub/mesa/10.4.4/MesaLib-10.4.4.tar.gz"
+ url = "ftp://ftp.freedesktop.org/pub/mesa/12.0.3/mesa-12.0.3.tar.gz"
- # version('10.4.4', '8d863a3c209bf5116b2babfccccc68ce')
- version('8.0.5', 'cda5d101f43b8784fa60bdeaca4056f2')
+ version('12.0.3', '60c5f9897ddc38b46f8144c7366e84ad')
- # mesa 7.x, 8.x, 9.x
- depends_on("libdrm@2.4.33")
- depends_on("llvm@3.0")
- depends_on("libxml2+python")
+ # General dependencies
+ depends_on('python@2.6.4:')
+ depends_on('py-mako@0.3.4:')
+ depends_on('flex@2.5.35:', type='build')
+ depends_on('bison@2.4.1:', type='build')
- # patch("llvm-fixes.patch") # using newer llvm
+ # For DRI and hardware acceleration
+ depends_on('libpthread-stubs')
+ depends_on('libdrm')
+ depends_on('openssl')
+ depends_on('libxcb@1.9.3:')
+ depends_on('libxshmfence@1.1:')
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxdamage')
+ depends_on('libxfixes')
- # mesa 10.x
- # depends_on("py-mako")
- # depends_on("flex")
- # depends_on("bison")
- # depends_on("dri2proto")
- # depends_on("libxcb")
- # depends_on("libxshmfence")
+ depends_on('glproto@1.4.14:', type='build')
+ depends_on('dri2proto@2.6:', type='build')
+ depends_on('dri3proto@1.0:', type='build')
+ depends_on('presentproto@1.0:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ # TODO: Add package for systemd, provides libudev
+ # Using the system package manager to install systemd didn't work for me
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py
index 061179b78e..b66677288c 100644
--- a/var/spack/repos/builtin/packages/metis/package.py
+++ b/var/spack/repos/builtin/packages/metis/package.py
@@ -24,55 +24,86 @@
##############################################################################
from spack import *
-import glob, sys, os
+import glob
+import sys
+import os
+
class Metis(Package):
- """
- METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill
- reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel
- recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.
- """
+ """METIS is a set of serial programs for partitioning graphs, partitioning
+ finite element meshes, and producing fill reducing orderings for sparse
+ matrices. The algorithms implemented in METIS are based on the
+ multilevel recursive-bisection, multilevel k-way, and multi-constraint
+ partitioning schemes."""
- homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview'
- url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
+ homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
+ base_url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis"
- version('5.1.0', '5465e67079419a69e0116de24fce58fe',
- url='http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz')
- version('4.0.3', '5efa35de80703c1b2c4d0de080fafbcf4e0d363a21149a1ad2f96e0144841a55',
- url='http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.3.tar.gz')
+ version('5.1.0', '5465e67079419a69e0116de24fce58fe')
+ version('5.0.2', 'acb521a4e8c2e6dd559a7f9abd0468c5')
+ version('4.0.3', 'd3848b454532ef18dc83e4fb160d1e10')
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds the library in debug mode')
- variant('gdb', default=False, description='Enables gdb support')
+ variant('shared', default=True, description='Enables the build of shared libraries.')
+ variant('debug', default=False, description='Builds the library in debug mode.')
+ variant('gdb', default=False, description='Enables gdb support.')
- variant('idx64', default=False, description='Use int64_t as default index type')
- variant('double', default=False, description='Use double precision floating point types')
+ variant('int64', default=False, description='Sets the bit width of METIS\'s index type to 64.')
+ variant('real64', default=False, description='Sets the bit width of METIS\'s real type to 64.')
- depends_on('cmake @2.8:', when='@5:') # build-time dependency
- depends_on('gdb', when='+gdb')
+ depends_on('cmake@2.8:', when='@5:', type='build')
patch('install_gklib_defs_rename.patch', when='@5:')
+ def url_for_version(self, version):
+ verdir = 'OLD/' if version < Version('4.0.3') else ''
+ return '%s/%smetis-%s.tar.gz' % (Metis.base_url, verdir, version)
- @when('@4:4.0.3')
- def install(self, spec, prefix):
+ @when('@:4')
+ def patch(self):
+ pass
- if '+gdb' in spec:
- raise InstallError('gdb support not implemented in METIS 4!')
- if '+idx64' in spec:
- raise InstallError('idx64 option not implemented in METIS 4!')
- if '+double' in spec:
- raise InstallError('double option not implemented for METIS 4!')
+ @when('@5:')
+ def patch(self):
+ source_path = self.stage.source_path
+ metis_header = FileFilter(join_path(source_path, 'include', 'metis.h'))
+
+ metis_header.filter(
+ r'(\b)(IDXTYPEWIDTH )(\d+)(\b)',
+ r'\1\2{0}\4'.format('64' if '+int64' in self.spec else '32'),
+ )
+ metis_header.filter(
+ r'(\b)(REALTYPEWIDTH )(\d+)(\b)',
+ r'\1\2{0}\4'.format('64' if '+real64' in self.spec else '32'),
+ )
+
+ # Make clang 7.3 happy.
+ # Prevents "ld: section __DATA/__thread_bss extends beyond end of file"
+ # See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059
+ # and https://github.com/Homebrew/homebrew-science/blob/master/metis.rb
+ if self.spec.satisfies('%clang@7.3.0'):
+ filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24',
+ join_path(source_path, 'GKlib', 'error.c'))
+
+ @when('@:4')
+ def install(self, spec, prefix):
+ # Process library spec and options
+ if any('+{0}'.format(v) in spec for v in ['gdb', 'int64', 'real64']):
+ raise InstallError('METIS@:4 does not support the following '
+ 'variants: gdb, int64, real64.')
options = ['COPTIONS=-fPIC']
if '+debug' in spec:
options.append('OPTFLAGS=-g -O0')
make(*options)
+ # Compile and install library files
+ ccompile = Executable(self.compiler.cc)
+
mkdir(prefix.bin)
- for x in ('pmetis', 'kmetis', 'oemetis', 'onmetis', 'partnmesh',
- 'partdmesh', 'mesh2nodal', 'mesh2dual', 'graphchk'):
- install(x, prefix.bin)
+ binfiles = ('pmetis', 'kmetis', 'oemetis', 'onmetis', 'partnmesh',
+ 'partdmesh', 'mesh2nodal', 'mesh2dual', 'graphchk')
+ for binfile in binfiles:
+ install(binfile, prefix.bin)
mkdir(prefix.lib)
install('libmetis.a', prefix.lib)
@@ -82,106 +113,110 @@ class Metis(Package):
install(h, prefix.include)
mkdir(prefix.share)
- for f in (join_path(*p)
- for p in (('Programs', 'io.c'),
- ('Test','mtest.c'),
- ('Graphs','4elt.graph'),
- ('Graphs', 'metis.mesh'),
- ('Graphs', 'test.mgraph'))):
- install(f, prefix.share)
+ sharefiles = (('Graphs', '4elt.graph'), ('Graphs', 'metis.mesh'),
+ ('Graphs', 'test.mgraph'))
+ for sharefile in tuple(join_path(*sf) for sf in sharefiles):
+ install(sharefile, prefix.share)
if '+shared' in spec:
+ shared_flags = ['-fPIC', '-shared']
if sys.platform == 'darwin':
- lib_dsuffix = 'dylib'
- load_flag = '-Wl,-all_load'
- no_load_flag = ''
+ shared_suffix = 'dylib'
+ shared_flags.extend(['-Wl,-all_load', 'libmetis.a'])
else:
- lib_dsuffix = 'so'
- load_flag = '-Wl,-whole-archive'
- no_load_flag = '-Wl,-no-whole-archive'
+ shared_suffix = 'so'
+ shared_flags.extend(['-Wl,-whole-archive', 'libmetis.a',
+ '-Wl,-no-whole-archive'])
- os.system(spack_cc + ' -fPIC -shared ' + load_flag +
- ' libmetis.a ' + no_load_flag + ' -o libmetis.' +
- lib_dsuffix)
- install('libmetis.' + lib_dsuffix, prefix.lib)
+ shared_out = '%s/libmetis.%s' % (prefix.lib, shared_suffix)
+ shared_flags.extend(['-o', shared_out])
- # Set up and run tests on installation
- symlink(join_path(prefix.share, 'io.c'), 'io.c')
- symlink(join_path(prefix.share, 'mtest.c'), 'mtest.c')
- os.system(spack_cc + ' -I%s' % prefix.include + ' -c io.c')
- os.system(spack_cc + ' -I%s' % prefix.include +
- ' -L%s' % prefix.lib + ' -lmetis mtest.c io.o -o mtest')
- _4eltgraph = join_path(prefix.share, '4elt.graph')
- test_mgraph = join_path(prefix.share, 'test.mgraph')
- metis_mesh = join_path(prefix.share, 'metis.mesh')
- kmetis = join_path(prefix.bin, 'kmetis')
- os.system('./mtest ' + _4eltgraph)
- os.system(kmetis + ' ' + _4eltgraph + ' 40')
- os.system(join_path(prefix.bin, 'onmetis') + ' ' + _4eltgraph)
- os.system(join_path(prefix.bin, 'pmetis') + ' ' + test_mgraph + ' 2')
- os.system(kmetis + ' ' + test_mgraph + ' 2')
- os.system(kmetis + ' ' + test_mgraph + ' 5')
- os.system(join_path(prefix.bin, 'partnmesh') + metis_mesh + ' 10')
- os.system(join_path(prefix.bin, 'partdmesh') + metis_mesh + ' 10')
- os.system(join_path(prefix.bin, 'mesh2dual') + metis_mesh)
+ ccompile(*shared_flags)
+ # Set up and run tests on installation
+ ccompile('-I%s' % prefix.include, '-L%s' % prefix.lib,
+ '-Wl,-rpath=%s' % (prefix.lib if '+shared' in spec else ''),
+ join_path('Programs', 'io.o'), join_path('Test', 'mtest.c'),
+ '-o', '%s/mtest' % prefix.bin, '-lmetis', '-lm')
+
+ if self.run_tests:
+ test_bin = lambda testname: join_path(prefix.bin, testname)
+ test_graph = lambda graphname: join_path(prefix.share, graphname)
+
+ graph = test_graph('4elt.graph')
+ os.system('%s %s' % (test_bin('mtest'), graph))
+ os.system('%s %s 40' % (test_bin('kmetis'), graph))
+ os.system('%s %s' % (test_bin('onmetis'), graph))
+ graph = test_graph('test.mgraph')
+ os.system('%s %s 2' % (test_bin('pmetis'), graph))
+ os.system('%s %s 2' % (test_bin('kmetis'), graph))
+ os.system('%s %s 5' % (test_bin('kmetis'), graph))
+ graph = test_graph('metis.mesh')
+ os.system('%s %s 10' % (test_bin('partnmesh'), graph))
+ os.system('%s %s 10' % (test_bin('partdmesh'), graph))
+ os.system('%s %s' % (test_bin('mesh2dual'), graph))
+
+ # FIXME: The following code should replace the testing code in the
+ # block above since it causes installs to fail when one or more of
+ # the Metis tests fail, but it currently doesn't work because the
+ # 'mtest', 'onmetis', and 'partnmesh' tests return error codes that
+ # trigger false positives for failure.
+ """
+ Executable(test_bin('mtest'))(test_graph('4elt.graph'))
+ Executable(test_bin('kmetis'))(test_graph('4elt.graph'), '40')
+ Executable(test_bin('onmetis'))(test_graph('4elt.graph'))
+
+ Executable(test_bin('pmetis'))(test_graph('test.mgraph'), '2')
+ Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '2')
+ Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '5')
+
+ Executable(test_bin('partnmesh'))(test_graph('metis.mesh'), '10')
+ Executable(test_bin('partdmesh'))(test_graph('metis.mesh'), '10')
+ Executable(test_bin('mesh2dual'))(test_graph('metis.mesh'))
+ """
@when('@5:')
def install(self, spec, prefix):
-
- options = []
- options.extend(std_cmake_args)
-
- build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path
+ build_directory = join_path(source_directory, 'build')
- options.append('-DGKLIB_PATH:PATH={metis_source}/GKlib'.format(metis_source=source_directory))
+ options = std_cmake_args[:]
+ options.append('-DGKLIB_PATH:PATH=%s/GKlib' % source_directory)
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
if '+shared' in spec:
options.append('-DSHARED:BOOL=ON')
-
if '+debug' in spec:
options.extend(['-DDEBUG:BOOL=ON',
'-DCMAKE_BUILD_TYPE:STRING=Debug'])
-
if '+gdb' in spec:
options.append('-DGDB:BOOL=ON')
- metis_header = join_path(source_directory, 'include', 'metis.h')
-
- if '+idx64' in spec:
- filter_file('IDXTYPEWIDTH 32', 'IDXTYPEWIDTH 64', metis_header)
-
- if '+double' in spec:
- filter_file('REALTYPEWIDTH 32', 'REALTYPEWIDTH 64', metis_header)
-
- # Make clang 7.3 happy.
- # Prevents "ld: section __DATA/__thread_bss extends beyond end of file"
- # See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059
- # Adopted from https://github.com/Homebrew/homebrew-science/blob/master/metis.rb
- if spec.satisfies('%clang@7.3.0'):
- filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24', join_path(source_directory, 'GKlib', 'error.c'))
-
with working_dir(build_directory, create=True):
cmake(source_directory, *options)
make()
- make("install")
- # now run some tests:
- for f in ["4elt", "copter2", "mdual"]:
- graph = join_path(source_directory,'graphs','%s.graph' % f)
- Executable(join_path(prefix.bin,'graphchk'))(graph)
- Executable(join_path(prefix.bin,'gpmetis'))(graph,'2')
- Executable(join_path(prefix.bin,'ndmetis'))(graph)
-
- graph = join_path(source_directory,'graphs','test.mgraph')
- Executable(join_path(prefix.bin,'gpmetis'))(graph,'2')
- graph = join_path(source_directory,'graphs','metis.mesh')
- Executable(join_path(prefix.bin,'mpmetis'))(graph,'2')
+ make('install')
# install GKlib headers, which will be needed for ParMETIS
- GKlib_dist = join_path(prefix.include,'GKlib')
+ GKlib_dist = join_path(prefix.include, 'GKlib')
mkdirp(GKlib_dist)
- fs = glob.glob(join_path(source_directory,'GKlib',"*.h"))
- for f in fs:
- install(f, GKlib_dist)
+ hfiles = glob.glob(join_path(source_directory, 'GKlib', '*.h'))
+ for hfile in hfiles:
+ install(hfile, GKlib_dist)
+
+ if self.run_tests:
+ # FIXME: On some systems, the installed binaries for METIS cannot
+ # be executed without first being read.
+ ls = which('ls')
+ ls('-a', '-l', prefix.bin)
+
+ for f in ['4elt', 'copter2', 'mdual']:
+ graph = join_path(source_directory, 'graphs', '%s.graph' % f)
+ Executable(join_path(prefix.bin, 'graphchk'))(graph)
+ Executable(join_path(prefix.bin, 'gpmetis'))(graph, '2')
+ Executable(join_path(prefix.bin, 'ndmetis'))(graph)
+
+ graph = join_path(source_directory, 'graphs', 'test.mgraph')
+ Executable(join_path(prefix.bin, 'gpmetis'))(graph, '2')
+ graph = join_path(source_directory, 'graphs', 'metis.mesh')
+ Executable(join_path(prefix.bin, 'mpmetis'))(graph, '2')
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index 504efb5e35..45f64cef65 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import glob, string
+
class Mfem(Package):
"""Free, lightweight, scalable C++ library for finite element methods."""
@@ -31,19 +31,26 @@ class Mfem(Package):
homepage = 'http://www.mfem.org'
url = 'https://github.com/mfem/mfem'
+ version('3.2',
+ '2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
+ url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz')
+
+ version('3.1',
+ '841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
+ url='http://goo.gl/xrScXn', extension='.tar.gz')
# version('3.1', git='https://github.com/mfem/mfem.git',
# commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574')
- version('3.1', '841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
- url='http://goo.gl/xrScXn', expand=False)
-
variant('metis', default=False, description='Activate support for metis')
variant('hypre', default=False, description='Activate support for hypre')
variant('suite-sparse', default=False,
description='Activate support for SuiteSparse')
- variant('mpi', default=False, description='Activate support for MPI')
+ variant('mpi', default=True, description='Activate support for MPI')
+ variant('superlu-dist', default=False,
+ description='Activate support for SuperLU_Dist')
variant('lapack', default=False, description='Activate support for LAPACK')
variant('debug', default=False, description='Build debug version')
+ variant('netcdf', default=False, description='Activate NetCDF support')
depends_on('blas', when='+lapack')
depends_on('lapack', when='+lapack')
@@ -60,7 +67,13 @@ class Mfem(Package):
depends_on('blas', when='+suite-sparse')
depends_on('lapack', when='+suite-sparse')
depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:')
- depends_on('cmake', when='^metis@5:')
+ depends_on('cmake', when='^metis@5:', type='build')
+
+ depends_on('superlu-dist', when='@3.2: +superlu-dist')
+
+ depends_on('netcdf', when='@3.2: +netcdf')
+ depends_on('zlib', when='@3.2: +netcdf')
+ depends_on('hdf5', when='@3.2: +netcdf')
def check_variants(self, spec):
if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec):
@@ -69,11 +82,18 @@ class Mfem(Package):
if '+suite-sparse' in spec and ('+metis' not in spec or
'+lapack' not in spec):
raise InstallError('mfem+suite-sparse must be built with ' +
- '+metis and +lapack!')
- if 'metis@5:' in spec and '%clang' in spec and ('^cmake %gcc' not in spec):
+ '+metis and +lapack!')
+ if 'metis@5:' in spec and '%clang' in spec and (
+ '^cmake %gcc' not in spec):
raise InstallError('To work around CMake bug with clang, must ' +
'build mfem with mfem[+variants] %clang ' +
'^cmake %gcc to force CMake to build with gcc')
+ if '@:3.1' in spec and '+superlu-dist' in spec:
+ raise InstallError('MFEM does not support SuperLU_DIST for ' +
+ 'versions 3.1 and earlier')
+ if '@:3.1' in spec and '+netcdf' in spec:
+ raise InstallError('MFEM does not support NetCDF for versions' +
+ '3.1 and earlier')
return
def install(self, spec, prefix):
@@ -82,40 +102,65 @@ class Mfem(Package):
options = ['PREFIX=%s' % prefix]
if '+lapack' in spec:
- lapack_lib = '-L{0} -llapack -L{1} -lblas'.format(
- spec['lapack'].prefix.lib, spec['blas'].prefix.lib)
- options.extend(['MFEM_USE_LAPACK=YES',
- 'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include,
- 'LAPACK_LIB=%s' % lapack_lib])
+ lapack_lib = (spec['lapack'].lapack_libs + spec['blas'].blas_libs).ld_flags # NOQA: ignore=E501
+ options.extend([
+ 'MFEM_USE_LAPACK=YES',
+ 'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include,
+ 'LAPACK_LIB=%s' % lapack_lib])
if '+hypre' in spec:
- options.extend(['HYPRE_DIR=%s' % spec['hypre'].prefix,
- 'HYPRE_OPT=-I%s' % spec['hypre'].prefix.include,
- 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib +
- ' -lHYPRE'])
-
- if '+metis' in spec:
+ options.extend([
+ 'HYPRE_DIR=%s' % spec['hypre'].prefix,
+ 'HYPRE_OPT=-I%s' % spec['hypre'].prefix.include,
+ 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib +
+ ' -lHYPRE'])
+
+ if 'parmetis' in spec:
+ metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib
+ metis_str = 'MFEM_USE_METIS_5=YES'
+ options.extend([metis_str,
+ 'METIS_DIR=%s' % spec['parmetis'].prefix,
+ 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib])
+ elif 'metis' in spec:
metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib
if spec['metis'].satisfies('@5:'):
metis_str = 'MFEM_USE_METIS_5=YES'
else:
metis_str = 'MFEM_USE_METIS_5=NO'
- options.extend([metis_str,
- 'METIS_DIR=%s' % spec['metis'].prefix,
- 'METIS_OPT=-I%s' % spec['metis'].prefix.include,
- 'METIS_LIB=%s' % metis_lib])
-
- if '+mpi' in spec: options.extend(['MFEM_USE_MPI=YES'])
+ options.extend([
+ metis_str,
+ 'METIS_DIR=%s' % spec['metis'].prefix,
+ 'METIS_OPT=-I%s' % spec['metis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib])
+
+ if 'mpi' in spec:
+ options.extend(['MFEM_USE_MPI=YES'])
+
+ if '+superlu-dist' in spec:
+ superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib
+ superlu_lib += ' -lsuperlu_dist'
+ sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include
+ options.extend(['MFEM_USE_SUPERLU=YES',
+ 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix,
+ sl_inc,
+ 'SUPERLU_LIB=%s' % superlu_lib])
if '+suite-sparse' in spec:
ssp = spec['suite-sparse'].prefix
ss_lib = '-L%s' % ssp.lib
- ss_lib += (' -lumfpack -lcholmod -lcolamd -lamd -lcamd' +
- ' -lccolamd -lsuitesparseconfig')
+
+ if '@3.2:' in spec:
+ ss_lib += ' -lklu -lbtf'
+
+ ss_lib += (' -lumfpack -lcholmod -lcolamd' +
+ ' -lamd -lcamd -lccolamd -lsuitesparseconfig')
no_librt_archs = ['darwin-i686', 'darwin-x86_64']
- no_rt = any(map(lambda a: spec.satisfies('='+a), no_librt_archs))
- if not no_rt: ss_lib += ' -lrt'
+ no_rt = any(map(lambda a: spec.satisfies('=' + a),
+ no_librt_archs))
+ if not no_rt:
+ ss_lib += ' -lrt'
ss_lib += (' ' + metis_lib + ' ' + lapack_lib)
options.extend(['MFEM_USE_SUITESPARSE=YES',
@@ -123,25 +168,33 @@ class Mfem(Package):
'SUITESPARSE_OPT=-I%s' % ssp.include,
'SUITESPARSE_LIB=%s' % ss_lib])
- if '+debug' in spec: options.extend(['MFEM_DEBUG=YES'])
-
- # Dirty hack to cope with URL redirect
- tgz_file = string.split(self.url,'/')[-1]
- tar = which('tar')
- tar('xzvf', tgz_file)
- cd(glob.glob('mfem*')[0])
- # End dirty hack to cope with URL redirect
+ if '+netcdf' in spec:
+ np = spec['netcdf'].prefix
+ zp = spec['zlib'].prefix
+ h5p = spec['hdf5'].prefix
+ nlib = '-L%s -lnetcdf ' % np.lib
+ nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib
+ nlib += '-L%s -lz' % zp.lib
+ options.extend(['MFEM_USE_NETCDF=YES',
+ 'NETCDF_DIR=%s' % np,
+ 'HDF5_DIR=%s' % h5p,
+ 'ZLIB_DIR=%s' % zp,
+ 'NETCDF_OPT=-I%s' % np.include,
+ 'NETCDF_LIB=%s' % nlib])
+
+ if '+debug' in spec:
+ options.extend(['MFEM_DEBUG=YES'])
make('config', *options)
make('all')
# Run a small test before installation
- args = ['-m', join_path('data','star.mesh'), '--no-visualization']
+ args = ['-m', join_path('data', 'star.mesh'), '--no-visualization']
if '+mpi' in spec:
Executable(join_path(spec['mpi'].prefix.bin,
'mpirun'))('-np',
'4',
- join_path('examples','ex1p'),
+ join_path('examples', 'ex1p'),
*args)
else:
Executable(join_path('examples', 'ex1'))(*args)
diff --git a/var/spack/repos/builtin/packages/Mitos/package.py b/var/spack/repos/builtin/packages/mitos/package.py
index 83aca3dc6a..d577a1b285 100644
--- a/var/spack/repos/builtin/packages/Mitos/package.py
+++ b/var/spack/repos/builtin/packages/mitos/package.py
@@ -41,6 +41,7 @@ class Mitos(Package):
depends_on('dyninst@8.2.1:')
depends_on('hwloc')
depends_on('mpi')
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
diff --git a/var/spack/repos/builtin/packages/mkfontdir/package.py b/var/spack/repos/builtin/packages/mkfontdir/package.py
new file mode 100644
index 0000000000..15c85b24e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mkfontdir/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mkfontdir(Package):
+ """mkfontdir creates the fonts.dir files needed by the legacy X server
+ core font system. The current implementation is a simple wrapper script
+ around the mkfontscale program, which must be built and installed first."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/mkfontdir"
+ url = "https://www.x.org/archive/individual/app/mkfontdir-1.0.7.tar.gz"
+
+ version('1.0.7', '52a5bc129f3f3ac54e7115608cec3cdc')
+
+ depends_on('mkfontscale', type='run')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/mkfontscale/package.py b/var/spack/repos/builtin/packages/mkfontscale/package.py
new file mode 100644
index 0000000000..4c907831b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mkfontscale/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mkfontscale(Package):
+ """mkfontscale creates the fonts.scale and fonts.dir index files used by the
+ legacy X11 font system."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/mkfontscale"
+ url = "https://www.x.org/archive/individual/app/mkfontscale-1.1.2.tar.gz"
+
+ version('1.1.2', 'fab4e1598b8948c124ec7a9f06d30e5b')
+
+ depends_on('libfontenc')
+ depends_on('freetype')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py
index 893a543e97..b783d7b81b 100644
--- a/var/spack/repos/builtin/packages/moab/package.py
+++ b/var/spack/repos/builtin/packages/moab/package.py
@@ -37,7 +37,7 @@ class Moab(Package):
homepage = "https://bitbucket.org/fathomteam/moab"
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-4.6.3.tar.gz"
- version('4.9.1', 'bcb8bee3e58c076c7f31884db119088e')
+ version('4.9.1', '19cc2189fa266181ad9109b18d0b2ab8')
version('4.9.0', '40695d0a159040683cfa05586ad4a7c2')
version('4.8.2', '1dddd10f162fce3cfffaedc48f6f467d')
@@ -45,6 +45,7 @@ class Moab(Package):
description='Required to enable the ExodusII reader/writer.')
variant('shared', default=True,
description='Enables the build of shared libraries')
+ variant('fortran', default=True, description='Enable Fortran support')
# There are many possible variants for MOAB. Here are examples for
# two of them:
@@ -58,7 +59,8 @@ class Moab(Package):
depends_on('hdf5+mpi')
depends_on('netcdf+mpi', when='+netcdf')
depends_on('parmetis')
- depends_on('trilinos') # looking for zoltan.
+ depends_on('zoltan')
+ depends_on('zoltan~fortran', when='~fortran')
def install(self, spec, prefix):
@@ -70,13 +72,15 @@ class Moab(Package):
'--with-mpi=%s' % spec['mpi'].prefix,
'--with-hdf5=%s' % spec['hdf5'].prefix,
'--with-parmetis=%s' % spec['parmetis'].prefix,
- '--with-zoltan=%s' % spec['trilinos'].prefix,
+ '--with-zoltan=%s' % spec['zoltan'].prefix,
'--disable-vtkMOABReader',
'--without-vtk',
'CXX=%s' % spec['mpi'].mpicxx,
'CC=%s' % spec['mpi'].mpicc,
'FC=%s' % spec['mpi'].mpifc]
+ if '~fortran' in spec:
+ options.append('--disable-fortran')
if '+shared' in spec:
options.append('--enable-shared')
if '+netcdf' in spec:
diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py
index 92eb976f8b..2fe3900981 100644
--- a/var/spack/repos/builtin/packages/mpc/package.py
+++ b/var/spack/repos/builtin/packages/mpc/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpc(Package):
"""Gnu Mpc is a C library for the arithmetic of complex numbers
with arbitrarily high precision and correct rounding of the
@@ -34,12 +35,12 @@ class Mpc(Package):
version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26')
version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3')
- depends_on("gmp")
- depends_on("mpfr")
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
def url_for_version(self, version):
if version < Version("1.0.1"):
- return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version
+ return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version # NOQA
else:
return "ftp://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/mpe2/package.py b/var/spack/repos/builtin/packages/mpe2/package.py
index f69ea2d65b..a129d59949 100644
--- a/var/spack/repos/builtin/packages/mpe2/package.py
+++ b/var/spack/repos/builtin/packages/mpe2/package.py
@@ -24,8 +24,9 @@
##############################################################################
from spack import *
+
class Mpe2(Package):
- """Message Passing Extensions (MPE) -- Parallel, shared X window graphics"""
+ """Message Passing Extensions (MPE): Parallel, shared X window graphics"""
homepage = "http://www.mcs.anl.gov/research/projects/perfvis/software/MPE/"
url = "ftp://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz"
diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py
index ed3926a8ab..4612d03849 100644
--- a/var/spack/repos/builtin/packages/mpfr/package.py
+++ b/var/spack/repos/builtin/packages/mpfr/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpfr(Package):
"""The MPFR library is a C library for multiple-precision
floating-point computations with correct rounding."""
@@ -34,7 +35,7 @@ class Mpfr(Package):
version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138')
version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
- depends_on('gmp')
+ depends_on('gmp') # mpir is a drop-in replacement for this
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/mpibash/package.py b/var/spack/repos/builtin/packages/mpibash/package.py
index b328b98ecf..f3feaaaa42 100644
--- a/var/spack/repos/builtin/packages/mpibash/package.py
+++ b/var/spack/repos/builtin/packages/mpibash/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Mpibash(Package):
"""Parallel scripting right from the Bourne-Again Shell (Bash)"""
homepage = "http://www.ccs3.lanl.gov/~pakin/software/mpibash-4.3.html"
@@ -36,7 +36,7 @@ class Mpibash(Package):
patch('mpibash-4.3.patch', level=1, when='@4.3')
# above patch modifies configure.ac
- depends_on('autoconf')
+ depends_on('autoconf', type='build')
# uses MPI_Exscan which is in MPI-1.2 and later
depends_on('mpi@1.2:')
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index 164d9db541..dd864acbe3 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -23,15 +23,15 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class Mpich(Package):
+class Mpich(AutotoolsPackage):
"""MPICH is a high performance and widely portable implementation of
- the Message Passing Interface (MPI) standard."""
+ the Message Passing Interface (MPI) standard."""
+
homepage = "http://www.mpich.org"
- url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
- list_url = "http://www.mpich.org/static/downloads/"
+ url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
+ list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
version('3.2', 'f414cfa77099cd1fa1a5ae4e22db508a')
@@ -42,14 +42,27 @@ class Mpich(Package):
version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
+ variant('hydra', default=True, description='Build the hydra process manager')
+ variant('pmi', default=True, description='Build with PMI support')
+ variant('romio', default=True, description='Enable ROMIO MPI I/O implementation')
variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
- variant('pmi', default=True, description='Build with PMI support')
- variant('hydra', default=True, description='Build the hydra process manager')
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ # On Cray, the regular compiler wrappers *are* the MPI wrappers.
+ if 'platform=cray' in self.spec:
+ spack_env.set('MPICC', spack_cc)
+ spack_env.set('MPICXX', spack_cxx)
+ spack_env.set('MPIF77', spack_fc)
+ spack_env.set('MPIF90', spack_fc)
+ else:
+ spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
+ spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
+ spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
+
spack_env.set('MPICH_CC', spack_cc)
spack_env.set('MPICH_CXX', spack_cxx)
spack_env.set('MPICH_F77', spack_f77)
@@ -57,63 +70,69 @@ class Mpich(Package):
spack_env.set('MPICH_FC', spack_fc)
def setup_dependent_package(self, module, dep_spec):
- self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
- self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
- self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
- self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
-
- def install(self, spec, prefix):
- config_args = ["--prefix=" + prefix,
- "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
- "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
- "--enable-shared"]
-
- # Variants
- if '+verbs' in spec:
- config_args.append("--with-ibverbs")
+ if 'platform=cray' in self.spec:
+ self.spec.mpicc = spack_cc
+ self.spec.mpicxx = spack_cxx
+ self.spec.mpifc = spack_fc
+ self.spec.mpif77 = spack_f77
else:
- config_args.append("--without-ibverbs")
-
- # TODO: Spack should make it so that you can't actually find
- # these compilers if they're "disabled" for the current
- # compiler configuration.
- if not self.compiler.f77:
- config_args.append("--disable-f77")
-
- if not self.compiler.fc:
- config_args.append("--disable-fc")
-
- if not self.compiler.fc and not self.compiler.f77:
- config_args.append("--disable-fortran")
-
- configure(*config_args)
- make()
- make("install")
-
- self.filter_compilers()
-
-
+ self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
+ self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
+ self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
+ self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+
+ self.spec.mpicxx_shared_libs = [
+ join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
+ join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
+ ]
+
+ @AutotoolsPackage.precondition('autoreconf')
+ def die_without_fortran(self):
+ # Until we can pass variants such as +fortran through virtual
+ # dependencies depends_on('mpi'), require Fortran compiler to
+ # avoid delayed build errors in dependents.
+ if (self.compiler.f77 is None) or (self.compiler.fc is None):
+ raise InstallError(
+ 'Mpich requires both C and Fortran compilers!'
+ )
+
+ def configure_args(self):
+ spec = self.spec
+ return [
+ '--enable-shared',
+ '--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'),
+ '--with-pmi={0}'.format('yes' if '+pmi' in spec else 'no'),
+ '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'),
+ '--{0}-ibverbs'.format('with' if '+verbs' in spec else 'without')
+ ]
+
+ @AutotoolsPackage.sanity_check('install')
def filter_compilers(self):
"""Run after install to make the MPI compilers use the
- compilers that Spack built the package with.
-
- If this isn't done, they'll have CC, CXX, F77, and FC set
- to Spack's generic cc, c++, f77, and f90. We want them to
- be bound to whatever compiler they were built with.
- """
- bin = self.prefix.bin
- mpicc = os.path.join(bin, 'mpicc')
- mpicxx = os.path.join(bin, 'mpicxx')
- mpif77 = os.path.join(bin, 'mpif77')
- mpif90 = os.path.join(bin, 'mpif90')
-
- spack_cc = os.environ['CC']
- spack_cxx = os.environ['CXX']
- spack_f77 = os.environ['F77']
- spack_fc = os.environ['FC']
-
- kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
- filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
- filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
- filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
- filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
+ compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set
+ to Spack's generic cc, c++, f77, and f90. We want them to
+ be bound to whatever compiler they were built with."""
+
+ mpicc = join_path(self.prefix.bin, 'mpicc')
+ mpicxx = join_path(self.prefix.bin, 'mpicxx')
+ mpif77 = join_path(self.prefix.bin, 'mpif77')
+ mpif90 = join_path(self.prefix.bin, 'mpif90')
+
+ # Substitute Spack compile wrappers for the real
+ # underlying compiler
+ kwargs = {
+ 'ignore_absent': True,
+ 'backup': False,
+ 'string': True
+ }
+ filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
+ filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
+ filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
+ filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
+
+ # Remove this linking flag if present
+ # (it turns RPATH into RUNPATH)
+ for wrapper in (mpicc, mpicxx, mpif77, mpif90):
+ filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
diff --git a/var/spack/repos/builtin/packages/mpileaks/package.py b/var/spack/repos/builtin/packages/mpileaks/package.py
index 51bc66a0eb..ec4e9b30cc 100644
--- a/var/spack/repos/builtin/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin/packages/mpileaks/package.py
@@ -24,8 +24,10 @@
##############################################################################
from spack import *
+
class Mpileaks(Package):
- """Tool to detect and report leaked MPI objects like MPI_Requests and MPI_Datatypes."""
+ """Tool to detect and report leaked MPI objects like MPI_Requests and
+ MPI_Datatypes."""
homepage = "https://github.com/hpc/mpileaks"
url = "https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
diff --git a/var/spack/repos/builtin/packages/mpip/package.py b/var/spack/repos/builtin/packages/mpip/package.py
new file mode 100644
index 0000000000..78e1dca68a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpip/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Mpip(Package):
+ """mpiP: Lightweight, Scalable MPI Profiling"""
+ homepage = "http://mpip.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/mpip/mpiP/mpiP-3.4.1/mpiP-3.4.1.tar.gz"
+
+ version("3.4.1", "1168adc83777ac31d6ebd385823aabbd")
+
+ depends_on("libelf", type="build")
+ depends_on("libdwarf", type="build")
+ depends_on('libunwind', when=os.uname()[4] == "x86_64", type="build")
+ depends_on("mpi", type="build")
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix, "--without-f77")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/mpir/package.py b/var/spack/repos/builtin/packages/mpir/package.py
new file mode 100644
index 0000000000..b939a690b2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpir/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mpir(Package):
+ """Multiple Precision Integers and Rationals."""
+
+ homepage = "https://github.com/wbhart/mpir"
+ url = "https://github.com/wbhart/mpir/archive/mpir-2.7.0.tar.gz"
+
+ version('2.7.0', '985b5d57bd0e74c74125ee885b9c8f71')
+ version('2.6.0', 'ec17d6a7e026114ceb734b2466aa0a91')
+ version('develop', git='https://github.com/wbhart/mpir.git')
+
+ # This setting allows mpir to act as a drop-in replacement for gmp
+ variant('gmp_compat', default=False,
+ description='Compile with GMP library compatibility')
+
+ # Build dependencies
+ depends_on('autoconf', type='build')
+
+ # Other dependencies
+ depends_on('yasm')
+
+ def install(self, spec, prefix):
+ # We definitely don't want to have MPIR build its
+ # own version of YASM. This tries to install it
+ # to a system directory.
+ options = ['--prefix={0}'.format(prefix),
+ '--with-system-yasm']
+
+ if '+gmp_compat' in spec:
+ options.extend(['--enable-gmpcompat'])
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py
index 3380c7f823..9da9e29a2e 100644
--- a/var/spack/repos/builtin/packages/mrnet/package.py
+++ b/var/spack/repos/builtin/packages/mrnet/package.py
@@ -24,34 +24,33 @@
##############################################################################
from spack import *
+
class Mrnet(Package):
"""The MRNet Multi-Cast Reduction Network."""
homepage = "http://paradyn.org/mrnet"
url = "ftp://ftp.cs.wisc.edu/paradyn/mrnet/mrnet_5.0.1.tar.gz"
list_url = "http://ftp.cs.wisc.edu/paradyn/mrnet"
- version('5.0.1-2', git='https://github.com/dyninst/mrnet.git', commit='20b1eacfc6d680d9f6472146d2dfaa0f900cc2e9')
+ version('5.0.1-2', git='https://github.com/dyninst/mrnet.git',
+ commit='20b1eacfc6d680d9f6472146d2dfaa0f900cc2e9')
version('5.0.1', '17f65738cf1b9f9b95647ff85f69ecdd')
version('4.1.0', '5a248298b395b329e2371bf25366115c')
version('4.0.0', 'd00301c078cba57ef68613be32ceea2f')
- # Add a patch that brings mrnet-5.0.1 up to date with the current development tree
- # The development tree contains fixes needed for the krell based tools
- variant('krellpatch', default=False, description="Build MRNet with krell openspeedshop based patch.")
- patch('krell-5.0.1.patch', when='@5.0.1+krellpatch')
-
- variant('lwthreads', default=False, description="Also build the MRNet LW threadsafe libraries")
+ variant('lwthreads', default=False,
+ description="Also build the MRNet LW threadsafe libraries")
parallel = False
depends_on("boost")
def install(self, spec, prefix):
- # Build the MRNet LW thread safe libraries when the krelloptions variant is present
+ # Build the MRNet LW thread safe libraries when the
+ # lwthreads variant is present
if '+lwthreads' in spec:
- configure("--prefix=%s" %prefix, "--enable-shared", "--enable-ltwt-threadsafe")
+ configure("--prefix=%s" % prefix, "--enable-shared",
+ "--enable-ltwt-threadsafe")
else:
- configure("--prefix=%s" %prefix, "--enable-shared")
+ configure("--prefix=%s" % prefix, "--enable-shared")
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/msgpack-c/package.py b/var/spack/repos/builtin/packages/msgpack-c/package.py
index 925dceabed..9a726e2356 100644
--- a/var/spack/repos/builtin/packages/msgpack-c/package.py
+++ b/var/spack/repos/builtin/packages/msgpack-c/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class MsgpackC(Package):
"""A small, fast binary interchange format convertible to/from JSON"""
homepage = "http://www.msgpack.org"
@@ -31,6 +32,8 @@ class MsgpackC(Package):
version('1.4.1', 'e2fd3a7419b9bc49e5017fdbefab87e0')
+ depends_on('cmake', type='build')
+
def install(self, spec, prefix):
cmake('.', *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py
index 92c45c9b95..82d0c606b6 100644
--- a/var/spack/repos/builtin/packages/mumps/package.py
+++ b/var/spack/repos/builtin/packages/mumps/package.py
@@ -23,7 +23,10 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os, sys, glob
+import os
+import sys
+import glob
+
class Mumps(Package):
"""MUMPS: a MUltifrontal Massively Parallel sparse direct Solver"""
@@ -31,20 +34,31 @@ class Mumps(Package):
homepage = "http://mumps.enseeiht.fr"
url = "http://mumps.enseeiht.fr/MUMPS_5.0.1.tar.gz"
+ version('5.0.2', '591bcb2c205dcb0283872608cdf04927')
+ # Alternate location if main server is down.
+ # version('5.0.1', 'b477573fdcc87babe861f62316833db0', url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz')
version('5.0.1', 'b477573fdcc87babe861f62316833db0')
- variant('mpi', default=True, description='Activate the compilation of MUMPS with the MPI support')
- variant('scotch', default=False, description='Activate Scotch as a possible ordering library')
- variant('ptscotch', default=False, description='Activate PT-Scotch as a possible ordering library')
- variant('metis', default=False, description='Activate Metis as a possible ordering library')
- variant('parmetis', default=False, description='Activate Parmetis as a possible ordering library')
- variant('double', default=True, description='Activate the compilation of dmumps')
- variant('float', default=True, description='Activate the compilation of smumps')
- variant('complex', default=True, description='Activate the compilation of cmumps and/or zmumps')
- variant('idx64', default=False, description='Use int64_t/integer*8 as default index type')
+ variant('mpi', default=True,
+ description='Compile MUMPS with MPI support')
+ variant('scotch', default=False,
+ description='Activate Scotch as a possible ordering library')
+ variant('ptscotch', default=False,
+ description='Activate PT-Scotch as a possible ordering library')
+ variant('metis', default=False,
+ description='Activate Metis as a possible ordering library')
+ variant('parmetis', default=False,
+ description='Activate Parmetis as a possible ordering library')
+ variant('double', default=True,
+ description='Activate the compilation of dmumps')
+ variant('float', default=True,
+ description='Activate the compilation of smumps')
+ variant('complex', default=True,
+ description='Activate the compilation of cmumps and/or zmumps')
+ variant('int64', default=False,
+ description='Use int64_t/integer*8 as default index type')
variant('shared', default=True, description='Build shared libraries')
-
depends_on('scotch + esmumps', when='~ptscotch+scotch')
depends_on('scotch + esmumps + mpi', when='+ptscotch')
depends_on('metis@5:', when='+metis')
@@ -60,51 +74,63 @@ class Mumps(Package):
# end before install
# def patch(self):
def write_makefile_inc(self):
- if ('+parmetis' in self.spec or '+ptscotch' in self.spec) and '+mpi' not in self.spec:
- raise RuntimeError('You cannot use the variants parmetis or ptscotch without mpi')
+ if ('+parmetis' in self.spec or '+ptscotch' in self.spec) and (
+ '+mpi' not in self.spec):
+ raise RuntimeError(
+ 'You cannot use the variants parmetis or ptscotch without mpi')
- makefile_conf = ["LIBBLAS = -L%s -lblas" % self.spec['blas'].prefix.lib]
+ lapack_blas = (self.spec['lapack'].lapack_libs +
+ self.spec['blas'].blas_libs)
+ makefile_conf = ["LIBBLAS = %s" % lapack_blas.joined()]
orderings = ['-Dpord']
if '+ptscotch' in self.spec or '+scotch' in self.spec:
join_lib = ' -l%s' % ('pt' if '+ptscotch' in self.spec else '')
- makefile_conf.extend(
- ["ISCOTCH = -I%s" % self.spec['scotch'].prefix.include,
- "LSCOTCH = -L%s %s%s" % (self.spec['scotch'].prefix.lib,
- join_lib,
- join_lib.join(['esmumps', 'scotch', 'scotcherr']))])
+ makefile_conf.extend([
+ "ISCOTCH = -I%s" % self.spec['scotch'].prefix.include,
+ "LSCOTCH = -L%s %s%s" % (self.spec['scotch'].prefix.lib,
+ join_lib,
+ join_lib.join(['esmumps',
+ 'scotch',
+ 'scotcherr']))
+ ])
+
orderings.append('-Dscotch')
if '+ptscotch' in self.spec:
orderings.append('-Dptscotch')
if '+parmetis' in self.spec and '+metis' in self.spec:
- libname = 'parmetis' if '+parmetis' in self.spec else 'metis'
- makefile_conf.extend(
- ["IMETIS = -I%s" % self.spec['parmetis'].prefix.include,
- "LMETIS = -L%s -l%s -L%s -l%s" % (self.spec['parmetis'].prefix.lib, 'parmetis',self.spec['metis'].prefix.lib, 'metis')])
+ makefile_conf.extend([
+ "IMETIS = -I%s" % self.spec['parmetis'].prefix.include,
+ "LMETIS = -L%s -l%s -L%s -l%s" % (
+ self.spec['parmetis'].prefix.lib, 'parmetis',
+ self.spec['metis'].prefix.lib, 'metis')
+ ])
orderings.append('-Dparmetis')
elif '+metis' in self.spec:
- makefile_conf.extend(
- ["IMETIS = -I%s" % self.spec['metis'].prefix.include,
- "LMETIS = -L%s -l%s" % (self.spec['metis'].prefix.lib, 'metis')])
+ makefile_conf.extend([
+ "IMETIS = -I%s" % self.spec['metis'].prefix.include,
+ "LMETIS = -L%s -l%s" % (self.spec['metis'].prefix.lib, 'metis')
+ ])
orderings.append('-Dmetis')
makefile_conf.append("ORDERINGSF = %s" % (' '.join(orderings)))
# when building shared libs need -fPIC, otherwise
- # /usr/bin/ld: graph.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
+ # /usr/bin/ld: graph.o: relocation R_X86_64_32 against `.rodata.str1.1'
+ # can not be used when making a shared object; recompile with -fPIC
fpic = '-fPIC' if '+shared' in self.spec else ''
# TODO: test this part, it needs a full blas, scalapack and
# partitionning environment with 64bit integers
- if '+idx64' in self.spec:
+ if '+int64' in self.spec:
makefile_conf.extend(
# the fortran compilation flags most probably are
# working only for intel and gnu compilers this is
# perhaps something the compiler should provide
- ['OPTF = %s -O -DALLOW_NON_INIT %s' % (fpic,'-fdefault-integer-8' if self.compiler.name == "gcc" else '-i8'),
+ ['OPTF = %s -O -DALLOW_NON_INIT %s' % (fpic, '-fdefault-integer-8' if self.compiler.name == "gcc" else '-i8'), # noqa
'OPTL = %s -O ' % fpic,
'OPTC = %s -O -DINTSIZE64' % fpic])
else:
@@ -113,13 +139,13 @@ class Mumps(Package):
'OPTL = %s -O ' % fpic,
'OPTC = %s -O ' % fpic])
-
if '+mpi' in self.spec:
+ scalapack = self.spec['scalapack'].scalapack_libs
makefile_conf.extend(
["CC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpicc'),
"FC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'),
"FL = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'),
- "SCALAP = %s" % self.spec['scalapack'].fc_link,
+ "SCALAP = %s" % scalapack.ld_flags,
"MUMPS_TYPE = par"])
else:
makefile_conf.extend(
@@ -130,20 +156,27 @@ class Mumps(Package):
# TODO: change the value to the correct one according to the
# compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER
- makefile_conf.append("CDEFS = -DAdd_")
+ if self.compiler.name == 'intel':
+ # Intel Fortran compiler provides the main() function so
+ # C examples linked with the Fortran compiler require a
+ # hack defined by _DMAIN_COMP (see examples/c_example.c)
+ makefile_conf.append("CDEFS = -DAdd_ -DMAIN_COMP")
+ else:
+ makefile_conf.append("CDEFS = -DAdd_")
if '+shared' in self.spec:
if sys.platform == 'darwin':
- # Building dylibs with mpif90 causes segfaults on 10.8 and 10.10. Use gfortran. (Homebrew)
+ # Building dylibs with mpif90 causes segfaults on 10.8 and
+ # 10.10. Use gfortran. (Homebrew)
makefile_conf.extend([
'LIBEXT=.dylib',
- 'AR=%s -dynamiclib -Wl,-install_name -Wl,%s/$(notdir $@) -undefined dynamic_lookup -o ' % (os.environ['FC'],prefix.lib),
+ 'AR=%s -dynamiclib -Wl,-install_name -Wl,%s/$(notdir $@) -undefined dynamic_lookup -o ' % (os.environ['FC'], prefix.lib), # noqa
'RANLIB=echo'
])
else:
makefile_conf.extend([
'LIBEXT=.so',
- 'AR=$(FL) -shared -Wl,-soname -Wl,%s/$(notdir $@) -o' % prefix.lib,
+ 'AR=$(FL) -shared -Wl,-soname -Wl,%s/$(notdir $@) -o' % prefix.lib, # noqa
'RANLIB=echo'
])
else:
@@ -153,9 +186,8 @@ class Mumps(Package):
'RANLIB = ranlib'
])
-
- makefile_inc_template = join_path(os.path.dirname(self.module.__file__),
- 'Makefile.inc')
+ makefile_inc_template = join_path(
+ os.path.dirname(self.module.__file__), 'Makefile.inc')
with open(makefile_inc_template, "r") as fh:
makefile_conf.extend(fh.read().split('\n'))
@@ -164,8 +196,6 @@ class Mumps(Package):
makefile_inc = '\n'.join(makefile_conf)
fh.write(makefile_inc)
-
-
def install(self, spec, prefix):
make_libs = []
@@ -189,15 +219,15 @@ class Mumps(Package):
install_tree('lib', prefix.lib)
install_tree('include', prefix.include)
- if '~mpi' in spec:
+ if '~mpi' in spec:
lib_dsuffix = '.dylib' if sys.platform == 'darwin' else '.so'
lib_suffix = lib_dsuffix if '+shared' in spec else '.a'
install('libseq/libmpiseq%s' % lib_suffix, prefix.lib)
- for f in glob.glob(join_path('libseq','*.h')):
+ for f in glob.glob(join_path('libseq', '*.h')):
install(f, prefix.include)
- # FIXME: extend the tests to mpirun -np 2 (or alike) when build with MPI
- # FIXME: use something like numdiff to compare blessed output with the current
+ # FIXME: extend the tests to mpirun -np 2 when build with MPI
+ # FIXME: use something like numdiff to compare output files
with working_dir('examples'):
if '+float' in spec:
os.system('./ssimpletest < input_simpletest_real')
diff --git a/var/spack/repos/builtin/packages/munge/package.py b/var/spack/repos/builtin/packages/munge/package.py
index ebe3e18882..38dbfa1cc1 100644
--- a/var/spack/repos/builtin/packages/munge/package.py
+++ b/var/spack/repos/builtin/packages/munge/package.py
@@ -25,20 +25,18 @@
from spack import *
import os
-class Munge(Package):
+
+class Munge(AutotoolsPackage):
""" MUNGE Uid 'N' Gid Emporium """
homepage = "https://code.google.com/p/munge/"
url = "https://github.com/dun/munge/releases/download/munge-0.5.11/munge-0.5.11.tar.bz2"
- version('0.5.11', 'bd8fca8d5f4c1fcbef1816482d49ee01', url='https://github.com/dun/munge/releases/download/munge-0.5.11/munge-0.5.11.tar.bz2')
+ version('0.5.11', 'bd8fca8d5f4c1fcbef1816482d49ee01',
+ url='https://github.com/dun/munge/releases/download/munge-0.5.11/munge-0.5.11.tar.bz2')
depends_on('openssl')
depends_on('libgcrypt')
def install(self, spec, prefix):
os.makedirs(os.path.join(prefix, "lib/systemd/system"))
- configure("--prefix=%s" % prefix)
-
- make()
- make("install")
-
+ super(Munge, self).install(spec, prefix)
diff --git a/var/spack/repos/builtin/packages/muparser/package.py b/var/spack/repos/builtin/packages/muparser/package.py
index 47d1855329..1373c8cd7b 100644
--- a/var/spack/repos/builtin/packages/muparser/package.py
+++ b/var/spack/repos/builtin/packages/muparser/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Muparser(Package):
"""C++ math expression parser library."""
homepage = "http://muparser.beltoforion.de/"
diff --git a/var/spack/repos/builtin/packages/muster/package.py b/var/spack/repos/builtin/packages/muster/package.py
index 993f147245..81817e48dc 100644
--- a/var/spack/repos/builtin/packages/muster/package.py
+++ b/var/spack/repos/builtin/packages/muster/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Muster(Package):
"""The Muster library provides implementations of sequential and
parallel K-Medoids clustering algorithms. It is intended as a
@@ -39,6 +40,7 @@ class Muster(Package):
depends_on("boost")
depends_on("mpi")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
cmake(".", *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py
index f4997bdfa1..18f2ebe0bb 100644
--- a/var/spack/repos/builtin/packages/mvapich2/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2/package.py
@@ -23,41 +23,48 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class Mvapich2(Package):
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
- url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2b.tar.gz"
+ url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz"
- version('2.2b', '5651e8b7a72d7c77ca68da48f3a5d108')
- version('2.2a', 'b8ceb4fc5f5a97add9b3ff1b9cbe39d2')
- version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
- version('1.9', '5dc58ed08fd3142c260b70fe297e127c')
+ version('2.2', '939b65ebe5b89a5bc822cdab0f31f96e')
+ version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6')
+ version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
+ version('1.9', '5dc58ed08fd3142c260b70fe297e127c')
patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2
provides('mpi@:3.0', when='@2.0:') # MVAPICH2-2.0 supports MPI 3.0
- variant('debug', default=False, description='Enables debug information and error messages at run-time')
+ variant('debug', default=False,
+ description='Enable debug info and error messages at run-time')
##########
- # TODO : Process managers should be grouped into the same variant, as soon as variant capabilities will be extended
- # See https://groups.google.com/forum/#!topic/spack/F8-f8B4_0so
+ # TODO : Process managers should be grouped into the same variant,
+ # as soon as variant capabilities will be extended See
+ # https://groups.google.com/forum/#!topic/spack/F8-f8B4_0so
SLURM = 'slurm'
HYDRA = 'hydra'
GFORKER = 'gforker'
REMSHELL = 'remshell'
SLURM_INCOMPATIBLE_PMS = (HYDRA, GFORKER, REMSHELL)
- variant(SLURM, default=False, description='Sets slurm as the only process manager')
- variant(HYDRA, default=False, description='Sets hydra as one of the process managers')
- variant(GFORKER, default=False, description='Sets gforker as one of the process managers')
- variant(REMSHELL, default=False, description='Sets remshell as one of the process managers')
+ variant(SLURM, default=False,
+ description='Set slurm as the only process manager')
+ variant(HYDRA, default=False,
+ description='Set hydra as one of the process managers')
+ variant(GFORKER, default=False,
+ description='Set gforker as one of the process managers')
+ variant(REMSHELL, default=False,
+ description='Set remshell as one of the process managers')
##########
##########
- # TODO : Network types should be grouped into the same variant, as soon as variant capabilities will be extended
+ # TODO : Network types should be grouped into the same variant, as
+ # soon as variant capabilities will be extended
PSM = 'psm'
SOCK = 'sock'
NEMESISIBTCP = 'nemesisibtcp'
@@ -65,15 +72,29 @@ class Mvapich2(Package):
NEMESIS = 'nemesis'
MRAIL = 'mrail'
SUPPORTED_NETWORKS = (PSM, SOCK, NEMESIS, NEMESISIB, NEMESISIBTCP)
- variant(PSM, default=False, description='Configures a build for QLogic PSM-CH3')
- variant(SOCK, default=False, description='Configures a build for TCP/IP-CH3')
- variant(NEMESISIBTCP, default=False, description='Configures a build for both OFA-IB-Nemesis and TCP/IP-Nemesis')
- variant(NEMESISIB, default=False, description='Configures a build for OFA-IB-Nemesis')
- variant(NEMESIS, default=False, description='Configures a build for TCP/IP-Nemesis')
- variant(MRAIL, default=False, description='Configures a build for OFA-IB-CH3')
+ variant(
+ PSM, default=False,
+ description='Configure for QLogic PSM-CH3')
+ variant(
+ SOCK, default=False,
+ description='Configure for TCP/IP-CH3')
+ variant(
+ NEMESISIBTCP, default=False,
+ description='Configure for both OFA-IB-Nemesis and TCP/IP-Nemesis')
+ variant(
+ NEMESISIB, default=False,
+ description='Configure for OFA-IB-Nemesis')
+ variant(
+ NEMESIS, default=False,
+ description='Configure for TCP/IP-Nemesis')
+ variant(
+ MRAIL, default=False,
+ description='Configure for OFA-IB-CH3')
##########
# FIXME : CUDA support is missing
+ depends_on('bison')
+ depends_on('libpciaccess')
def url_for_version(self, version):
base_url = "http://mvapich.cse.ohio-state.edu/download"
@@ -84,8 +105,8 @@ class Mvapich2(Package):
@staticmethod
def enabled(x):
- """
- Given a variant name returns the string that means the variant is enabled
+ """Given a variant name returns the string that means the variant is
+ enabled
:param x: variant name
:return:
@@ -93,8 +114,8 @@ class Mvapich2(Package):
return '+' + x
def set_build_type(self, spec, configure_args):
- """
- Appends to configure_args the flags that depends only on the build type (i.e. release or debug)
+ """Appends to configure_args the flags that depends only on the build
+ type (i.e. release or debug)
:param spec: spec
:param configure_args: list of current configure arguments
@@ -104,7 +125,8 @@ class Mvapich2(Package):
"--disable-fast",
"--enable-error-checking=runtime",
"--enable-error-messages=all",
- "--enable-g=dbg", "--enable-debuginfo" # Permits debugging with TotalView
+ # Permits debugging with TotalView
+ "--enable-g=dbg", "--enable-debuginfo"
]
else:
build_type_options = ["--enable-fast=all"]
@@ -112,25 +134,41 @@ class Mvapich2(Package):
configure_args.extend(build_type_options)
def set_process_manager(self, spec, configure_args):
- """
- Appends to configure_args the flags that will enable the appropriate process managers
+ """Appends to configure_args the flags that will enable the
+ appropriate process managers
:param spec: spec
:param configure_args: list of current configure arguments
"""
- # Check that slurm variant is not activated together with other pm variants
- has_slurm_incompatible_variants = any(self.enabled(x) in spec for x in Mvapich2.SLURM_INCOMPATIBLE_PMS)
- if self.enabled(Mvapich2.SLURM) in spec and has_slurm_incompatible_variants:
- raise RuntimeError(" %s : 'slurm' cannot be activated together with other process managers" % self.name)
+ # Check that slurm variant is not activated together with
+ # other pm variants
+ has_slurm_incompatible_variants = \
+ any(self.enabled(x) in spec
+ for x in Mvapich2.SLURM_INCOMPATIBLE_PMS)
+
+ if self.enabled(Mvapich2.SLURM) in spec and \
+ has_slurm_incompatible_variants:
+ raise RuntimeError(" %s : 'slurm' cannot be activated \
+ together with other process managers" % self.name)
process_manager_options = []
+ # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2
if self.enabled(Mvapich2.SLURM) in spec:
- process_manager_options = [
- "--with-pm=slurm"
- ]
+ if self.version > Version('2.0'):
+ process_manager_options = [
+ "--with-pmi=pmi2",
+ "--with-pm=slurm"
+ ]
+ else:
+ process_manager_options = [
+ "--with-pmi=slurm",
+ "--with-pm=no"
+ ]
+
elif has_slurm_incompatible_variants:
pms = []
- # The variant name is equal to the process manager name in the configuration options
+ # The variant name is equal to the process manager name in
+ # the configuration options
for x in Mvapich2.SLURM_INCOMPATIBLE_PMS:
if self.enabled(x) in spec:
pms.append(x)
@@ -146,7 +184,9 @@ class Mvapich2(Package):
if self.enabled(x) in spec:
count += 1
if count > 1:
- raise RuntimeError('network variants are mutually exclusive (only one can be selected at a time)')
+ raise RuntimeError('network variants are mutually exclusive \
+ (only one can be selected at a time)')
+
network_options = []
# From here on I can suppose that only one variant has been selected
if self.enabled(Mvapich2.PSM) in spec:
@@ -164,7 +204,17 @@ class Mvapich2(Package):
configure_args.extend(network_options)
+ def setup_environment(self, spack_env, run_env):
+ if self.enabled(Mvapich2.SLURM) in self.spec and \
+ self.version > Version('2.0'):
+ run_env.set('SLURM_MPI_TYPE', 'pmi2')
+
def setup_dependent_environment(self, spack_env, run_env, extension_spec):
+ spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
+ spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
+ spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
+
spack_env.set('MPICH_CC', spack_cc)
spack_env.set('MPICH_CXX', spack_cxx)
spack_env.set('MPICH_F77', spack_f77)
@@ -176,9 +226,21 @@ class Mvapich2(Package):
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+ self.spec.mpicxx_shared_libs = [
+ join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
+ join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
+ ]
def install(self, spec, prefix):
- # we'll set different configure flags depending on our environment
+ # Until we can pass variants such as +fortran through virtual
+ # dependencies depends_on('mpi'), require Fortran compiler to
+ # avoid delayed build errors in dependents.
+ if (self.compiler.f77 is None) or (self.compiler.fc is None):
+ raise InstallError('Mvapich2 requires both C and Fortran ',
+ 'compilers!')
+
+ # we'll set different configure flags depending on our
+ # environment
configure_args = [
"--prefix=%s" % prefix,
"--enable-shared",
@@ -208,7 +270,6 @@ class Mvapich2(Package):
self.filter_compilers()
-
def filter_compilers(self):
"""Run after install to make the MPI compilers use the
compilers that Spack built the package with.
@@ -218,18 +279,20 @@ class Mvapich2(Package):
be bound to whatever compiler they were built with.
"""
bin = self.prefix.bin
- mpicc = os.path.join(bin, 'mpicc')
- mpicxx = os.path.join(bin, 'mpicxx')
- mpif77 = os.path.join(bin, 'mpif77')
- mpif90 = os.path.join(bin, 'mpif90')
-
- spack_cc = os.environ['CC']
- spack_cxx = os.environ['CXX']
- spack_f77 = os.environ['F77']
- spack_fc = os.environ['FC']
-
- kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
- filter_file('CC="%s"' % spack_cc , 'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
- filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
- filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
- filter_file('FC="%s"' % spack_fc , 'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
+ mpicc = join_path(bin, 'mpicc')
+ mpicxx = join_path(bin, 'mpicxx')
+ mpif77 = join_path(bin, 'mpif77')
+ mpif90 = join_path(bin, 'mpif90')
+
+ # Substitute Spack compile wrappers for the real
+ # underlying compiler
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+ filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
+ filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
+ filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
+ filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
+
+ # Remove this linking flag if present
+ # (it turns RPATH into RUNPATH)
+ for wrapper in (mpicc, mpicxx, mpif77, mpif90):
+ filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
diff --git a/var/spack/repos/builtin/packages/mxml/package.py b/var/spack/repos/builtin/packages/mxml/package.py
new file mode 100644
index 0000000000..29e3b27d6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mxml/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mxml(Package):
+ """Mini-XML is a small XML library that you can use to read and write XML
+ and XML-like data files in your application without requiring large
+ non-standard libraries.
+ """
+
+ homepage = "http://www.msweet.org"
+ url = "http://www.msweet.org/files/project3/mxml-2.9.tar.gz"
+
+ version('2.9', 'e21cad0f7aacd18f942aa0568a8dee19')
+ version('2.8', 'd85ee6d30de053581242c4a86e79a5d2')
+ version('2.7', '76f2ae49bf0f5745d5cb5d9507774dc9')
+ version('2.6', '68977789ae64985dddbd1a1a1652642e')
+ version('2.5', 'f706377fba630b39fa02fd63642b17e5')
+
+ # module swap PrgEnv-intel PrgEnv-$COMP
+ # (Can use whatever compiler you want to use)
+ # Case statement to change CC and CXX flags
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix, "--disable-shared", 'CFLAGS=-static')
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py
index 63269a50b1..66cb2a6a54 100644
--- a/var/spack/repos/builtin/packages/nag/package.py
+++ b/var/spack/repos/builtin/packages/nag/package.py
@@ -30,7 +30,7 @@ class Nag(Package):
"""The NAG Fortran Compiler."""
homepage = "http://www.nag.com/nagware/np.asp"
- version('6.1', '1e29d9d435b7ccc2842a320150b28ba4')
+ version('6.1', 'f49bd548e0d5e2458b2dabb3ee01341a')
version('6.0', '3fa1e7f7b51ef8a23e6c687cdcad9f96')
# Licensing
@@ -43,8 +43,8 @@ class Nag(Package):
def url_for_version(self, version):
# TODO: url and checksum are architecture dependent
# TODO: We currently only support x86_64
- return 'http://www.nag.com/downloads/impl/npl6a%sna_amd64.tgz' % \
- str(version).replace('.', '')
+ url = 'http://www.nag.com/downloads/impl/npl6a{0}na_amd64.tgz'
+ return url.format(version.joined)
def install(self, spec, prefix):
# Set installation directories
diff --git a/var/spack/repos/builtin/packages/nano/package.py b/var/spack/repos/builtin/packages/nano/package.py
new file mode 100644
index 0000000000..3e87ec8ffe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nano/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nano(Package):
+ """Tiny little text editor"""
+
+ homepage = "http://www.nano-editor.org"
+ url = "https://www.nano-editor.org/dist/v2.6/nano-2.6.3.tar.gz"
+
+ version('2.6.3', '1213c7f17916e65afefc95054c1f90f9')
+ version('2.6.2', '58568a4b8a33841d774c25f285fc11c1')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/nasm/package.py b/var/spack/repos/builtin/packages/nasm/package.py
index c955e6d13e..9faccccaae 100644
--- a/var/spack/repos/builtin/packages/nasm/package.py
+++ b/var/spack/repos/builtin/packages/nasm/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Nasm(Package):
"""NASM (Netwide Assembler) is an 80x86 assembler designed for
portability and modularity. It includes a disassembler as well."""
diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py
new file mode 100644
index 0000000000..0d5eed251b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nauty/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import shutil
+from spack import *
+
+
+class Nauty(Package):
+ """nauty and Traces are programs for computing automorphism groups of
+ graphsq and digraphs"""
+ homepage = "http://pallini.di.uniroma1.it/index.html"
+ url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz"
+
+ version('2.6r7', 'b2b18e03ea7698db3fbe06c5d76ad8fe')
+ version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2')
+ version('2.5r9', 'e8ecd08b0892a1fb13329c147f08de6d')
+
+ def url_for_version(self, version):
+ url = "http://pallini.di.uniroma1.it/nauty{0}.tar.gz"
+ return url.format(version.joined)
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+
+ exes = [
+ "NRswitchg",
+ "addedgeg",
+ "amtog",
+ "biplabg",
+ "catg",
+ "complg",
+ "converseg",
+ "copyg",
+ "countg",
+ "cubhamg",
+ "deledgeg",
+ "delptg",
+ "directg",
+ "dreadnaut",
+ "dretodot",
+ "dretog",
+ "genbg",
+ "genbgL",
+ "geng",
+ "genquarticg",
+ "genrang",
+ "genspecialg",
+ "gentourng",
+ "gentreeg",
+ "hamheuristic",
+ "labelg",
+ "linegraphg",
+ "listg",
+ "multig",
+ "newedgeg",
+ "pickg",
+ "planarg",
+ "ranlabg",
+ "shortg",
+ "subdivideg",
+ "twohamg",
+ "vcolg",
+ "watercluster2"]
+ mkdirp(prefix.bin)
+ for exe in exes:
+ shutil.copyfile(exe, join_path(prefix.bin, exe))
diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py
index 68bddd6957..d59ca09381 100644
--- a/var/spack/repos/builtin/packages/nccmp/package.py
+++ b/var/spack/repos/builtin/packages/nccmp/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Nccmp(Package):
"""Compare NetCDF Files"""
homepage = "http://nccmp.sourceforge.net/"
diff --git a/var/spack/repos/builtin/packages/ncdu/package.py b/var/spack/repos/builtin/packages/ncdu/package.py
index 0f2f9cda45..0842a592cc 100644
--- a/var/spack/repos/builtin/packages/ncdu/package.py
+++ b/var/spack/repos/builtin/packages/ncdu/package.py
@@ -24,9 +24,9 @@
##############################################################################
from spack import *
+
class Ncdu(Package):
- """
- Ncdu is a disk usage analyzer with an ncurses interface. It is designed
+ """Ncdu is a disk usage analyzer with an ncurses interface. It is designed
to find space hogs on a remote server where you don't have an entire
gaphical setup available, but it is a useful tool even on regular desktop
systems. Ncdu aims to be fast, simple and easy to use, and should be able
@@ -38,15 +38,15 @@ class Ncdu(Package):
version('1.11', '9e44240a5356b029f05f0e70a63c4d12')
version('1.10', '7535decc8d54eca811493e82d4bfab2d')
- version('1.9' , '93258079db897d28bb8890e2db89b1fb')
- version('1.8' , '94d7a821f8a0d7ba8ef3dd926226f7d5')
- version('1.7' , '172047c29d232724cc62e773e82e592a')
+ version('1.9', '93258079db897d28bb8890e2db89b1fb')
+ version('1.8', '94d7a821f8a0d7ba8ef3dd926226f7d5')
+ version('1.7', '172047c29d232724cc62e773e82e592a')
depends_on("ncurses")
def install(self, spec, prefix):
configure('--prefix=%s' % prefix,
- '--with-ncurses=%s' % spec['ncurses'])
+ '--with-ncurses=%s' % spec['ncurses'])
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py
new file mode 100644
index 0000000000..7d31c7a8f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ncl/package.py
@@ -0,0 +1,233 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import shutil
+import tempfile
+
+
+class Ncl(Package):
+ """NCL is an interpreted language designed specifically for
+ scientific data analysis and visualization. Supports NetCDF 3/4,
+ GRIB 1/2, HDF 4/5, HDF-EOD 2/5, shapefile, ASCII, binary.
+ Numerous analysis functions are built-in."""
+
+ homepage = "https://www.ncl.ucar.edu"
+
+ version('6.3.0', '4834df63d3b56778441246303ab921c4',
+ url='https://www.earthsystemgrid.org/download/fileDownload.html?'
+ 'logicalFileId=bec58cb3-cd9b-11e4-bb80-00c0f03d5b7c',
+ extension='tar.gz')
+ patch('spack_ncl.patch')
+
+ # This installation script is implemented according to this manual:
+ # http://www.ncl.ucar.edu/Download/build_from_src.shtml
+
+ variant('hdf4', default=False, description='Enable HDF4 support.')
+ variant('gdal', default=False, description='Enable GDAL support.')
+ variant('triangle', default=True, description='Enable Triangle support.')
+ variant('udunits2', default=True, description='Enable UDUNITS-2 support.')
+ variant('openmp', default=True, description='Enable OpenMP support.')
+
+ # Non-optional dependencies according to the manual:
+ depends_on('jpeg')
+ depends_on('netcdf')
+ depends_on('cairo')
+
+ # Also, the manual says that ncl requires zlib, but that comes as a
+ # mandatory dependency of libpng, which is a mandatory dependency of cairo.
+
+ # In Spack, we do not have an option to compile netcdf 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
+ # statement.
+ depends_on('hdf5@:1.8+szip')
+
+ # In Spack, we also do not have an option to compile netcdf 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', when='+gdal')
+ depends_on('udunits2', when='+udunits2')
+
+ # We need src files of triangle to appear in ncl's src tree if we want
+ # triangle's features.
+ resource(
+ name='triangle',
+ url='http://www.netlib.org/voronoi/triangle.zip',
+ md5='10aff8d7950f5e0e2fb6dd2e340be2c9',
+ placement='triangle_src',
+ when='+triangle')
+
+ def install(self, spec, prefix):
+
+ if (self.compiler.fc is None) or (self.compiler.cc is None):
+ raise InstallError('NCL package requires both '
+ 'C and Fortran compilers.')
+
+ self.prepare_site_config()
+ self.prepare_install_config()
+ 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 prepare_site_config(self):
+ fc_flags = []
+ cc_flags = []
+ c2f_flags = []
+
+ if '+openmp' in self.spec:
+ fc_flags.append(self.compiler.openmp_flag)
+ cc_flags.append(self.compiler.openmp_flag)
+
+ if self.compiler.name == 'gcc':
+ fc_flags.append('-fno-range-check')
+ c2f_flags.extend(['-lgfortran'])
+ elif self.compiler.name == 'intel':
+ fc_flags.append('-fp-model precise')
+ cc_flags.append('-fp-model precise')
+ c2f_flags.extend(['-lifcore', '-lifport'])
+
+ with open('./config/Spack', 'w') as f:
+ f.writelines([
+ '#define HdfDefines\n',
+ '#define CppCommand \'/usr/bin/env cpp -traditional\'\n',
+ '#define CCompiler cc\n',
+ '#define FCompiler fc\n',
+ ('#define CtoFLibraries ' + ' '.join(c2f_flags) + '\n'
+ if len(c2f_flags) > 0
+ else ''),
+ ('#define CtoFLibrariesUser ' + ' '.join(c2f_flags) + '\n'
+ if len(c2f_flags) > 0
+ else ''),
+ ('#define CcOptions ' + ' '.join(cc_flags) + '\n'
+ if len(cc_flags) > 0
+ else ''),
+ ('#define FcOptions ' + ' '.join(fc_flags) + '\n'
+ if len(fc_flags) > 0
+ else ''),
+ '#define BuildShared NO'
+ ])
+
+ def prepare_install_config(self):
+ # Remove the results of the previous configuration attempts.
+ self.delete_files('./Makefile', './config/Site.local')
+
+ # Generate an array of answers that will be passed to the interactive
+ # configuration script.
+ config_answers = [
+ # Enter Return to continue
+ '\n',
+ # Build NCL?
+ 'y\n',
+ # Parent installation directory :
+ '\'' + self.spec.prefix + '\'\n',
+ # System temp space directory :
+ '\'' + tempfile.mkdtemp(prefix='ncl_ncar_') + '\'\n',
+ # Build NetCDF4 feature support (optional)?
+ 'y\n'
+ ]
+
+ if '+hdf4' in self.spec:
+ config_answers.extend([
+ # Build HDF4 support (optional) into NCL?
+ 'y\n',
+ # Also build HDF4 support (optional) into raster library?
+ 'y\n',
+ # Did you build HDF4 with szip support?
+ 'y\n' if self.spec.satisfies('^hdf+szip') else 'n\n'
+ ])
+ else:
+ config_answers.extend([
+ # Build HDF4 support (optional) into NCL?
+ 'n\n',
+ # Also build HDF4 support (optional) into raster library?
+ 'n\n'
+ ])
+
+ config_answers.extend([
+ # Build Triangle support (optional) into NCL
+ 'y\n' if '+triangle' in self.spec else 'n\n',
+ # If you are using NetCDF V4.x, did you enable NetCDF-4 support?
+ 'y\n',
+ # Did you build NetCDF with OPeNDAP support?
+ 'y\n',
+ # Build GDAL support (optional) into NCL?
+ 'y\n' if '+gdal' in self.spec else 'n\n',
+ # Build Udunits-2 support (optional) into NCL?
+ 'y\n' if '+uduints2' in self.spec else 'n\n',
+ # Build Vis5d+ support (optional) into NCL?
+ 'n\n',
+ # Build HDF-EOS2 support (optional) into NCL?
+ 'n\n',
+ # Build HDF5 support (optional) into NCL?
+ 'y\n',
+ # Build HDF-EOS5 support (optional) into NCL?
+ 'n\n',
+ # Build GRIB2 support (optional) into NCL?
+ 'n\n',
+ # Enter local library search path(s) :
+ # The paths will be passed by the Spack wrapper.
+ ' \n',
+ # Enter local include search path(s) :
+ # All other paths will be passed by the Spack wrapper.
+ '\'' + join_path(self.spec['freetype'].prefix.include,
+ 'freetype2') + '\'\n',
+ # Go back and make more changes or review?
+ 'n\n',
+ # Save current configuration?
+ 'y\n'
+ ])
+
+ config_answers_filename = 'spack-config.in'
+ config_script = Executable('./Configure')
+
+ with open(config_answers_filename, 'w') as f:
+ f.writelines(config_answers)
+
+ with open(config_answers_filename, 'r') as f:
+ config_script(input=f)
+
+ def prepare_src_tree(self):
+ if '+triangle' in self.spec:
+ triangle_src = join_path(self.stage.source_path, 'triangle_src')
+ triangle_dst = join_path(self.stage.source_path, 'ni', 'src',
+ 'lib', 'hlu')
+ shutil.copy(join_path(triangle_src, 'triangle.h'), triangle_dst)
+ shutil.copy(join_path(triangle_src, 'triangle.c'), triangle_dst)
+
+ @staticmethod
+ def delete_files(*filenames):
+ for filename in filenames:
+ if os.path.exists(filename):
+ try:
+ os.remove(filename)
+ except OSError, e:
+ raise InstallError('Failed to delete file %s: %s' % (
+ e.filename, e.strerror))
diff --git a/var/spack/repos/builtin/packages/ncl/spack_ncl.patch b/var/spack/repos/builtin/packages/ncl/spack_ncl.patch
new file mode 100644
index 0000000000..ebbecc43ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ncl/spack_ncl.patch
@@ -0,0 +1,30 @@
+--- a/config/ymake 2015-03-16 22:21:42.000000000 +0100
++++ b/config/ymake 2016-10-14 13:44:49.530646098 +0200
+@@ -537,0 +538,3 @@
++# We want to have our own definitions for spack
++set sysincs = Spack
++
+--- a/Configure 2015-03-16 22:22:17.000000000 +0100
++++ b/Configure 2016-10-14 13:49:42.157631106 +0200
+@@ -1137,5 +1137,13 @@
+- if (! -d $incs[1]) then
+- echo " *** Warning: <$incs[1]> does not exist"
+- echo ""
+- goto proc_locincdir
+- else
++
++ # We don't want our path(s) to be preprocessed by cpp
++ # inside ymake script. That is why we pass them in quotes (')
++ # to this script. But if we do so, the following condition
++ # is always false. That is why we comment it out and promise
++ # to pass only correct path(s). You might want to do the same
++ # thing for the libraries search path(s).
++
++ # if (! -d $incs[1]) then
++ # echo " *** Warning: <$incs[1]> does not exist"
++ # echo ""
++ # goto proc_locincdir
++ # else
+@@ -1143 +1151 @@
+- endif
++ # endif
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
index 4bc4da68e3..acd96f5e9c 100644
--- a/var/spack/repos/builtin/packages/nco/package.py
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -23,32 +23,33 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class Nco(Package):
+
+class Nco(AutotoolsPackage):
"""The NCO toolkit manipulates and analyzes data stored in
netCDF-accessible formats"""
- homepage = "https://sourceforge.net/projects/nco"
- url = "https://github.com/nco/nco/archive/4.5.5.tar.gz"
+ homepage = "http://nco.sourceforge.net/"
+ url = "https://github.com/nco/nco/archive/4.6.2.tar.gz"
+ version('4.6.3', '0e1d6616c65ed3a30c54cc776da4f987')
+ version('4.6.2', 'b7471acf0cc100343392f4171fb56113')
+ version('4.6.1', 'ef43cc989229c2790a9094bd84728fd8')
version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce')
+ variant('doc', default=False, description='Build/install NCO TexInfo-based documentation')
+
# See "Compilation Requirements" at:
# http://nco.sourceforge.net/#bld
-
depends_on('netcdf')
- 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('opendap') # (enables network transparency),
-
- def install(self, spec, prefix):
- opts = [
- '--prefix=%s' % prefix,
- '--disable-openmp', # TODO: Make this a variant
- '--disable-dap', # TODO: Make this a variant
- '--disable-esmf']
- configure(*opts)
- make()
- make("install")
+ 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('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('texinfo@4.12:', type='build', when='+doc')
+
+ def configure_args(self):
+ spec = self.spec
+ return ['--{0}-doc'.format('enable' if '+doc' in spec else 'disable')]
diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py
index 3ab2b0477d..e4fd5bf269 100644
--- a/var/spack/repos/builtin/packages/ncurses/package.py
+++ b/var/spack/repos/builtin/packages/ncurses/package.py
@@ -24,11 +24,14 @@
##############################################################################
from spack import *
+
class Ncurses(Package):
- """The ncurses (new curses) library is a free software emulation of curses
- in System V Release 4.0, and more. It uses terminfo format, supports pads and
- color and multiple highlights and forms characters and function-key mapping,
- and has all the other SYSV-curses enhancements over BSD curses.
+ """The ncurses (new curses) library is a free software emulation of
+ curses in System V Release 4.0, and more. It uses terminfo format,
+ supports pads and color and multiple highlights and forms
+ characters and function-key mapping, and has all the other
+ SYSV-curses enhancements over BSD curses.
+
"""
homepage = "http://invisible-island.net/ncurses/ncurses.html"
@@ -47,7 +50,10 @@ class Ncurses(Package):
"--enable-widec",
"--enable-overwrite",
"--disable-lib-suffixes",
- "--without-ada"]
+ "--without-ada",
+ "--enable-pc-files",
+ "--with-pkg-config-libdir={0}/lib/pkgconfig".format(prefix)
+ ]
configure(*opts)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py
index b39e17ca49..5c3cf300d2 100644
--- a/var/spack/repos/builtin/packages/ncview/package.py
+++ b/var/spack/repos/builtin/packages/ncview/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Ncview(Package):
"""Simple viewer for NetCDF files."""
homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html"
@@ -31,14 +32,13 @@ class Ncview(Package):
version('2.1.7', 'debd6ca61410aac3514e53122ab2ba07')
- depends_on("netcdf")
- depends_on("udunits2")
-
- # OS Dependencies
- # Ubuntu: apt-get install libxaw7-dev
- # CentOS 7: yum install libXaw-devel
+ depends_on('netcdf')
+ depends_on('udunits2')
+ depends_on('libpng')
+ depends_on('libxaw')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ configure('--prefix={0}'.format(prefix))
+
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/ndiff/package.py b/var/spack/repos/builtin/packages/ndiff/package.py
index 3c9dd4054a..dc41add03f 100644
--- a/var/spack/repos/builtin/packages/ndiff/package.py
+++ b/var/spack/repos/builtin/packages/ndiff/package.py
@@ -24,11 +24,15 @@
##############################################################################
from spack import *
+
class Ndiff(Package):
- """The ndiff tool is a binary utility that compares putatively similar files
- while ignoring small numeric differernces. This utility is most often used
- to compare files containing a lot of floating-point numeric data that
- may be slightly different due to numeric error."""
+ """The ndiff tool is a binary utility that compares putatively similar
+ files while ignoring small numeric differernces. This utility is
+ most often used to compare files containing a lot of
+ floating-point numeric data that may be slightly different due to
+ numeric error.
+
+ """
homepage = "http://ftp.math.utah.edu/pub/ndiff/"
url = "http://ftp.math.utah.edu/pub/ndiff/ndiff-2.00.tar.gz"
diff --git a/var/spack/repos/builtin/packages/netcdf-cxx/package.py b/var/spack/repos/builtin/packages/netcdf-cxx/package.py
index 994c51c0da..2ad710fc45 100644
--- a/var/spack/repos/builtin/packages/netcdf-cxx/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-cxx/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class NetcdfCxx(Package):
+
+class NetcdfCxx(AutotoolsPackage):
"""Deprecated C++ compatibility bindings for NetCDF.
These do NOT read or write NetCDF-4 files, and are no longer
maintained by Unidata. Developers should migrate to current
@@ -36,8 +37,3 @@ class NetcdfCxx(Package):
version('4.2', 'd32b20c00f144ae6565d9e98d9f6204c')
depends_on('netcdf')
-
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
index f8af76429b..2da30c7b0c 100644
--- a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
@@ -25,7 +25,7 @@
from spack import *
-class NetcdfCxx4(Package):
+class NetcdfCxx4(AutotoolsPackage):
"""C++ interface for NetCDF4"""
homepage = "http://www.unidata.ucar.edu/software/netcdf"
url = "https://www.github.com/unidata/netcdf-cxx4/tarball/v4.3.0"
@@ -34,11 +34,8 @@ class NetcdfCxx4(Package):
version('4.2.1', 'd019853802092cf686254aaba165fc81')
depends_on('netcdf')
- depends_on("autoconf")
+ depends_on('autoconf', type='build')
- def install(self, spec, prefix):
+ def autoreconf(self, spec, prefix):
# Rebuild to prevent problems of inconsistency in git repo
which('autoreconf')('-ivf')
- configure('--prefix=%s' % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
index 3d1951ceee..a2556d8783 100644
--- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
@@ -24,17 +24,14 @@
##############################################################################
from spack import *
-class NetcdfFortran(Package):
+
+class NetcdfFortran(AutotoolsPackage):
"""Fortran interface for NetCDF4"""
homepage = "http://www.unidata.ucar.edu/software/netcdf"
url = "http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.4.3.tar.gz"
+ version('4.4.4', 'e855c789cd72e1b8bc1354366bf6ac72')
version('4.4.3', 'bfd4ae23a34635b273d3eb0d91cbde9e')
depends_on('netcdf')
-
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py
index c2256d5e9f..79a1be2090 100644
--- a/var/spack/repos/builtin/packages/netcdf/package.py
+++ b/var/spack/repos/builtin/packages/netcdf/package.py
@@ -25,64 +25,116 @@
from spack import *
-class Netcdf(Package):
- """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."""
+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"
url = "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.3.3.tar.gz"
- version('4.4.0', 'cffda0cbd97fdb3a06e9274f7aef438e')
- version('4.3.3', '5fbd0e108a54bd82cb5702a73f56d2ae')
-
- variant('mpi', default=True, description='Enables MPI parallelism')
- variant('hdf4', default=False, description='Enable HDF4 support')
-
- depends_on("m4")
+ version('4.4.1', '7843e35b661c99e1d49e60791d5072d8')
+ version('4.4.0', 'cffda0cbd97fdb3a06e9274f7aef438e')
+ version('4.3.3.1', '5c9dad3705a3408d27f696e5b31fb88c')
+ version('4.3.3', '5fbd0e108a54bd82cb5702a73f56d2ae')
+
+ variant('mpi', default=True, description='Enables MPI parallelism')
+ variant('hdf4', default=False, description='Enable HDF4 support')
+ variant('shared', default=True, description='Enable shared library')
+ variant('parallel-netcdf', default=False, description='Enable PnetCDF support')
+ variant('dap', default=False, description='Enable DAP support')
+ 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.')
+ variant('maxvars', default=8192,
+ description='Defines the maximum variables of NetCDF files.')
+
+ depends_on("m4", type='build')
depends_on("hdf", when='+hdf4')
-
- # Required for DAP support
- depends_on("curl")
+ depends_on("curl@7.18.0:", when='+dap')
+ depends_on("curl@7.18.0:", when='+cdmremote')
+ depends_on('parallel-netcdf', when='@4.2.1.1:+parallel-netcdf')
# Required for NetCDF-4 support
- depends_on("zlib")
- depends_on("hdf5+mpi", when='+mpi')
- depends_on("hdf5~mpi", when='~mpi')
+ depends_on("zlib@1.2.5:")
+ depends_on('hdf5')
+
+ # 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', when='@:4.4.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):
+ spec = self.spec
+ # Workaround until variant forwarding works properly
+ if '+mpi' in spec and spec.satisfies('^hdf5~mpi'):
+ raise RuntimeError('Invalid spec. Package netcdf requires '
+ 'hdf5+mpi, but spec asked for hdf5~mpi.')
- def install(self, spec, prefix):
# Environment variables
+ CFLAGS = []
CPPFLAGS = []
LDFLAGS = []
LIBS = []
config_args = [
- "--prefix=%s" % prefix,
"--enable-fsync",
"--enable-v2",
"--enable-utilities",
- "--enable-shared",
"--enable-static",
"--enable-largefile",
# necessary for HDF5 support
"--enable-netcdf-4",
"--enable-dynamic-loading",
- # necessary for DAP support
- "--enable-dap"
]
- # Make sure Netcdf links against Spack's curl
- # Otherwise it may pick up system's curl, which could lead to link errors:
- # /usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_use_certificate_chain_file@OPENSSL_1.0.0'
- LIBS.append("-lcurl")
- CPPFLAGS.append("-I%s" % spec['curl'].prefix.include)
- LDFLAGS.append( "-L%s" % spec['curl'].prefix.lib)
+ if '+shared' in spec:
+ config_args.append('--enable-shared')
+ else:
+ config_args.append('--disable-shared')
+ # We don't have shared libraries but we still want it to be
+ # possible to use this library in shared builds
+ CFLAGS.append('-fPIC')
+
+ if '+dap' in spec:
+ config_args.append('--enable-dap')
+ else:
+ config_args.append('--disable-dap')
+
+ if '+cdmremote' in spec:
+ config_args.append('--enable-cdmremote')
+ else:
+ config_args.append('--disable-cdmremote')
+
+ if '+dap' in spec or '+cdmremote' in 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`
+ LIBS.append("-lcurl")
+ CPPFLAGS.append("-I%s" % spec['curl'].prefix.include)
+ LDFLAGS.append("-L%s" % spec['curl'].prefix.lib)
if '+mpi' in spec:
config_args.append('--enable-parallel4')
CPPFLAGS.append("-I%s/include" % spec['hdf5'].prefix)
- LDFLAGS.append( "-L%s/lib" % spec['hdf5'].prefix)
+ LDFLAGS.append("-L%s/lib" % spec['hdf5'].prefix)
# HDF4 support
# As of NetCDF 4.1.3, "--with-hdf4=..." is no longer a valid option
@@ -90,22 +142,32 @@ class Netcdf(Package):
if '+hdf4' in spec:
config_args.append("--enable-hdf4")
CPPFLAGS.append("-I%s/include" % spec['hdf'].prefix)
- LDFLAGS.append( "-L%s/lib" % spec['hdf'].prefix)
- LIBS.append( "-l%s" % "jpeg")
+ LDFLAGS.append("-L%s/lib" % spec['hdf'].prefix)
+ LIBS.append("-l%s" % "jpeg")
- if 'szip' in spec:
+ if '+szip' in spec:
CPPFLAGS.append("-I%s/include" % spec['szip'].prefix)
- LDFLAGS.append( "-L%s/lib" % spec['szip'].prefix)
- LIBS.append( "-l%s" % "sz")
+ LDFLAGS.append("-L%s/lib" % spec['szip'].prefix)
+ LIBS.append("-l%s" % "sz")
+
+ # PnetCDF support
+ if '+parallel-netcdf' in spec:
+ config_args.append('--enable-pnetcdf')
+ config_args.append('CC=%s' % spec['mpi'].mpicc)
+ CPPFLAGS.append("-I%s/include" % spec['parallel-netcdf'].prefix)
+ LDFLAGS.append("-L%s/lib" % spec['parallel-netcdf'].prefix)
# 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=%s' % ' '.join(CFLAGS))
config_args.append('CPPFLAGS=%s' % ' '.join(CPPFLAGS))
config_args.append('LDFLAGS=%s' % ' '.join(LDFLAGS))
config_args.append('LIBS=%s' % ' '.join(LIBS))
- configure(*config_args)
- make()
- make("install")
+ 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/netgauge/package.py b/var/spack/repos/builtin/packages/netgauge/package.py
index be9292fabb..b57cdbe5f3 100644
--- a/var/spack/repos/builtin/packages/netgauge/package.py
+++ b/var/spack/repos/builtin/packages/netgauge/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Netgauge(Package):
"""Netgauge is a high-precision network parameter measurement
tool. It supports benchmarking of many different network protocols
diff --git a/var/spack/repos/builtin/packages/netlib-lapack/package.py b/var/spack/repos/builtin/packages/netlib-lapack/package.py
index 47857eb713..4b03259cbd 100644
--- a/var/spack/repos/builtin/packages/netlib-lapack/package.py
+++ b/var/spack/repos/builtin/packages/netlib-lapack/package.py
@@ -1,4 +1,4 @@
-##############################################################################
+#############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
@@ -26,15 +26,17 @@ from spack import *
class NetlibLapack(Package):
- """
- LAPACK version 3.X is a comprehensive FORTRAN library that does linear algebra operations including matrix
- inversions, least squared solutions to linear sets of equations, eigenvector analysis, singular value
- decomposition, etc. It is a very comprehensive and reputable package that has found extensive use in the
- scientific community.
+ """LAPACK version 3.X is a comprehensive FORTRAN library that does
+ linear algebra operations including matrix inversions, least squared
+ solutions to linear sets of equations, eigenvector analysis, singular
+ value decomposition, etc. It is a very comprehensive and reputable
+ package that has found extensive use in the scientific community.
+
"""
homepage = "http://www.netlib.org/lapack/"
url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
+ version('3.6.1', '421b2cb72e15f237e144428f9c460ee0')
version('3.6.0', 'f2f6c67134e851fe189bb3ca1fbb5101')
version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
version('3.4.2', '61bf1a8a4469d4bdb7604f5897179478')
@@ -44,37 +46,64 @@ class NetlibLapack(Package):
variant('debug', default=False, description='Activates the Debug build type')
variant('shared', default=True, description="Build shared library version")
- variant('external-blas', default=False, description='Build lapack with an external blas')
+ variant('external-blas', default=False,
+ description='Build lapack with an external blas')
- variant('lapacke', default=True, description='Activates the build of the LAPACKE C interface')
+ variant('lapacke', default=True,
+ description='Activates the build of the LAPACKE C interface')
# virtual dependency
provides('blas', when='~external-blas')
provides('lapack')
- depends_on('cmake')
+ depends_on('cmake', type='build')
depends_on('blas', when='+external-blas')
-
def patch(self):
# Fix cblas CMakeLists.txt -- has wrong case for subdirectory name.
if self.spec.satisfies('@3.6.0:'):
- filter_file('${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/',
- '${CMAKE_CURRENT_SOURCE_DIR}/cmake/', 'CBLAS/CMakeLists.txt', string=True)
+ filter_file(
+ '${CMAKE_CURRENT_SOURCE_DIR}/CMAKE/',
+ '${CMAKE_CURRENT_SOURCE_DIR}/cmake/',
+ 'CBLAS/CMakeLists.txt', string=True)
+
+ @property
+ def blas_libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ ['libblas'], root=self.prefix, shared=shared, recurse=True
+ )
+
+ @property
+ def lapack_libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ ['liblapack'], root=self.prefix, shared=shared, recurse=True
+ )
def install_one(self, spec, prefix, shared):
- cmake_args = ['-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if shared else 'OFF'),
- '-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'),
- '-DLAPACKE:BOOL=%s' % ('ON' if '+lapacke' in spec else 'OFF')]
+ cmake_args = [
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if shared else 'OFF'),
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'Debug' if '+debug' in spec else 'Release'),
+ '-DLAPACKE:BOOL=%s' % ('ON' if '+lapacke' in spec else 'OFF')]
if spec.satisfies('@3.6.0:'):
- cmake_args.extend(['-DCBLAS=ON']) # always build CBLAS
+ cmake_args.extend(['-DCBLAS=ON']) # always build CBLAS
+
+ if self.compiler.name == 'intel':
+ # Intel compiler finds serious syntax issues when trying to
+ # build CBLAS and LapackE
+ cmake_args.extend(['-DCBLAS=OFF'])
+ cmake_args.extend(['-DLAPACKE:BOOL=OFF'])
+
+ # deprecated routines are commonly need by, for example, suitesparse
+ # Note that OpenBLAS spack is built with deprecated routines
+ cmake_args.extend(['-DBUILD_DEPRECATED:BOOL=ON'])
if '+external-blas' in spec:
- # TODO : the mechanism to specify the library should be more general,
- # TODO : but this allows to have an hook to an external blas
cmake_args.extend([
'-DUSE_OPTIMIZED_BLAS:BOOL=ON',
- '-DBLAS_LIBRARIES:PATH=%s' % join_path(spec['blas'].prefix.lib, 'libblas.a')
+ '-DBLAS_LIBRARIES:PATH=%s' % spec['blas'].blas_libs.joined(';')
])
cmake_args.extend(std_cmake_args)
@@ -85,7 +114,6 @@ class NetlibLapack(Package):
make()
make("install")
-
def install(self, spec, prefix):
# Always build static libraries.
self.install_one(spec, prefix, False)
@@ -93,16 +121,3 @@ class NetlibLapack(Package):
# Build shared libraries if requested.
if '+shared' in spec:
self.install_one(spec, prefix, True)
-
-
- def setup_dependent_package(self, module, dspec):
- # This is WIP for a prototype interface for virtual packages.
- # We can update this as more builds start depending on BLAS/LAPACK.
- libdir = find_library_path('libblas.a', self.prefix.lib64, self.prefix.lib)
-
- self.spec.blas_static_lib = join_path(libdir, 'libblas.a')
- self.spec.lapack_static_lib = join_path(libdir, 'liblapack.a')
-
- if '+shared' in self.spec:
- self.spec.blas_shared_lib = join_path(libdir, 'libblas.%s' % dso_suffix)
- self.spec.lapack_shared_lib = join_path(libdir, 'liblapack.%s' % dso_suffix)
diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
index f7fe26a42d..578d2d8988 100644
--- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py
+++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
@@ -25,11 +25,14 @@
from spack import *
import sys
+
class NetlibScalapack(Package):
- """ScaLAPACK is a library of high-performance linear algebra routines for parallel distributed memory machines"""
+ """ScaLAPACK is a library of high-performance linear algebra routines for
+ parallel distributed memory machines
+ """
homepage = "http://www.netlib.org/scalapack/"
- url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz"
+ url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz"
version('2.0.2', '2f75e600a2ba155ed9ce974a1c4b536f')
version('2.0.1', '17b8cde589ea0423afe1ec43e7499161')
@@ -37,21 +40,48 @@ class NetlibScalapack(Package):
# versions before 2.0.0 are not using cmake and requires blacs as
# a separated package
- variant('shared', default=True, description='Build the shared library version')
- variant('fpic', default=False, description="Build with -fpic compiler option")
+ variant(
+ 'shared',
+ default=True,
+ description='Build the shared library version'
+ )
+ variant(
+ 'fpic',
+ default=False,
+ description='Build with -fpic compiler option'
+ )
provides('scalapack')
- depends_on('cmake')
depends_on('mpi')
depends_on('lapack')
+ depends_on('blas')
+ depends_on('cmake', when='@2.0.0:', type='build')
+
+ @property
+ def scalapack_libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ ['libscalapack'], root=self.prefix, shared=shared, recurse=True
+ )
def install(self, spec, prefix):
options = [
- "-DBUILD_SHARED_LIBS:BOOL=%s" % ('ON' if '+shared' in spec else 'OFF'),
- "-DBUILD_STATIC_LIBS:BOOL=%s" % ('OFF' if '+shared' in spec else 'ON'),
- "-DUSE_OPTIMIZED_LAPACK_BLAS:BOOL=ON", # forces scalapack to use find_package(LAPACK)
- ]
+ "-DBUILD_SHARED_LIBS:BOOL=%s" % ('ON' if '+shared' in spec else
+ 'OFF'),
+ "-DBUILD_STATIC_LIBS:BOOL=%s" % ('OFF' if '+shared' in spec else
+ 'ON')
+ ]
+
+ # Make sure we use Spack's Lapack:
+ blas = spec['blas'].blas_libs
+ lapack = spec['lapack'].lapack_libs
+ options.extend([
+ '-DLAPACK_FOUND=true',
+ '-DLAPACK_INCLUDE_DIRS=%s' % spec['lapack'].prefix.include,
+ '-DLAPACK_LIBRARIES=%s' % (lapack.joined(';')),
+ '-DBLAS_LIBRARIES=%s' % (blas.joined(';'))
+ ])
if '+fpic' in spec:
options.extend([
@@ -66,16 +96,6 @@ class NetlibScalapack(Package):
make()
make("install")
- # The shared libraries are not installed correctly on Darwin; correct this
+ # The shared libraries are not installed correctly on Darwin:
if (sys.platform == 'darwin') and ('+shared' in spec):
fix_darwin_install_name(prefix.lib)
-
-
- def setup_dependent_package(self, module, dependent_spec):
- spec = self.spec
- lib_dsuffix = '.dylib' if sys.platform == 'darwin' else '.so'
- lib_suffix = lib_dsuffix if '+shared' in spec else '.a'
-
- spec.fc_link = '-L%s -lscalapack' % spec.prefix.lib
- spec.cc_link = spec.fc_link
- spec.libraries = [join_path(spec.prefix.lib, 'libscalapack%s' % lib_suffix)]
diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py
index 56e4836611..7e2b758bc0 100644
--- a/var/spack/repos/builtin/packages/nettle/package.py
+++ b/var/spack/repos/builtin/packages/nettle/package.py
@@ -24,18 +24,24 @@
##############################################################################
from spack import *
+
class Nettle(Package):
"""The Nettle package contains the low-level cryptographic library
that is designed to fit easily in many contexts."""
- homepage = "http://www.example.com"
+ homepage = "https://www.lysator.liu.se/~nisse/nettle/"
url = "http://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz"
+ version('3.2', 'afb15b4764ebf1b4e6d06c62bd4d29e4')
version('2.7', '2caa1bd667c35db71becb93c5d89737f')
depends_on('gmp')
+ depends_on('m4', type='build')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
+
make()
- make("install")
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py
new file mode 100644
index 0000000000..54f3dbf915
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nextflow/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nextflow(Package):
+ """Data-driven computational pipelines"""
+
+ homepage = "http://www.nextflow.io"
+
+ version('0.20.1', '0e4e0e3eca1c2c97f9b4bffd944b923a',
+ url='https://github.com/nextflow-io/nextflow/releases/download/v0.20.1/nextflow',
+ expand=False)
+
+ depends_on('jdk')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install("nextflow", join_path(prefix.bin, "nextflow"))
+ set_executable(join_path(prefix.bin, "nextflow"))
diff --git a/var/spack/repos/builtin/packages/nfft/package.py b/var/spack/repos/builtin/packages/nfft/package.py
new file mode 100644
index 0000000000..4c1ce2b03d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nfft/package.py
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nfft(AutotoolsPackage):
+ """NFFT is a C subroutine library for computing the nonequispaced discrete
+ Fourier transform (NDFT) in one or more dimensions, of arbitrary input
+ size, and of complex data."""
+
+ homepage = "https://www-user.tu-chemnitz.de/~potts/nfft"
+ url = "https://www-user.tu-chemnitz.de/~potts/nfft/download/nfft-3.3.2.tar.gz"
+
+ version('3.3.2', '550737c06f4d6ea6c156800169d8f0d9')
+
+ depends_on('fftw')
+
+ def install(self, spec, prefix):
+ options = ['--prefix={0}'.format(prefix)]
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
+
+ if '+float' in spec['fftw']:
+ configure('--enable-float', *options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
+ if '+long_double' in spec['fftw']:
+ configure('--enable-long-double', *options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/ninja/package.py b/var/spack/repos/builtin/packages/ninja/package.py
index e3f3819289..dcd00576dd 100644
--- a/var/spack/repos/builtin/packages/ninja/package.py
+++ b/var/spack/repos/builtin/packages/ninja/package.py
@@ -25,6 +25,7 @@
from spack import *
import os
+
class Ninja(Package):
""" A small, fast Make alternative """
homepage = "https://martine.github.io/ninja/"
@@ -35,7 +36,6 @@ class Ninja(Package):
extends('python')
def install(self, spec, prefix):
- sh = which('sh')
python('configure.py', '--bootstrap')
cp = which('cp')
diff --git a/var/spack/repos/builtin/packages/nmap/package.py b/var/spack/repos/builtin/packages/nmap/package.py
new file mode 100644
index 0000000000..f4576cde53
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nmap/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nmap(AutotoolsPackage):
+ """Nmap ("Network Mapper") is a free and open source (license)
+ utility for network discovery and security auditing.
+ It also provides ncat an updated nc"""
+
+ homepage = "https://nmap.org"
+ url = "https://nmap.org/dist/nmap-7.31.tar.bz2"
+
+ version('7.31', 'f2f6660142a777862342a58cc54258ea')
+ version('7.30', '8d86797d5c9e56de571f9630c0e6b5f8')
diff --git a/var/spack/repos/builtin/packages/node-js/package.py b/var/spack/repos/builtin/packages/node-js/package.py
new file mode 100644
index 0000000000..8f129bd3e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/node-js/package.py
@@ -0,0 +1,110 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+import subprocess
+
+
+class NodeJs(Package):
+ """Node.js is a JavaScript runtime built on Chrome's V8 JavaScript
+ engine."""
+
+ homepage = "https://nodejs.org/"
+ url = "https://nodejs.org/download/release/v6.3.0/node-v6.3.0.tar.gz"
+
+ version('7.1.0', '1db5df2cb025f9c70e83d9cf21c4266a')
+ version('6.3.0', '8c14e5c89d66d4d060c91b3ba15dfd31')
+ version('6.2.2', '1120e8bf191fdaee42206d031935210d')
+
+ # variant('bash-completion', default=False, description='Build with bash-completion support for npm') # NOQA: ignore=E501
+ variant('debug', default=False, description='Include debugger support')
+ variant('doc', default=False, description='Compile with documentation')
+ variant('icu4c', default=False, description='Build with support for all locales instead of just English')
+ variant('openssl', default=True, description='Build with Spacks OpenSSL instead of the bundled version')
+ variant('zlib', default=True, description='Build with Spacks zlib instead of the bundled version')
+
+ depends_on('libtool', type='build', when=sys.platform != 'darwin')
+ depends_on('pkg-config', type='build')
+ depends_on('python@2.7:2.7.999', type='build')
+ # depends_on('bash-completion', when="+bash-completion")
+ depends_on('icu4c', when='+icu4c')
+ depends_on('openssl', when='+openssl')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(['--prefix={0}'.format(prefix)])
+
+ # Note: npm is updated more regularly than node.js, so we build the
+ # package instead of using the bundled version
+ options.extend(['--without-npm'])
+
+ # On OSX, the system libtool must be used
+ # So, we ensure that this is the case by...
+ if sys.platform == 'darwin':
+ process_pipe = subprocess.Popen(["which", "libtool"],
+ stdout=subprocess.PIPE)
+ result_which = process_pipe.communicate()[0]
+ process_pipe = subprocess.Popen(["whereis", "libtool"],
+ stdout=subprocess.PIPE)
+ result_whereis = process_pipe.communicate()[0]
+ assert result_which == result_whereis, (
+ 'On OSX the system libtool must be used. Please'
+ '(temporarily) remove \n %s or its link to libtool from'
+ 'path')
+
+ # TODO: Add bash-completion
+
+ if '+debug' in spec:
+ options.extend(['--debug'])
+
+ if '+openssl' in spec:
+ options.extend([
+ '--shared-openssl',
+ '--shared-openssl-includes=%s' % spec['openssl'].prefix.include, # NOQA: ignore=E501
+ '--shared-openssl-libpath=%s' % spec['openssl'].prefix.lib,
+ ])
+
+ if '+zlib' in spec:
+ options.extend([
+ '--shared-zlib',
+ '--shared-zlib-includes=%s' % spec['zlib'].prefix.include,
+ '--shared-zlib-libpath=%s' % spec['zlib'].prefix.lib,
+ ])
+
+ if '+icu4c' in spec:
+ options.extend(['--with-intl=full-icu'])
+ # else:
+ # options.extend(['--with-intl=system-icu'])
+
+ configure(*options)
+
+ if self.run_tests:
+ make('test')
+ make('test-addons')
+
+ if '+doc' in spec:
+ make('doc')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/npm/package.py b/var/spack/repos/builtin/packages/npm/package.py
new file mode 100644
index 0000000000..7910a8af9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/npm/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import os
+from spack import *
+
+
+class Npm(Package):
+ """npm: A package manager for javascript."""
+
+ homepage = "https://github.com/npm/npm"
+ # base http://www.npmjs.com/
+ url = "https://registry.npmjs.org/npm/-/npm-3.10.5.tgz"
+
+ version('3.10.9', 'ec1eb22b466ce87cdd0b90182acce07f')
+ version('3.10.5', '46002413f4a71de9b0da5b506bf1d992')
+
+ depends_on('node-js')
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ npm_config_cache_dir = "%s/npm-cache" % dependent_spec.prefix
+ if not os.path.isdir(npm_config_cache_dir):
+ mkdir(npm_config_cache_dir)
+ run_env.set('npm_config_cache', npm_config_cache_dir)
+ spack_env.set('npm_config_cache', npm_config_cache_dir)
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ if self.run_tests:
+ make('test')
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/numdiff/package.py b/var/spack/repos/builtin/packages/numdiff/package.py
index e15d60cb0b..0a912d3db9 100644
--- a/var/spack/repos/builtin/packages/numdiff/package.py
+++ b/var/spack/repos/builtin/packages/numdiff/package.py
@@ -25,7 +25,8 @@
from spack import *
import sys
-class Numdiff(Package):
+
+class Numdiff(AutotoolsPackage):
"""Numdiff is a little program that can be used to compare putatively
similar files line by line and field by field, ignoring small numeric
differences or/and different numeric formats."""
@@ -35,10 +36,4 @@ class Numdiff(Package):
version('5.8.1', 'a295eb391f6cb1578209fc6b4f9d994e')
- depends_on('gettext', sys.platform=='darwin')
-
- def install(self, spec, prefix):
- options = ['--prefix=%s' % prefix]
- configure(*options)
- make()
- make('install')
+ depends_on('gettext', when=sys.platform == 'darwin')
diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py
new file mode 100644
index 0000000000..556dba34c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nwchem/package.py
@@ -0,0 +1,170 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+import os
+
+
+class Nwchem(Package):
+ """High-performance computational chemistry software"""
+
+ homepage = "http://www.nwchem-sw.org"
+ url = "http://www.nwchem-sw.org/images/Nwchem-6.6.revision27746-src.2015-10-20.tar.gz"
+
+ version('6.6', 'c581001c004ea5e5dfacb783385825e3',
+ url='http://www.nwchem-sw.org/images/Nwchem-6.6.revision27746-src.2015-10-20.tar.gz')
+
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('mpi')
+ depends_on('scalapack')
+
+ depends_on('python@2.7:2.8', type=('build', 'run'))
+
+ # patches for 6.6-27746:
+ urls_for_patches = {
+ '@6.6': [
+ ('http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz', 'f91c6a04df56e228fe946291d2f38c9a'),
+ ('http://www.nwchem-sw.org/images/Tools_lib64.patch.gz', 'b71e8dbad27f1c97b60a53ec34d3f6e0'),
+ ('http://www.nwchem-sw.org/images/Config_libs66.patch.gz', 'cc4be792e7b5128c3f9b7b1167ade2cf'),
+ ('http://www.nwchem-sw.org/images/Cosmo_meminit.patch.gz', '1d94685bf3b72d8ecd40c46334348ca7'),
+ ('http://www.nwchem-sw.org/images/Sym_abelian.patch.gz', 'b19cade61c787916a73a4aaf6e2445d6'),
+ ('http://www.nwchem-sw.org/images/Xccvs98.patch.gz', 'b9aecc516a3551dcf871cb2f066598cb'),
+ ('http://www.nwchem-sw.org/images/Dplot_tolrho.patch.gz', '0a5bdad63d2d0ffe46b28db7ad6d9cec'),
+ ('http://www.nwchem-sw.org/images/Driver_smalleig.patch.gz', 'c3f609947220c0adb524b02c316b5564'),
+ ('http://www.nwchem-sw.org/images/Ga_argv.patch.gz', '7a665c981cfc17187455e1826f095f6f'),
+ ('http://www.nwchem-sw.org/images/Raman_displ.patch.gz', 'ed334ca0b2fe81ce103ef8cada990c4c'),
+ ('http://www.nwchem-sw.org/images/Ga_defs.patch.gz', '0c3cab4d5cbef5acac16ffc5e6f869ef'),
+ ('http://www.nwchem-sw.org/images/Zgesvd.patch.gz', '8fd5a11622968ef4351bd3d5cddce8f2'),
+ ('http://www.nwchem-sw.org/images/Cosmo_dftprint.patch.gz', '64dcf27f3c6ced2cadfb504fa66e9d08'),
+ ('http://www.nwchem-sw.org/images/Txs_gcc6.patch.gz', '56595a7252da051da13f94edc54fe059'),
+ ('http://www.nwchem-sw.org/images/Gcc6_optfix.patch.gz', 'c6642c21363c09223784b47b8636047d'),
+ ('http://www.nwchem-sw.org/images/Util_gnumakefile.patch.gz', 'af74ea2e32088030137001ce5cb047c5'),
+ ('http://www.nwchem-sw.org/images/Util_getppn.patch.gz', '8dec8ee198bf5ec4c3a22a6dbf31683c'),
+ ('http://www.nwchem-sw.org/images/Gcc6_macs_optfix.patch.gz', 'a891a2713aac8b0423c8096461c243eb'),
+ ('http://www.nwchem-sw.org/images/Notdir_fc.patch.gz', '2dc997d4ab3719ac7964201adbc6fd79')
+ ]
+ }
+ # Iterate over patches
+ for condition, urls in urls_for_patches.iteritems():
+ for url, md5 in urls:
+ patch(url, when=condition, level=0, md5=md5)
+
+ def install(self, spec, prefix):
+ scalapack = spec['scalapack'].scalapack_libs
+ lapack = spec['lapack'].lapack_libs
+ blas = spec['blas'].blas_libs
+ # see http://www.nwchem-sw.org/index.php/Compiling_NWChem
+ args = []
+ args.extend([
+ 'NWCHEM_TOP=%s' % self.stage.source_path,
+ # NWCHEM is picky about FC and CC. They should NOT be full path.
+ # see http://www.nwchem-sw.org/index.php/Special:AWCforum/sp/id7524
+ 'CC=%s' % os.path.basename(spack_cc),
+ 'FC=%s' % os.path.basename(spack_fc),
+ 'USE_MPI=y',
+ 'MPI_LOC=%s' % spec['mpi'].prefix,
+ 'USE_PYTHONCONFIG=y',
+ 'PYTHONVERSION=%s' % spec['python'].version.up_to(2),
+ 'PYTHONHOME=%s' % spec['python'].prefix,
+ 'BLASOPT=%s' % ((lapack + blas).ld_flags),
+ 'BLAS_LIB=%s' % blas.ld_flags,
+ 'LAPACK_LIB=%s' % lapack.ld_flags,
+ 'USE_SCALAPACK=y',
+ 'SCALAPACK=%s' % scalapack.ld_flags,
+ 'NWCHEM_MODULES=all python',
+ 'NWCHEM_LONG_PATHS=Y' # by default NWCHEM_TOP is 64 char max
+ ])
+
+ # TODO: query if blas/lapack/scalapack uses 64bit Ints
+ # A flag to distinguish between 32bit and 64bit integers in linear
+ # algebra (Blas, Lapack, Scalapack)
+ use32bitLinAlg = True
+
+ if use32bitLinAlg:
+ args.extend([
+ 'USE_64TO32=y',
+ 'BLAS_SIZE=4',
+ 'LAPACK_SIZE=4',
+ 'SCALAPACK_SIZE=4'
+ ])
+ else:
+ args.extend([
+ 'BLAS_SIZE=8',
+ 'LAPACK_SIZE=8'
+ 'SCALAPACK_SIZE=8'
+ ])
+
+ if sys.platform == 'darwin':
+ target = 'MACX64'
+ args.extend([
+ 'CFLAGS_FORGA=-DMPICH_NO_ATTR_TYPE_TAGS'
+ ])
+ else:
+ target = 'LINUX64'
+
+ args.extend(['NWCHEM_TARGET=%s' % target])
+
+ with working_dir('src'):
+ make('nwchem_config', *args)
+ if use32bitLinAlg:
+ make('64_to_32', *args)
+ make(*args)
+
+ # need to install by hand. Follow Ubuntu:
+ # http://packages.ubuntu.com/trusty/all/nwchem-data/filelist
+ # http://packages.ubuntu.com/trusty/amd64/nwchem/filelist
+ share_path = join_path(prefix, 'share', 'nwchem')
+ mkdirp(prefix.bin)
+
+ install_tree('data', share_path)
+ install_tree(join_path('basis', 'libraries'),
+ join_path(share_path, 'libraries'))
+ install_tree(join_path('nwpw', 'libraryps'),
+ join_path(share_path, 'libraryps'))
+
+ b_path = join_path(self.stage.source_path, 'bin',
+ target, 'nwchem')
+ chmod = which('chmod')
+ chmod('+x', b_path)
+ install(b_path, prefix.bin)
+
+ # Finally, make user's life easier by creating a .nwchemrc file
+ # to point to the required data files.
+ nwchemrc = """\
+ nwchem_basis_library {data}/libraries/
+ nwchem_nwpw_library {data}/libraryps/
+ ffield amber
+ amber_1 {data}/amber_s/
+ amber_2 {data}/amber_q/
+ amber_3 {data}/amber_x/
+ amber_4 {data}/amber_u/
+ spce {data}/solvents/spce.rst
+ charmm_s {data}/charmm_s/
+ charmm_x {data}/charmm_x/
+""".format(data=share_path)
+ with open(".nwchemrc", 'w') as f:
+ f.write(nwchemrc)
+ install(".nwchemrc", share_path)
diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py
new file mode 100644
index 0000000000..9488d3b7a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ocaml/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ocaml(Package):
+ """OCaml is an industrial strength programming language supporting
+ functional, imperative and object-oriented styles"""
+
+ homepage = "http://ocaml.org/"
+ url = "http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz"
+
+ version('4.03.0', '43812739ea1b4641cf480f57f977c149')
+
+ depends_on('ncurses')
+
+ def install(self, spec, prefix):
+ configure('-prefix', '{0}'.format(prefix))
+
+ make('world.opt')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/oce/package.py b/var/spack/repos/builtin/packages/oce/package.py
index 0f0fcfb733..2d518d83c3 100644
--- a/var/spack/repos/builtin/packages/oce/package.py
+++ b/var/spack/repos/builtin/packages/oce/package.py
@@ -23,24 +23,27 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import platform, sys
+import platform
+
class Oce(Package):
- """
- Open CASCADE Community Edition:
- patches/improvements/experiments contributed by users over the official Open CASCADE library.
+ """Open CASCADE Community Edition:
+ patches/improvements/experiments contributed by users over the official
+ Open CASCADE library.
"""
homepage = "https://github.com/tpaviot/oce"
url = "https://github.com/tpaviot/oce/archive/OCE-0.17.tar.gz"
+ version('0.17.2', 'bf2226be4cd192606af677cf178088e5')
version('0.17.1', '36c67b87093c675698b483454258af91')
- version('0.17' , 'f1a89395c4b0d199bea3db62b85f818d')
+ version('0.17', 'f1a89395c4b0d199bea3db62b85f818d')
version('0.16.1', '4d591b240c9293e879f50d86a0cb2bb3')
- version('0.16' , '7a4b4df5a104d75a537e25e7dd387eca')
+ version('0.16', '7a4b4df5a104d75a537e25e7dd387eca')
- variant('tbb', default=True, description='Build with Intel Threading Building Blocks')
+ variant('tbb', default=True,
+ description='Build with Intel Threading Building Blocks')
- depends_on('cmake@2.8:')
+ depends_on('cmake@2.8:', type='build')
depends_on('tbb', when='+tbb')
# There is a bug in OCE which appears with Clang (version?) or GCC 6.0
@@ -49,8 +52,12 @@ class Oce(Package):
# http://tracker.dev.opencascade.org/view.php?id=26042
# https://github.com/tpaviot/oce/issues/605
# https://github.com/tpaviot/oce/commit/61cb965b9ffeca419005bc15e635e67589c421dd.patch
- patch('null.patch',when='@0.16:0.17.1')
+ patch('null.patch', when='@0.16:0.17.1')
+ # fix build with Xcode 8 "previous definition of CLOCK_REALTIME"
+ # reported 27 Sep 2016 https://github.com/tpaviot/oce/issues/643
+ if (platform.system() == "Darwin") and (platform.mac_ver()[0] == '10.12'):
+ patch('sierra.patch')
def install(self, spec, prefix):
options = []
@@ -63,7 +70,8 @@ class Oce(Package):
'-DOCE_DISABLE_X11:BOOL=ON',
'-DOCE_DRAW:BOOL=OFF',
'-DOCE_MODEL:BOOL=ON',
- '-DOCE_MULTITHREAD_LIBRARY:STRING=%s' % ('TBB' if '+tbb' in spec else 'NONE'),
+ '-DOCE_MULTITHREAD_LIBRARY:STRING=%s' % (
+ 'TBB' if '+tbb' in spec else 'NONE'),
'-DOCE_OCAF:BOOL=ON',
'-DOCE_USE_TCL_TEST_FRAMEWORK:BOOL=OFF',
'-DOCE_VISUALISATION:BOOL=OFF',
@@ -77,15 +85,8 @@ class Oce(Package):
'-DOCE_OSX_USE_COCOA:BOOL=ON',
])
- cmake('.', *options)
+ options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
+ cmake('.', *options)
make("install/strip")
-
- # OCE tests build is brocken at least on Darwin.
- # Unit tests are linked against libTKernel.10.dylib isntead of /full/path/libTKernel.10.dylib
- # see https://github.com/tpaviot/oce/issues/612
- # make("test")
-
- # The shared libraries are not installed correctly on Darwin; correct this
- if (sys.platform == 'darwin'):
- fix_darwin_install_name(prefix.lib)
+ make("test")
diff --git a/var/spack/repos/builtin/packages/oce/sierra.patch b/var/spack/repos/builtin/packages/oce/sierra.patch
new file mode 100644
index 0000000000..8db3af5e37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/oce/sierra.patch
@@ -0,0 +1,45 @@
+diff --git a/adm/cmake/TKernel/CMakeLists.txt b/adm/cmake/TKernel/CMakeLists.txt
+index 54e241e..72873c6 100644
+--- a/adm/cmake/TKernel/CMakeLists.txt
++++ b/adm/cmake/TKernel/CMakeLists.txt
+@@ -29,7 +29,7 @@ if(WIN32)
+ set(TOOLKIT_LIBS ${TOOLKIT_LIBS} ${CSF_SOCKETLibs_LIB} ${CSF_advapi32_LIB} ${CSF_gdi32_LIB} ${CSF_user32_LIB} ${CSF_kernel32_LIB} ${CSF_psapi_LIB})
+ else(WIN32)
+ #  An implementation for Mac OS X has been added in src/OSD/gettime_osx.h
+- if(NOT APPLE)
++ if(APPLE)
+ include( CheckFunctionExists )
+ check_function_exists( clock_gettime CLOCK_GETTIME_IN_LIBC )
+ if(NOT CLOCK_GETTIME_IN_LIBC)
+@@ -40,7 +40,7 @@ else(WIN32)
+ endif(NOT CLOCK_GETTIME_IN_LIBRT)
+ set(TOOLKIT_LIBS ${TOOLKIT_LIBS} rt)
+ endif(NOT CLOCK_GETTIME_IN_LIBC)
+- endif(NOT APPLE)
++ endif(APPLE)
+ endif(WIN32)
+
+ # Adde-DHAVE_TBB in TKernel in order to benefit from Standard_MMgrTBBalloc
+@@ -70,4 +70,3 @@ if (OCE_BUILD_TKERNEL_WITH_INSTALL_RPATH)
+ set_target_properties_install_rpath(${TOOLKIT} "${OCE_INSTALL_LIB_DIR_RPATH};${OCE_INSTALL_PACKAGE_LIB_DIR_RPATH}")
+ set_target_properties(${TOOLKIT} PROPERTIES BUILD_WITH_INSTALL_RPATH ON)
+ endif ()
+-
+diff --git a/src/OSD/OSD_Chronometer.cxx b/src/OSD/OSD_Chronometer.cxx
+index 444f844..25970d0 100644
+--- a/src/OSD/OSD_Chronometer.cxx
++++ b/src/OSD/OSD_Chronometer.cxx
+@@ -51,7 +51,7 @@
+ #include <mach/mach.h>
+ #endif
+
+-#if defined(__APPLE__) && defined(__MACH__)
++#if defined(__OOOOPPLE__) && defined(__MACH__)
+ #include "gettime_osx.h"
+ #endif
+
+@@ -283,4 +283,3 @@ void OSD_Chronometer::Show (Standard_Real& user,
+ system = Cumul_sys;
+ if (!StopSav) Start();
+ }
+-
diff --git a/var/spack/repos/builtin/packages/oclock/package.py b/var/spack/repos/builtin/packages/oclock/package.py
new file mode 100644
index 0000000000..84da93c36e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/oclock/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Oclock(Package):
+ """oclock is a simple analog clock using the SHAPE extension to make
+ a round (possibly transparent) window."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/oclock"
+ url = "https://www.x.org/archive/individual/app/oclock-1.0.3.tar.gz"
+
+ version('1.0.3', 'f25b05d987ef8ed6dd5a887c82eace62')
+
+ depends_on('libx11')
+ depends_on('libxmu')
+ depends_on('libxext')
+ depends_on('libxt')
+ depends_on('libxkbfile')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/octave-splines/package.py b/var/spack/repos/builtin/packages/octave-splines/package.py
new file mode 100644
index 0000000000..11c9cc5ba7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-splines/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class OctaveSplines(Package):
+ """Additional spline functions."""
+
+ homepage = "http://octave.sourceforge.net/splines/index.html"
+ url = "http://downloads.sourceforge.net/octave/splines-1.3.1.tar.gz"
+
+ version('1.3.1', 'f9665d780c37aa6a6e17d1f424c49bdeedb89d1192319a4e39c08784122d18f9')
+
+ extends('octave@3.6.0:')
+
+ def install(self, spec, prefix):
+ octave('--quiet',
+ '--norc',
+ '--built-in-docstrings-file=/dev/null',
+ '--texi-macros-file=/dev/null',
+ '--eval', 'pkg prefix %s; pkg install %s' %
+ (prefix, self.stage.archive_file))
diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py
index 17c7ff82f4..df144c8bbb 100644
--- a/var/spack/repos/builtin/packages/octave/package.py
+++ b/var/spack/repos/builtin/packages/octave/package.py
@@ -23,6 +23,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
+
class Octave(Package):
"""GNU Octave is a high-level language, primarily intended for numerical
@@ -34,7 +36,10 @@ class Octave(Package):
homepage = "https://www.gnu.org/software/octave/"
url = "ftp://ftp.gnu.org/gnu/octave/octave-4.0.0.tar.gz"
- version('4.0.0' , 'a69f8320a4f20a8480c1b278b1adb799')
+ extendable = True
+
+ version('4.0.2', 'c2a5cacc6e4c52f924739cdf22c2c687')
+ version('4.0.0', 'a69f8320a4f20a8480c1b278b1adb799')
# Variants
variant('readline', default=True)
@@ -56,39 +61,41 @@ class Octave(Package):
variant('qrupdate', default=False)
variant('qscintilla', default=False)
variant('qt', default=False)
- variant('suiteparse', default=False)
+ variant('suitesparse', default=False)
variant('zlib', default=False)
# Required dependencies
depends_on('blas')
depends_on('lapack')
+ # Octave does not configure with sed from darwin:
+ depends_on('sed', when=sys.platform == 'darwin', type='build')
depends_on('pcre')
+ depends_on('pkg-config', type='build')
# Strongly recommended dependencies
- depends_on('readline', when='+readline')
+ depends_on('readline', when='+readline')
# Optional dependencies
- depends_on('arpack', when='+arpack')
- depends_on('curl', when='+curl')
- depends_on('fftw', when='+fftw')
- depends_on('fltk', when='+fltk')
- depends_on('fontconfig', when='+fontconfig')
- depends_on('freetype', when='+freetype')
- depends_on('glpk', when='+glpk')
- depends_on('gl2ps', when='+gl2ps')
- depends_on('gnuplot', when='+gnuplot')
- depends_on('ImageMagick', when='+magick')
- depends_on('hdf5', when='+hdf5')
- depends_on('jdk', when='+jdk')
- depends_on('llvm', when='+llvm')
- #depends_on('opengl', when='+opengl') # TODO: add package
- depends_on('qhull', when='+qhull')
- depends_on('qrupdate', when='+qrupdate')
- #depends_on('qscintilla', when='+qscintilla) # TODO: add package
- depends_on('qt', when='+qt')
- depends_on('suite-sparse',when='+suitesparse')
- depends_on('zlib', when='+zlib')
-
+ depends_on('arpack', when='+arpack')
+ depends_on('curl', when='+curl')
+ depends_on('fftw', when='+fftw')
+ depends_on('fltk', when='+fltk')
+ depends_on('fontconfig', when='+fontconfig')
+ depends_on('freetype', when='+freetype')
+ depends_on('glpk', when='+glpk')
+ depends_on('gl2ps', when='+gl2ps')
+ depends_on('gnuplot', when='+gnuplot')
+ depends_on('image-magick', when='+magick')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('jdk', when='+jdk')
+ depends_on('llvm', when='+llvm')
+ # depends_on('opengl', when='+opengl') # TODO: add package
+ depends_on('qhull', when='+qhull')
+ depends_on('qrupdate', when='+qrupdate')
+ # depends_on('qscintilla', when='+qscintilla) # TODO: add package
+ depends_on('qt', when='+qt')
+ depends_on('suite-sparse', when='+suitesparse')
+ depends_on('zlib', when='+zlib')
def install(self, spec, prefix):
config_args = [
@@ -154,7 +161,8 @@ class Octave(Package):
config_args.append("--without-glpk")
if '+magick' in spec:
- config_args.append("--with-magick=%s" % spec['ImageMagick'].prefix.lib)
+ config_args.append("--with-magick=%s"
+ % spec['image-magick'].prefix.lib)
if '+hdf5' in spec:
config_args.extend([
@@ -187,7 +195,8 @@ class Octave(Package):
if '+qrupdate' in spec:
config_args.extend([
- "--with-qrupdate-includedir=%s" % spec['qrupdate'].prefix.include,
+ "--with-qrupdate-includedir=%s"
+ % spec['qrupdate'].prefix.include,
"--with-qrupdate-libdir=%s" % spec['qrupdate'].prefix.lib
])
else:
@@ -205,3 +214,16 @@ class Octave(Package):
make()
make("install")
+
+ # ========================================================================
+ # Set up environment to make install easy for Octave extensions.
+ # ========================================================================
+
+ def setup_dependent_package(self, module, ext_spec):
+ """Called before Octave modules' install() methods.
+
+ In most cases, extensions will only need to have one line:
+ octave('--eval', 'pkg install %s' % self.stage.archive_file)
+ """
+ # Octave extension builds can have a global Octave executable function
+ module.octave = Executable(join_path(self.spec.prefix.bin, 'octave'))
diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py
new file mode 100644
index 0000000000..b74befbe35
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octopus/package.py
@@ -0,0 +1,134 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Octopus(Package):
+ """A real-space finite-difference (time-dependent) density-functional
+ theory code."""
+
+ homepage = "http://www.tddft.org/programs/octopus/"
+ base_url = "http://www.tddft.org/programs/octopus/down.php?file="
+
+ version('6.0', '5d1168c2a8d7fd9cb9492eaebaa7182e')
+ version('5.0.1', '2b6392ab67b843f9d4ca7413fc07e822')
+
+ # Sample url is:
+ # "http://www.tddft.org/programs/octopus/down.php?file=5.0.1/octopus-5.0.1.tar.gz"
+ def url_for_version(self, version):
+ return '{0}/{1}/octopus-{1}.tar.gz'.format(Octopus.base_url,
+ version.dotted)
+
+ variant('scalapack', default=False,
+ description='Compile with Scalapack')
+ variant('metis', default=True,
+ description='Compile with METIS')
+ variant('parmetis', default=False,
+ description='Compile with ParMETIS')
+ variant('netcdf', default=False,
+ description='Compile with Netcdf')
+ variant('arpack-ng', default=False,
+ description='Compile with ARPACK-ng')
+
+ depends_on('blas')
+ depends_on('gsl')
+ depends_on('lapack')
+ depends_on('libxc')
+ depends_on('mpi')
+ depends_on('fftw+mpi')
+ depends_on('metis@5:', when='+metis')
+ depends_on('parmetis', when='+parmetis')
+ depends_on('scalapack', when='+scalapack')
+ depends_on('netcdf-fortran', when='+netcdf')
+ depends_on('arpack-ng', when='+arpack-ng')
+
+ # optional dependencies:
+ # TODO: parmetis, etsf-io, sparskit,
+ # feast, libfm, pfft, isf, pnfft
+
+ def install(self, spec, prefix):
+ arpack = find_libraries(['libarpack'], root=spec[
+ 'arpack-ng'].prefix.lib, shared=True)
+ lapack = spec['lapack'].lapack_libs
+ blas = spec['blas'].blas_libs
+ args = []
+ args.extend([
+ '--prefix=%s' % prefix,
+ '--with-blas=%s' % blas.ld_flags,
+ '--with-lapack=%s' % lapack.ld_flags,
+ '--with-gsl-prefix=%s' % spec['gsl'].prefix,
+ '--with-libxc-prefix=%s' % spec['libxc'].prefix,
+ 'CC=%s' % spec['mpi'].mpicc,
+ 'FC=%s' % spec['mpi'].mpifc,
+ '--enable-mpi',
+ '--with-fft-lib=-L%s -lfftw3' % spec['fftw'].prefix.lib,
+ ])
+ if '+metis' in spec:
+ args.extend([
+ '--with-metis-prefix=%s' % spec['metis'].prefix,
+ ])
+ if '+parmetis' in spec:
+ args.extend([
+ '--with-parmetis-prefix=%s' % spec['parmetis'].prefix,
+ ])
+ if '+netcdf' in spec:
+ args.extend([
+ '--with-netcdf-prefix=%s' % spec['netcdf-fortran'].prefix,
+ '--with-netcdf-include=%s' %
+ spec['netcdf-fortran'].prefix.include,
+ ])
+ if '+arpack-ng' in spec:
+ args.extend([
+ '--with-arpack={0}'.format(arpack.joined()),
+ ])
+ if '+scalapack' in spec:
+ args.extend([
+ '--with-blacs=%s' % spec['scalapack'].scalapack_libs,
+ '--with-scalapack=%s' % spec['scalapack'].scalapack_libs,
+ ])
+ # --with-etsf-io-prefix=
+ # --with-sparskit=${prefix}/lib/libskit.a
+ # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix}
+ # --with-parpack=${prefix}/lib/libparpack.dylib
+ # --with-parmetis-prefix=${prefix}
+ # --with-berkeleygw-prefix=${prefix}
+
+ # When preprocessor expands macros (i.e. CFLAGS) defined as quoted
+ # strings the result may be > 132 chars and is terminated.
+ # This will look to a compiler as an Unterminated character constant
+ # and produce Line truncated errors. To vercome this, add flags to
+ # let compiler know that the entire line is meaningful.
+ # TODO: For the lack of better approach, assume that clang is mixed
+ # with GNU fortran.
+ if spec.satisfies('%clang') or spec.satisfies('%gcc'):
+ args.extend([
+ 'FCFLAGS=-O2 -ffree-line-length-none'
+ ])
+
+ configure(*args)
+ make()
+ # short tests take forever...
+ # make('check-short')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/ompss/package.py b/var/spack/repos/builtin/packages/ompss/package.py
index c0848ffd70..02925974ea 100644
--- a/var/spack/repos/builtin/packages/ompss/package.py
+++ b/var/spack/repos/builtin/packages/ompss/package.py
@@ -26,19 +26,18 @@ from spack import *
import os
import glob
-# working config lines for ompss 14.06 :
-#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr
-#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel
class Ompss(Package):
- """OmpSs is an effort to integrate features from the StarSs
- programming model developed by BSC into a single programming
- model. In particular, our objective is to extend OpenMP with
- new directives to support asynchronous parallelism and
- heterogeneity (devices like GPUs). However, it can also be
- understood as new directives extending other accelerator based
- APIs like CUDA or OpenCL. Our OmpSs environment is built on top
- of our Mercurium compiler and Nanos++ runtime system."""
+ """OmpSs is an effort to integrate features from the StarSs programming
+ model developed by BSC into a single programming model. In
+ particular, our objective is to extend OpenMP with new directives
+ to support asynchronous parallelism and heterogeneity (devices
+ like GPUs). However, it can also be understood as new directives
+ extending other accelerator based APIs like CUDA or OpenCL. Our
+ OmpSs environment is built on top of our Mercurium compiler and
+ Nanos++ runtime system.
+
+ """
homepage = "http://pm.bsc.es/"
url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.10.tar.gz"
list_url = 'http://pm.bsc.es/ompss-downloads'
@@ -47,7 +46,7 @@ class Ompss(Package):
# all dependencies are optional, really
depends_on("mpi")
- #depends_on("openmp")
+ # depends_on("openmp")
depends_on("hwloc")
depends_on("extrae")
@@ -61,14 +60,22 @@ class Ompss(Package):
openmp_options = ["--enable-tl-openmp-profile"]
if spec.satisfies('%intel'):
- openmp_options.append( "--enable-tl-openmp-intel" )
+ openmp_options.append("--enable-tl-openmp-intel")
os.chdir(glob.glob('./nanox-*').pop())
- configure("--prefix=%s" % prefix, "--with-mcc=%s" % prefix, "--with-extrae=%s" % spec['extrae'].prefix, "--with-hwloc=%s" % spec['hwloc'].prefix)
+ configure("--prefix=%s" % prefix,
+ "--with-mcc=%s" % prefix,
+ "--with-extrae=%s" %
+ spec['extrae'].prefix,
+ "--with-hwloc=%s" % spec['hwloc'].prefix)
make()
make("install")
os.chdir(glob.glob('../mcxx-*').pop())
- configure("--prefix=%s" % prefix, "--with-nanox=%s" % prefix, "--enable-ompss", "--with-mpi=%s" % mpi.prefix, *openmp_options)
+ configure("--prefix=%s" % prefix,
+ "--with-nanox=%s" % prefix,
+ "--enable-ompss",
+ "--with-mpi=%s" % mpi.prefix,
+ *openmp_options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/ompt-openmp/package.py b/var/spack/repos/builtin/packages/ompt-openmp/package.py
index e74dcf6c23..40159e4c6c 100644
--- a/var/spack/repos/builtin/packages/ompt-openmp/package.py
+++ b/var/spack/repos/builtin/packages/ompt-openmp/package.py
@@ -24,24 +24,26 @@
##############################################################################
from spack import *
+
class OmptOpenmp(Package):
- """LLVM/Clang OpenMP runtime with OMPT support. This is a fork of the OpenMPToolsInterface/LLVM-openmp fork of the official LLVM OpenMP mirror. This library provides a drop-in replacement of the OpenMP runtimes for GCC, Intel and LLVM/Clang."""
+ """LLVM/Clang OpenMP runtime with OMPT support. This is a fork of the
+ OpenMPToolsInterface/LLVM-openmp fork of the official LLVM OpenMP
+ mirror. This library provides a drop-in replacement of the OpenMP
+ runtimes for GCC, Intel and LLVM/Clang.
+
+ """
homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
url = "http://github.com/khuck/LLVM-openmp/archive/v0.1.tar.gz"
version('0.1', '2334e6a84b52da41b27afd9831ed5370')
- # depends_on("foo")
+ depends_on('cmake', type='build')
def install(self, spec, prefix):
with working_dir("runtime/build", create=True):
-
- # FIXME: Modify the configure line to suit your build system here.
- cmake('-DCMAKE_C_COMPILER=%s' % self.compiler.cc,
+ cmake('-DCMAKE_C_COMPILER=%s' % self.compiler.cc,
'-DCMAKE_CXX_COMPILER=%s' % self.compiler.cxx,
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'..', *std_cmake_args)
-
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/opari2/package.py b/var/spack/repos/builtin/packages/opari2/package.py
index 510fff9fc2..20c67716a4 100644
--- a/var/spack/repos/builtin/packages/opari2/package.py
+++ b/var/spack/repos/builtin/packages/opari2/package.py
@@ -22,21 +22,25 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
+
class Opari2(Package):
- """
- OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and
- runtime library calls with calls to the POMP2 measurement interface. OPARI2 will provide you with a new
- initialization method that allows for multi-directory and parallel builds as well as the usage of pre-instrumented
- libraries. Furthermore, an efficient way of tracking parent-child relationships was added. Additionally, we extended
- OPARI2 to support instrumentation of OpenMP 3.0 tied tasks.
+ """OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
+ codes. It surrounds OpenMP directives and runtime library calls with calls
+ to the POMP2 measurement interface. OPARI2 will provide you with a new
+ initialization method that allows for multi-directory and parallel builds
+ as well as the usage of pre-instrumented libraries. Furthermore, an
+ efficient way of tracking parent-child relationships was added.
+ Additionally, we extended OPARI2 to support instrumentation of OpenMP 3.0
+ tied tasks.
"""
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz"
+ version('2.0', '72350dbdb6139f2e68a5055a4f0ba16c',
+ url='http://www.vi-hps.org/upload/packages/opari2/opari2-2.0.tar.gz')
version('1.1.4', '245d3d11147a06de77909b0805f530c0',
url='http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.4.tar.gz')
version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e')
diff --git a/var/spack/repos/builtin/packages/openblas/openblas_icc.patch b/var/spack/repos/builtin/packages/openblas/openblas_icc.patch
new file mode 100644
index 0000000000..fb379aea41
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openblas/openblas_icc.patch
@@ -0,0 +1,253 @@
+diff --git a/kernel/x86_64/cscal_microk_bulldozer-2.c b/kernel/x86_64/cscal_microk_bulldozer-2.c
+index f470cf8..3abffc4 100644
+--- a/kernel/x86_64/cscal_microk_bulldozer-2.c
++++ b/kernel/x86_64/cscal_microk_bulldozer-2.c
+@@ -120,7 +120,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -212,7 +212,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -289,7 +289,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -334,7 +334,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/cscal_microk_haswell-2.c b/kernel/x86_64/cscal_microk_haswell-2.c
+index 0424de3..48e3395 100644
+--- a/kernel/x86_64/cscal_microk_haswell-2.c
++++ b/kernel/x86_64/cscal_microk_haswell-2.c
+@@ -120,7 +120,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", //"0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -212,7 +212,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", // "0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -289,7 +289,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -334,7 +334,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", //"0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/cscal_microk_steamroller-2.c b/kernel/x86_64/cscal_microk_steamroller-2.c
+index 763e7ad..8346e17 100644
+--- a/kernel/x86_64/cscal_microk_steamroller-2.c
++++ b/kernel/x86_64/cscal_microk_steamroller-2.c
+@@ -121,7 +121,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", //"0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -213,7 +213,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", //"0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -290,7 +290,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -335,7 +335,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "0", "1",
++ : "cc", //"0", "1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/dscal.c b/kernel/x86_64/dscal.c
+index bbc1c96..b6bde6c 100644
+--- a/kernel/x86_64/dscal.c
++++ b/kernel/x86_64/dscal.c
+@@ -141,7 +141,7 @@ static void dscal_kernel_inc_8(BLASLONG n, FLOAT *alpha, FLOAT *x, BLASLONG inc_
+ "r" (alpha), // 3
+ "r" (inc_x), // 4
+ "r" (inc_x3) // 5
+- : "cc", "%0", "%1", "%2",
++ : "cc", //"%0", "%1", "%2",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/zscal_microk_bulldozer-2.c b/kernel/x86_64/zscal_microk_bulldozer-2.c
+index 28fe734..03882d6 100644
+--- a/kernel/x86_64/zscal_microk_bulldozer-2.c
++++ b/kernel/x86_64/zscal_microk_bulldozer-2.c
+@@ -120,7 +120,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -212,7 +212,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -289,7 +289,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -334,7 +334,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/zscal_microk_haswell-2.c b/kernel/x86_64/zscal_microk_haswell-2.c
+index a93308e..b1a34c1 100644
+--- a/kernel/x86_64/zscal_microk_haswell-2.c
++++ b/kernel/x86_64/zscal_microk_haswell-2.c
+@@ -120,7 +120,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -212,7 +212,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -289,7 +289,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -334,7 +334,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+diff --git a/kernel/x86_64/zscal_microk_steamroller-2.c b/kernel/x86_64/zscal_microk_steamroller-2.c
+index d611bf5..97b07ad 100644
+--- a/kernel/x86_64/zscal_microk_steamroller-2.c
++++ b/kernel/x86_64/zscal_microk_steamroller-2.c
+@@ -121,7 +121,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -213,7 +213,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -290,7 +290,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
+@@ -335,7 +335,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
+ "r" (n), // 0
+ "r" (x), // 1
+ "r" (alpha) // 2
+- : "cc", "%0", "%1",
++ : "cc", //"%0", "%1",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",
+ "%xmm8", "%xmm9", "%xmm10", "%xmm11",
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index 22e49daaa7..d5a70f077b 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -27,114 +27,133 @@ from spack.package_test import *
import os
-class Openblas(Package):
+class Openblas(MakefilePackage):
"""OpenBLAS: An optimized BLAS library"""
- homepage = "http://www.openblas.net"
- url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz"
+ homepage = 'http://www.openblas.net'
+ url = 'http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz'
+ version('0.2.19', '28c998054fd377279741c6f0b9ea7941')
version('0.2.18', '805e7f660877d588ea7e3792cda2ee65')
version('0.2.17', '664a12807f2a2a7cda4781e3ab2ae0e1')
version('0.2.16', 'fef46ab92463bdbb1479dcec594ef6dc')
version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9')
- variant('shared', default=True, description="Build shared libraries as well as static libs.") # NOQA: ignore=E501
+ variant(
+ 'shared',
+ default=True,
+ description='Build shared libraries as well as static libs.'
+ )
variant('openmp', default=False, description="Enable OpenMP support.")
- variant('fpic', default=True, description="Build position independent code") # NOQA: ignore=E501
+ variant('pic', default=True, description='Build position independent code')
# virtual dependency
provides('blas')
provides('lapack')
patch('make.patch')
+ # This patch is in a pull request to OpenBLAS that has not been handled
+ # https://github.com/xianyi/OpenBLAS/pull/915
+ patch('openblas_icc.patch', when='%intel')
+
+ parallel = False
+
+ @property
+ def blas_libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ ['libopenblas'], root=self.prefix, shared=shared, recurse=True
+ )
+
+ @property
+ def lapack_libs(self):
+ return self.blas_libs
+
+ @MakefilePackage.precondition('edit')
+ def check_compilers(self):
+ # As of 06/2016 there is no mechanism to specify that packages which
+ # depends on Blas/Lapack need C or/and Fortran symbols. For now
+ # require both.
+ if self.compiler.f77 is None:
+ raise InstallError(
+ 'OpenBLAS requires both C and Fortran compilers!'
+ )
+ # Add support for OpenMP
+ if '+openmp' in self.spec and self.spec.satisfies('%clang'):
+ # Openblas (as of 0.2.18) hardcoded that OpenMP cannot
+ # be used with any (!) compiler named clang, bummer.
+ raise InstallError(
+ 'OpenBLAS does not support OpenMP with clang!'
+ )
- def install(self, spec, prefix):
+ @property
+ def make_defs(self):
# Configure fails to pick up fortran from FC=/abs/path/to/f77, but
# works fine with FC=/abs/path/to/gfortran.
# When mixing compilers make sure that
# $SPACK_ROOT/lib/spack/env/<compiler> have symlinks with reasonable
# names and hack them inside lib/spack/spack/compilers/<compiler>.py
- make_defs = ['CC=%s' % spack_cc,
- 'FC=%s' % spack_f77,
- 'MAKE_NO_J=1']
- make_targets = ['libs', 'netlib']
-
- # Build shared if variant is set.
- if '+shared' in spec:
- make_targets += ['shared']
- else:
- if '+fpic' in spec:
- make_defs.extend(['CFLAGS=-fPIC', 'FFLAGS=-fPIC'])
+ make_defs = [
+ 'CC={0}'.format(spack_cc),
+ 'FC={0}'.format(spack_f77),
+ 'MAKE_NO_J=1'
+ ]
+ if self.spec.satisfies('%gcc@:4.8.4'):
+ make_defs += ['NO_AVX2=1']
+ if '~shared' in self.spec:
+ if '+pic' in self.spec:
+ make_defs.extend([
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
+ 'FFLAGS={0}'.format(self.compiler.pic_flag)
+ ])
make_defs += ['NO_SHARED=1']
-
# fix missing _dggsvd_ and _sggsvd_
- if spec.satisfies('@0.2.16'):
+ if self.spec.satisfies('@0.2.16'):
make_defs += ['BUILD_LAPACK_DEPRECATED=1']
-
# Add support for OpenMP
- if '+openmp' in spec:
- # Openblas (as of 0.2.18) hardcoded that OpenMP cannot
- # be used with any (!) compiler named clang, bummer.
- if spec.satisfies('%clang'):
- raise InstallError('OpenBLAS does not support ',
- 'OpenMP with clang!')
-
+ if '+openmp' in self.spec:
make_defs += ['USE_OPENMP=1']
- make_args = make_defs + make_targets
- make(*make_args)
+ return make_defs
- make("tests", *make_defs)
+ @property
+ def build_targets(self):
+ targets = ['libs', 'netlib']
- # no quotes around prefix (spack doesn't use a shell)
- make('install', "PREFIX=%s" % prefix, *make_defs)
+ # Build shared if variant is set.
+ if '+shared' in self.spec:
+ targets += ['shared']
- # Blas virtual package should provide blas.a and libblas.a
- with working_dir(prefix.lib):
- symlink('libopenblas.a', 'blas.a')
- symlink('libopenblas.a', 'libblas.a')
- if '+shared' in spec:
- symlink('libopenblas.%s' % dso_suffix,
- 'libblas.%s' % dso_suffix)
+ return self.make_defs + targets
- # Lapack virtual package should provide liblapack.a
- with working_dir(prefix.lib):
- symlink('libopenblas.a', 'liblapack.a')
- if '+shared' in spec:
- symlink('libopenblas.%s' % dso_suffix,
- 'liblapack.%s' % dso_suffix)
+ @MakefilePackage.sanity_check('build')
+ def check_build(self):
+ make('tests', *self.make_defs)
+ @property
+ def install_targets(self):
+ make_args = [
+ 'install',
+ 'PREFIX={0}'.format(self.prefix),
+ ]
+ return make_args + self.make_defs
+
+ @MakefilePackage.sanity_check('install')
+ def check_install(self):
+ spec = self.spec
# Openblas may pass its own test but still fail to compile Lapack
# symbols. To make sure we get working Blas and Lapack, do a small
# test.
- self.check_install(spec)
-
- def setup_dependent_package(self, module, dspec):
- # This is WIP for a prototype interface for virtual packages.
- # We can update this as more builds start depending on BLAS/LAPACK.
- libdir = find_library_path('libopenblas.a',
- self.prefix.lib64,
- self.prefix.lib)
-
- self.spec.blas_static_lib = join_path(libdir, 'libopenblas.a')
- self.spec.lapack_static_lib = self.spec.blas_static_lib
-
- if '+shared' in self.spec:
- self.spec.blas_shared_lib = join_path(libdir, 'libopenblas.%s' %
- dso_suffix)
- self.spec.lapack_shared_lib = self.spec.blas_shared_lib
-
- def check_install(self, spec):
source_file = join_path(os.path.dirname(self.module.__file__),
'test_cblas_dgemm.c')
blessed_file = join_path(os.path.dirname(self.module.__file__),
'test_cblas_dgemm.output')
include_flags = ["-I%s" % join_path(spec.prefix, "include")]
- link_flags = ["-L%s" % join_path(spec.prefix, "lib"),
- "-llapack",
- "-lblas",
- "-lpthread"]
+ link_flags = self.lapack_libs.ld_flags.split()
+ if self.compiler.name == 'intel':
+ link_flags.extend(["-lifcore"])
+ link_flags.extend(["-lpthread"])
if '+openmp' in spec:
link_flags.extend([self.compiler.openmp_flag])
diff --git a/var/spack/repos/builtin/packages/opencoarrays/package.py b/var/spack/repos/builtin/packages/opencoarrays/package.py
new file mode 100644
index 0000000000..387bc45946
--- /dev/null
+++ b/var/spack/repos/builtin/packages/opencoarrays/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Opencoarrays(CMakePackage):
+ """OpenCoarrays is an open-source software project that produces an
+ application binary interface (ABI) supporting coarray Fortran (CAF)
+ compilers, an application programming interface (API) that supports users
+ of non-CAF compilers, and an associated compiler wrapper and program
+ launcher.
+ """
+
+ homepage = "http://www.opencoarrays.org/"
+ url = "https://github.com/sourceryinstitute/opencoarrays/releases/download/1.7.4/OpenCoarrays-1.7.4.tar.gz"
+
+ version('1.8.0', 'ca78d1507b2a118c75128c6c2e093e27')
+ version('1.7.4', '85ba87def461e3ff5a164de2e6482930')
+ version('1.6.2', '5a4da993794f3e04ea7855a6678981ba')
+
+ depends_on('mpi')
+
+ def cmake_args(self):
+ args = []
+ args.append("-DCMAKE_C_COMPILER=%s" % self.spec['mpi'].mpicc)
+ args.append("-DCMAKE_Fortran_COMPILER=%s" % self.spec['mpi'].mpifc)
+ return args
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 989c66316c..8a721032a6 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -23,50 +23,186 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+from glob import glob
class Opencv(Package):
+ """OpenCV is released under a BSD license and hence it's free for both
+ academic and commercial use. It has C++, C, Python and Java interfaces and
+ supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for
+ computational efficiency and with a strong focus on real-time applications.
+ Written in optimized C/C++, the library can take advantage of multi-core
+ processing. Enabled with OpenCL, it can take advantage of the hardware
+ acceleration of the underlying heterogeneous compute platform. Adopted all
+ around the world, OpenCV has more than 47 thousand people of user community
+ and estimated number of downloads exceeding 9 million. Usage ranges from
+ interactive art, to mines inspection, stitching maps on the web or through
+ advanced robotics.
"""
- OpenCV is released under a BSD license and hence it's free for both academic and commercial use. It has C++, C,
- Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for
- computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library
- can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware
- acceleration of the underlying heterogeneous compute platform. Adopted all around the world, OpenCV has more than
- 47 thousand people of user community and estimated number of downloads exceeding 9 million. Usage ranges from
- interactive art, to mines inspection, stitching maps on the web or through advanced robotics.
- """
+
homepage = 'http://opencv.org/'
url = 'https://github.com/Itseez/opencv/archive/3.1.0.tar.gz'
version('3.1.0', '70e1dd07f0aa06606f1bc0e3fa15abd3')
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds a debug version of the libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
variant('eigen', default=True, description='Activates support for eigen')
variant('ipp', default=True, description='Activates support for IPP')
+ variant('jasper', default=True, description='Activates support for JasPer')
+ variant('cuda', default=False, description='Activates support for CUDA')
+ variant('gtk', default=False, description='Activates support for GTK')
+ variant('vtk', default=False, description='Activates support for VTK')
+ variant('qt', default=False, description='Activates support for QT')
+ variant('python', default=False,
+ description='Enables the build of Python extensions')
+ variant('java', default=False,
+ description='Activates support for Java')
+
+ depends_on('cmake', type='build')
+ depends_on('eigen', when='+eigen', type='build')
depends_on('zlib')
depends_on('libpng')
depends_on('libjpeg-turbo')
depends_on('libtiff')
- depends_on('python')
- depends_on('py-numpy')
-
- depends_on('eigen', when='+eigen')
+ depends_on('jasper', when='+jasper')
+ depends_on('cuda', when='+cuda')
+ depends_on('gtkplus', when='+gtk')
+ depends_on('vtk', when='+vtk')
+ depends_on('qt', when='+qt')
+ depends_on('jdk', when='+java')
+ depends_on('py-numpy', when='+python', type=('build', 'run'))
- # FIXME : GUI extensions missing
- # FIXME : CUDA extensions still missing
+ extends('python', when='+python')
def install(self, spec, prefix):
cmake_options = []
cmake_options.extend(std_cmake_args)
- cmake_options.extend(['-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'),
- '-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if '+shared' in spec else 'OFF'),
- '-DENABLE_PRECOMPILED_HEADERS:BOOL=OFF',
- '-DWITH_IPP:BOOL=%s' % ('ON' if '+ipp' in spec else 'OFF')])
+ cmake_options.extend([
+ '-DCMAKE_BUILD_TYPE:STRING={0}'.format((
+ 'Debug' if '+debug' in spec else 'Release')),
+ '-DBUILD_SHARED_LIBS:BOOL={0}'.format((
+ 'ON' if '+shared' in spec else 'OFF')),
+ '-DENABLE_PRECOMPILED_HEADERS:BOOL=OFF',
+ '-DWITH_IPP:BOOL={0}'.format((
+ 'ON' if '+ipp' in spec else 'OFF')),
+ '-DWITH_CUDA:BOOL={0}'.format((
+ 'ON' if '+cuda' in spec else 'OFF')),
+ '-DWITH_QT:BOOL={0}'.format((
+ 'ON' if '+qt' in spec else 'OFF')),
+ '-DWITH_VTK:BOOL={0}'.format((
+ 'ON' if '+vtk' in spec else 'OFF')),
+ '-DBUILD_opencv_java:BOOL={0}'.format((
+ 'ON' if '+java' in spec else 'OFF')),
+ ])
+
+ # Media I/O
+ zlib = spec['zlib']
+ cmake_options.extend([
+ '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(zlib.prefix.lib,
+ 'libz.{0}'.format(dso_suffix))),
+ '-DZLIB_INCLUDE_DIR:PATH={0}'.format(zlib.prefix.include)
+ ])
+
+ libpng = spec['libpng']
+ cmake_options.extend([
+ '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(libpng.prefix.lib,
+ 'libpng.{0}'.format(dso_suffix))),
+ '-DPNG_INCLUDE_DIR:PATH={0}'.format(libpng.prefix.include)
+ ])
+
+ libjpeg = spec['libjpeg-turbo']
+ cmake_options.extend([
+ '-DJPEG_LIBRARY:FILEPATH={0}'.format(
+ join_path(libjpeg.prefix.lib,
+ 'libjpeg.{0}'.format(dso_suffix))),
+ '-DJPEG_INCLUDE_DIR:PATH={0}'.format(libjpeg.prefix.include)
+ ])
+
+ libtiff = spec['libtiff']
+ cmake_options.extend([
+ '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(libtiff.prefix.lib,
+ 'libtiff.{0}'.format(dso_suffix))),
+ '-DTIFF_INCLUDE_DIR:PATH={0}'.format(libtiff.prefix.include)
+ ])
+
+ jasper = spec['jasper']
+ cmake_options.extend([
+ '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(jasper.prefix.lib,
+ 'libjasper.{0}'.format(dso_suffix))),
+ '-DJASPER_INCLUDE_DIR:PATH={0}'.format(jasper.prefix.include)
+ ])
+
+ # GUI
+ if '+gtk' not in spec:
+ cmake_options.extend([
+ '-DWITH_GTK:BOOL=OFF',
+ '-DWITH_GTK_2_X:BOOL=OFF'
+ ])
+ elif '^gtkplus@3:' in spec:
+ cmake_options.extend([
+ '-DWITH_GTK:BOOL=ON',
+ '-DWITH_GTK_2_X:BOOL=OFF'
+ ])
+ elif '^gtkplus@2:3' in spec:
+ cmake_options.extend([
+ '-DWITH_GTK:BOOL=OFF',
+ '-DWITH_GTK_2_X:BOOL=ON'
+ ])
+
+ # Python
+ if '+python' in spec:
+ python = spec['python']
+
+ try:
+ python_lib = glob(join_path(
+ python.prefix.lib, 'libpython*.{0}'.format(dso_suffix)))[0]
+ except KeyError:
+ raise InstallError('Cannot find libpython')
+
+ try:
+ python_include_dir = glob(join_path(python.prefix.include,
+ 'python*'))[0]
+ except KeyError:
+ raise InstallError('Cannot find python include directory')
+
+ if '^python@3:' in spec:
+ python_exe = join_path(python.prefix.bin, 'python3')
+ cmake_options.extend([
+ '-DBUILD_opencv_python3=ON',
+ '-DPYTHON3_EXECUTABLE={0}'.format(python_exe),
+ '-DPYTHON3_LIBRARY={0}'.format(python_lib),
+ '-DPYTHON3_INCLUDE_DIR={0}'.format(python_include_dir),
+ '-DBUILD_opencv_python2=OFF',
+ ])
+ elif '^python@2:3' in spec:
+ python_exe = join_path(python.prefix.bin, 'python2')
+ cmake_options.extend([
+ '-DBUILD_opencv_python2=ON',
+ '-DPYTHON2_EXECUTABLE={0}'.format(python_exe),
+ '-DPYTHON2_LIBRARY={0}'.format(python_lib),
+ '-DPYTHON2_INCLUDE_DIR={0}'.format(python_include_dir),
+ '-DBUILD_opencv_python3=OFF',
+ ])
+ else:
+ cmake_options.extend([
+ '-DBUILD_opencv_python2=OFF',
+ '-DBUILD_opencv_python3=OFF'
+ ])
with working_dir('spack_build', create=True):
cmake('..', *cmake_options)
diff --git a/var/spack/repos/builtin/packages/openexr/package.py b/var/spack/repos/builtin/packages/openexr/package.py
new file mode 100644
index 0000000000..3619bd063c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openexr/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Openexr(Package):
+ """OpenEXR Graphics Tools (high dynamic-range image file format)"""
+
+ homepage = "http://www.openexr.com/"
+ url = "https://savannah.nongnu.org/download/openexr/openexr-2.2.0.tar.gz"
+
+ version('2.2.0', 'b64e931c82aa3790329c21418373db4e')
+ version('2.1.0', '33735d37d2ee01c6d8fbd0df94fb8b43')
+ version('2.0.1', '4387e6050d2faa65dd5215618ff2ddce')
+ version('1.7.0', '27113284f7d26a58f853c346e0851d7a')
+ version('1.6.1', '11951f164f9c872b183df75e66de145a')
+ version('1.5.0', '55342d2256ab3ae99da16f16b2e12ce9')
+ version('1.4.0a', 'd0a4b9a930c766fa51561b05fb204afe')
+ version('1.3.2', '1522fe69135016c52eb88fc7d8514409')
+
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+
+ depends_on('pkg-config', type='build')
+ depends_on('ilmbase')
+
+ def install(self, spec, prefix):
+ configure_options = ['--prefix={0}'.format(prefix)]
+ if '+debug' not in spec:
+ configure_options.append('--disable-debug')
+ configure(*configure_options)
+ make('install')
diff --git a/var/spack/repos/builtin/packages/openjpeg/package.py b/var/spack/repos/builtin/packages/openjpeg/package.py
index 9b2063593a..9790c52e7d 100644
--- a/var/spack/repos/builtin/packages/openjpeg/package.py
+++ b/var/spack/repos/builtin/packages/openjpeg/package.py
@@ -24,27 +24,26 @@
##############################################################################
from spack import *
-class Openjpeg(Package):
- """
- OpenJPEG is an open-source JPEG 2000 codec written in C language.
+
+class Openjpeg(CMakePackage):
+ """OpenJPEG is an open-source JPEG 2000 codec written in C language.
+
It has been developed in order to promote the use of JPEG 2000, a
still-image compression standard from the Joint Photographic
Experts Group (JPEG).
Since April 2015, it is officially recognized by ISO/IEC and
ITU-T as a JPEG 2000 Reference Software.
"""
+
homepage = "https://github.com/uclouvain/openjpeg"
- url = "https://github.com/uclouvain/openjpeg/archive/version.2.1.tar.gz"
+ url = "https://github.com/uclouvain/openjpeg/archive/version.2.1.tar.gz"
- version('2.1' , '3e1c451c087f8462955426da38aa3b3d')
+ version('2.1', '3e1c451c087f8462955426da38aa3b3d')
version('2.0.1', '105876ed43ff7dbb2f90b41b5a43cfa5')
- version('2.0' , 'cdf266530fee8af87454f15feb619609')
+ version('2.0', 'cdf266530fee8af87454f15feb619609')
version('1.5.2', '545f98923430369a6b046ef3632ef95c')
version('1.5.1', 'd774e4b5a0db5f0f171c4fc0aabfa14e')
-
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
-
- make()
- make("install")
+ def url_for_version(self, version):
+ fmt = 'https://github.com/uclouvain/openjpeg/archive/version.{0}.tar.gz'
+ return fmt.format(version.dotted)
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 163990bf15..754cc8d93e 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -22,18 +22,37 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
-
from spack import *
+import os
-class Openmpi(Package):
- """Open MPI is a project combining technologies and resources from
- several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI)
- in order to build the best MPI library available. A completely
- new MPI-2 compliant implementation, Open MPI offers advantages
- for system and software vendors, application developers and
- computer science researchers.
+def _verbs_dir():
+ """Try to find the directory where the OpenFabrics verbs package is
+ installed. Return None if not found."""
+ try:
+ # Try to locate Verbs by looking for a utility in the path
+ ibv_devices = which("ibv_devices")
+ # Run it (silently) to ensure it works
+ ibv_devices(output=str, error=str)
+ # Get path to executable
+ path = ibv_devices.exe[0]
+ # Remove executable name and "bin" directory
+ path = os.path.dirname(path)
+ path = os.path.dirname(path)
+ return path
+ except:
+ return None
+
+
+class Openmpi(AutotoolsPackage):
+ """The Open MPI Project is an open source Message Passing Interface
+ implementation that is developed and maintained by a consortium
+ of academic, research, and industry partners. Open MPI is
+ therefore able to combine the expertise, technologies, and
+ resources from all across the High Performance Computing
+ community in order to build the best MPI library available.
+ Open MPI offers advantages for system and software vendors,
+ application developers and computer science researchers.
"""
homepage = "http://www.open-mpi.org"
@@ -41,6 +60,9 @@ class Openmpi(Package):
list_url = "http://www.open-mpi.org/software/ompi/"
list_depth = 3
+ version('2.0.1', '6f78155bd7203039d2448390f3b51c96')
+ version('2.0.0', 'cdacc800cb4ce690c1f1273cb6366674')
+ version('1.10.3', 'e2fe4513200e2aaa1500b762342c674b')
version('1.10.2', 'b2f43d9635d2d52826e5ef9feb97fd4c')
version('1.10.1', 'f0fcd77ed345b7eafb431968124ba16e')
version('1.10.0', '280cf952de68369cebaca886c5ce0304')
@@ -51,89 +73,170 @@ class Openmpi(Package):
patch('llnl-platforms.patch', when="@1.6.5")
patch('configure.patch', when="@1.10.0:1.10.1")
- variant('psm', default=False, description='Build support for the PSM library.')
- variant('psm2', default=False, description='Build support for the Intel PSM2 library.')
- variant('pmi', default=False, description='Build support for PMI-based launchers')
- variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
+ # Fabrics
+ variant('psm', default=False, description='Build support for the PSM library')
+ variant('psm2', default=False,
+ description='Build support for the Intel PSM2 library')
+ variant('pmi', default=False,
+ description='Build support for PMI-based launchers')
+ variant('verbs', default=_verbs_dir() is not None,
+ description='Build support for OpenFabrics verbs')
variant('mxm', default=False, description='Build Mellanox Messaging support')
- variant('thread_multiple', default=False, description='Enable MPI_THREAD_MULTIPLE support')
-
- # TODO : variant support for alps, loadleveler is missing
- variant('tm', default=False, description='Build TM (Torque, PBSPro, and compatible) support')
- variant('slurm', default=False, description='Build SLURM scheduler component')
+ # Schedulers
+ # TODO: support for alps and loadleveler is missing
+ variant('tm', default=False,
+ description='Build TM (Torque, PBSPro, and compatible) support')
+ variant('slurm', default=False,
+ description='Build SLURM scheduler component')
- variant('sqlite3', default=False, description='Build sqlite3 support')
+ # Additional support options
+ variant('java', default=False, description='Build Java support')
+ variant('sqlite3', default=False, description='Build SQLite3 support')
+ variant('vt', default=True, description='Build VampirTrace support')
+ variant('thread_multiple', default=False,
+ description='Enable MPI_THREAD_MULTIPLE support')
- # TODO : support for CUDA is missing
+ # TODO: support for CUDA is missing
provides('mpi@:2.2', when='@1.6.5')
provides('mpi@:3.0', when='@1.7.5:')
+ provides('mpi@:3.1', when='@2.0.0:')
depends_on('hwloc')
+ depends_on('jdk', when='+java')
depends_on('sqlite', when='+sqlite3')
def url_for_version(self, version):
- return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (version.up_to(2), version)
-
+ return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (
+ version.up_to(2), version)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
+ spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
+ spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
+
spack_env.set('OMPI_CC', spack_cc)
spack_env.set('OMPI_CXX', spack_cxx)
spack_env.set('OMPI_FC', spack_fc)
spack_env.set('OMPI_F77', spack_f77)
def setup_dependent_package(self, module, dep_spec):
- self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
+ self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
- self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
+ self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+ self.spec.mpicxx_shared_libs = [
+ join_path(self.prefix.lib, 'libmpi_cxx.{0}'.format(dso_suffix)),
+ join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
+ ]
@property
def verbs(self):
- # Up through version 1.6, this option was previously named --with-openib
+ # Up through version 1.6, this option was previously named
+ # --with-openib
if self.spec.satisfies('@:1.6'):
return 'openib'
# In version 1.7, it was renamed to be --with-verbs
elif self.spec.satisfies('@1.7:'):
return 'verbs'
- def install(self, spec, prefix):
- config_args = ["--prefix=%s" % prefix,
- "--with-hwloc=%s" % spec['hwloc'].prefix,
- "--enable-shared",
- "--enable-static"]
- # Variant based arguments
- config_args.extend([
+ @AutotoolsPackage.precondition('autoreconf')
+ def die_without_fortran(self):
+ # Until we can pass variants such as +fortran through virtual
+ # dependencies depends_on('mpi'), require Fortran compiler to
+ # avoid delayed build errors in dependents.
+ if (self.compiler.f77 is None) or (self.compiler.fc is None):
+ raise InstallError(
+ 'OpenMPI requires both C and Fortran compilers!'
+ )
+
+ def configure_args(self):
+ spec = self.spec
+
+ config_args = [
+ '--enable-shared',
+ '--enable-static',
+ '--enable-mpi-cxx',
# Schedulers
'--with-tm' if '+tm' in spec else '--without-tm',
'--with-slurm' if '+slurm' in spec else '--without-slurm',
# Fabrics
'--with-psm' if '+psm' in spec else '--without-psm',
- '--with-psm2' if '+psm2' in spec else '--without-psm2',
- ('--with-%s' % self.verbs) if '+verbs' in spec else ('--without-%s' % self.verbs),
- '--with-mxm' if '+mxm' in spec else '--without-mxm',
- # Other options
- '--enable-mpi-thread-multiple' if '+thread_multiple' in spec else '--disable-mpi-thread-multiple',
- '--with-pmi' if '+pmi' in spec else '--without-pmi',
- '--with-sqlite3' if '+sqlite3' in spec else '--without-sqlite3'
- ])
-
- # TODO: use variants for this, e.g. +lanl, +llnl, etc.
- # use this for LANL builds, but for LLNL builds, we need:
- # "--with-platform=contrib/platform/llnl/optimized"
- if self.version == ver("1.6.5") and '+lanl' in spec:
- config_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
-
- if not self.compiler.f77 and not self.compiler.fc:
- config_args.append("--enable-mpi-fortran=no")
-
- configure(*config_args)
- make()
- make("install")
-
- self.filter_compilers()
-
+ ]
+
+ # Intel PSM2 support
+ if spec.satisfies('@1.10:'):
+ if '+psm2' in spec:
+ config_args.append('--with-psm2')
+ else:
+ config_args.append('--without-psm2')
+
+ # PMI support
+ if spec.satisfies('@1.5.5:'):
+ if '+pmi' in spec:
+ config_args.append('--with-pmi')
+ else:
+ config_args.append('--without-pmi')
+
+ # Mellanox Messaging support
+ if spec.satisfies('@1.5.4:'):
+ if '+mxm' in spec:
+ config_args.append('--with-mxm')
+ else:
+ config_args.append('--without-mxm')
+
+ # OpenFabrics verbs support
+ if '+verbs' in spec:
+ path = _verbs_dir()
+ if path is not None and path not in ('/usr', '/usr/local'):
+ config_args.append('--with-{0}={1}'.format(self.verbs, path))
+ else:
+ config_args.append('--with-{0}'.format(self.verbs))
+ else:
+ config_args.append('--without-{0}'.format(self.verbs))
+
+ # Hwloc support
+ if spec.satisfies('@1.5.2:'):
+ config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))
+
+ # Java support
+ if spec.satisfies('@1.7.4:'):
+ if '+java' in spec:
+ config_args.extend([
+ '--enable-java',
+ '--enable-mpi-java',
+ '--with-jdk-dir={0}'.format(spec['jdk'].prefix)
+ ])
+ else:
+ config_args.extend([
+ '--disable-java',
+ '--disable-mpi-java'
+ ])
+
+ # SQLite3 support
+ if spec.satisfies('@1.7.3:1.999'):
+ if '+sqlite3' in spec:
+ config_args.append('--with-sqlite3')
+ else:
+ config_args.append('--without-sqlite3')
+
+ # VampirTrace support
+ if spec.satisfies('@1.3:1.999'):
+ if '+vt' not in spec:
+ config_args.append('--enable-contrib-no-build=vt')
+
+ # Multithreading support
+ if spec.satisfies('@1.5.4:'):
+ if '+thread_multiple' in spec:
+ config_args.append('--enable-mpi-thread-multiple')
+ else:
+ config_args.append('--disable-mpi-thread-multiple')
+
+ return config_args
+
+ @AutotoolsPackage.sanity_check('install')
def filter_compilers(self):
"""Run after install to make the MPI compilers use the
compilers that Spack built the package with.
@@ -143,40 +246,33 @@ class Openmpi(Package):
be bound to whatever compiler they were built with.
"""
kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
- dir = os.path.join(self.prefix, 'share/openmpi/')
-
- cc_wrappers = ['mpicc-vt-wrapper-data.txt', 'mpicc-wrapper-data.txt',
- 'ortecc-wrapper-data.txt', 'shmemcc-wrapper-data.txt']
-
- cxx_wrappers = ['mpic++-vt-wrapper-data.txt', 'mpic++-wrapper-data.txt',
- 'ortec++-wrapper-data.txt']
-
- fc_wrappers = ['mpifort-vt-wrapper-data.txt',
- 'mpifort-wrapper-data.txt', 'shmemfort-wrapper-data.txt']
-
- for wrapper in cc_wrappers:
- filter_file('compiler=.*', 'compiler=%s' % self.compiler.cc,
- os.path.join(dir, wrapper), **kwargs)
-
- for wrapper in cxx_wrappers:
- filter_file('compiler=.*', 'compiler=%s' % self.compiler.cxx,
- os.path.join(dir, wrapper), **kwargs)
-
- for wrapper in fc_wrappers:
- filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
- os.path.join(dir, wrapper), **kwargs)
-
- # These are symlinks in newer versions, so check that here
- f77_wrappers = ['mpif77-vt-wrapper-data.txt', 'mpif77-wrapper-data.txt']
- f90_wrappers = ['mpif90-vt-wrapper-data.txt', 'mpif90-wrapper-data.txt']
-
- for wrapper in f77_wrappers:
- path = os.path.join(dir, wrapper)
- if not os.path.islink(path):
- filter_file('compiler=.*', 'compiler=%s' % self.compiler.f77,
- path, **kwargs)
- for wrapper in f90_wrappers:
- path = os.path.join(dir, wrapper)
- if not os.path.islink(path):
- filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
- path, **kwargs)
+ wrapper_basepath = join_path(self.prefix, 'share', 'openmpi')
+
+ wrappers = [
+ ('mpicc-vt-wrapper-data.txt', self.compiler.cc),
+ ('mpicc-wrapper-data.txt', self.compiler.cc),
+ ('ortecc-wrapper-data.txt', self.compiler.cc),
+ ('shmemcc-wrapper-data.txt', self.compiler.cc),
+ ('mpic++-vt-wrapper-data.txt', self.compiler.cxx),
+ ('mpic++-wrapper-data.txt', self.compiler.cxx),
+ ('ortec++-wrapper-data.txt', self.compiler.cxx),
+ ('mpifort-vt-wrapper-data.txt', self.compiler.fc),
+ ('mpifort-wrapper-data.txt', self.compiler.fc),
+ ('shmemfort-wrapper-data.txt', self.compiler.fc),
+ ('mpif90-vt-wrapper-data.txt', self.compiler.fc),
+ ('mpif90-wrapper-data.txt', self.compiler.fc),
+ ('mpif77-vt-wrapper-data.txt', self.compiler.f77),
+ ('mpif77-wrapper-data.txt', self.compiler.f77)
+ ]
+
+ for wrapper_name, compiler in wrappers:
+ wrapper = join_path(wrapper_basepath, wrapper_name)
+ if not os.path.islink(wrapper):
+ # Substitute Spack compile wrappers for the real
+ # underlying compiler
+ match = 'compiler=.*'
+ substitute = 'compiler={compiler}'.format(compiler=compiler)
+ filter_file(match, substitute, wrapper, **kwargs)
+ # Remove this linking flag if present
+ # (it turns RPATH into RUNPATH)
+ filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
diff --git a/var/spack/repos/builtin/packages/openscenegraph/package.py b/var/spack/repos/builtin/packages/openscenegraph/package.py
new file mode 100644
index 0000000000..565941ff0e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openscenegraph/package.py
@@ -0,0 +1,77 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Openscenegraph(Package):
+ """OpenSceneGraph is an open source, high performance 3D graphics toolkit
+ that's used in a variety of visual simulation applications."""
+
+ homepage = "http://www.openscenegraph.org"
+ url = "http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.3.zip"
+
+ version('3.2.3', '02ffdad7744c747d8fad0d7babb58427')
+ version('3.1.5', '1c90b851b109849c985006486ef59822')
+
+ variant('debug', default=False, description='Builds a debug version of the library')
+ variant('shared', default=True, description='Builds a shared version of the library')
+
+ depends_on('cmake@2.8.7:', type='build')
+ depends_on('qt@4:')
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ build_type = 'Debug' if '+debug' in spec else 'Release'
+ shared_status = 'ON' if '+shared' in spec else 'OFF'
+
+ cmake_args = std_cmake_args[:]
+ cmake_args.extend([
+ '-DCMAKE_BUILD_TYPE={0}'.format(build_type),
+ '-DDYNAMIC_OPENSCENEGRAPH={0}'.format(shared_status),
+ '-DDYNAMIC_OPENTHREADS={0}'.format(shared_status),
+ ])
+
+ # NOTE: This is necessary in order to allow OpenSceneGraph to compile
+ # despite containing a number of implicit bool to int conversions.
+ if spec.satisfies('%gcc'):
+ cmake_args.extend([
+ '-DCMAKE_C_FLAGS=-fpermissive',
+ '-DCMAKE_CXX_FLAGS=-fpermissive',
+ ])
+
+ with working_dir('spack-build', create=True):
+ cmake(
+ '..',
+ '-DZLIB_INCLUDE_DIR={0}'.format(spec['zlib'].prefix.include),
+ '-DZLIB_LIBRARY={0}/libz.{1}'.format(spec['zlib'].prefix.lib,
+ dso_suffix),
+ '-DBUILD_OSG_APPLICATIONS=OFF',
+ '-DOSG_NOTIFY_DISABLED=ON',
+ '-DLIB_POSTFIX=',
+ *cmake_args
+ )
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index c501ea063c..2e908b4099 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -22,75 +22,105 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-################################################################################
+##############################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
#
-# This program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
-################################################################################
+##############################################################################
from spack import *
+import os
+import os.path
+
class Openspeedshop(Package):
- """OpenSpeedShop is a community effort by The Krell Institute with current direct funding from DOEs NNSA.
- It builds on top of a broad list of community infrastructures, most notably Dyninst and MRNet from UW,
- libmonitor from Rice, and PAPI from UTK. OpenSpeedShop is an open source multi platform Linux performance
- tool which is targeted to support performance analysis of applications running on both single node and
- large scale IA64, IA32, EM64T, AMD64, PPC, ARM, Blue Gene and Cray platforms. OpenSpeedShop development
- is hosted by the Krell Institute. The infrastructure and base components of OpenSpeedShop are released
- as open source code primarily under LGPL.
+ """OpenSpeedShop is a community effort by The Krell Institute with
+ current direct funding from DOEs NNSA. It builds on top of a
+ broad list of community infrastructures, most notably Dyninst
+ and MRNet from UW, libmonitor from Rice, and PAPI from UTK.
+ OpenSpeedShop is an open source multi platform Linux performance
+ tool which is targeted to support performance analysis of
+ applications running on both single node and large scale IA64,
+ IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and
+ Cray platforms. OpenSpeedShop development is hosted by the Krell
+ Institute. The infrastructure and base components of OpenSpeedShop
+ are released as open source code primarily under LGPL.
"""
homepage = "http://www.openspeedshop.org"
- url = "https://github.com/OpenSpeedShop"
+ url = "https://github.com/OpenSpeedShop"
version('2.2', '16cb051179c2038de4e8a845edf1d573')
# Use when the git repository is available
- version('2.2', branch='master', git='https://github.com/OpenSpeedShop/openspeedshop.git')
+ version('2.3', branch='master',
+ git='https://github.com/OpenSpeedShop/openspeedshop.git')
# Optional mirror template
- #url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.2.tar.gz"
- #version('2.2', '643337740dc6c2faca60f42d3620b0e1')
+ # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.3.tar.gz"
+ # version('2.3', '517a7798507241ad8abd8b0626a4d2cf')
parallel = False
- variant('offline', default=True, description="build with offline instrumentor enabled.")
- variant('cbtf', default=False, description="build with cbtf instrumentor enabled.")
- variant('runtime', default=False, description="build only the runtime libraries and collectors.")
- variant('frontend', default=False, description="build only the front-end tool using the runtime_dir to point to the target build.")
- variant('cuda', default=False, description="build with cuda packages included.")
- variant('ptgf', default=False, description="build with the PTGF based gui package enabled.")
- variant('rtfe', default=False, description="build for generic cluster platforms that have different processors on the fe and be nodes.")
+ variant('offline', default=False,
+ description="build with offline instrumentor enabled.")
+ variant('cbtf', default=True,
+ description="build with cbtf instrumentor enabled.")
+ variant('runtime', default=False,
+ description="build only the runtime libraries and collectors.")
+ variant('frontend', default=False,
+ description="build only the FE tool using the runtime_dir \
+ to point to target build.")
+ variant('cuda', default=False,
+ description="build with cuda packages included.")
+ variant('ptgf', default=False,
+ description="build with the PTGF based gui package enabled.")
+ variant('rtfe', default=False,
+ description="build for clusters heterogeneous processors \
+ on fe/be nodes.")
# MPI variants
- variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI when this variant is enabled.")
- variant('mpt', default=False, description="Build mpi experiment collector for SGI MPT MPI when this variant is enabled.")
- variant('mvapich2', default=False, description="Build mpi experiment collector for mvapich2 MPI when this variant is enabled.")
- variant('mvapich', default=False, description="Build mpi experiment collector for mvapich MPI when this variant is enabled.")
- variant('mpich2', default=False, description="Build mpi experiment collector for mpich2 MPI when this variant is enabled.")
- variant('mpich', default=False, description="Build mpi experiment collector for mpich MPI when this variant is enabled.")
-
- depends_on("cmake@3.0.2")
- # Dependencies for openspeedshop that are common to all the variants of the OpenSpeedShop build
- depends_on("bison")
- depends_on("flex")
- depends_on("binutils@2.24+krellpatch")
+ variant('openmpi', default=False,
+ description="Build mpi collector for openmpi \
+ MPI when variant is enabled.")
+ variant('mpt', default=False,
+ description="Build mpi collector for SGI \
+ MPT MPI when variant is enabled.")
+ variant('mvapich2', default=False,
+ description="Build mpi collector for mvapich2\
+ MPI when variant is enabled.")
+ variant('mvapich', default=False,
+ description="Build mpi collector for mvapich\
+ MPI when variant is enabled.")
+ variant('mpich2', default=False,
+ description="Build mpi collector for mpich2\
+ MPI when variant is enabled.")
+ variant('mpich', default=False,
+ description="Build mpi collector for mpich\
+ MPI when variant is enabled.")
+
+ depends_on("cmake@3.0.2:", type='build')
+ # Dependencies for openspeedshop that are common to all
+ # the variants of the OpenSpeedShop build
+ depends_on("bison", type='build')
+ depends_on("flex", type='build')
+ depends_on("binutils@2.24+krellpatch", type='build')
depends_on("libelf")
depends_on("libdwarf")
depends_on("sqlite")
- depends_on("boost@1.50.0:")
- depends_on("dyninst@9.1.0")
- depends_on("python")
+ depends_on("boost@1.50.0:1.59.0")
+ depends_on("dyninst@9.2.0")
+ depends_on("libxml2+python")
depends_on("qt@3.3.8b+krellpatch")
# Dependencies only for the openspeedshop offline package.
@@ -108,14 +138,16 @@ class Openspeedshop(Package):
depends_on("cbtf", when='+cbtf')
depends_on("cbtf-krell", when='+cbtf')
depends_on("cbtf-argonavis", when='+cbtf+cuda')
- depends_on("mrnet@5.0.1:+lwthreads+krellpatch", when='+cbtf')
+ depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf')
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will enable the cbtf-krell built type settings
+ # Sets build type parameters into cmakeOptions the
+ # options that will enable the cbtf-krell built type settings
- compile_flags="-O2 -g"
+ compile_flags = "-O2 -g"
BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the stdcmakeargs
+ # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it
+ # to be, not the stdcmakeargs
for word in cmakeOptions[:]:
if word.startswith('-DCMAKE_BUILD_TYPE'):
cmakeOptions.remove(word)
@@ -123,86 +155,150 @@ class Openspeedshop(Package):
cmakeOptions.remove(word)
if word.startswith('-DCMAKE_C_FLAGS'):
cmakeOptions.remove(word)
- BuildTypeOptions.extend([
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
- ])
+ BuildTypeOptions.extend(['-DCMAKE_BUILD_TYPE=None',
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags])
cmakeOptions.extend(BuildTypeOptions)
+ def set_defaultbase_cmakeOptions(self, spec, cmakeOptions):
+ # Appends to cmakeOptions the options that will enable
+ # the appropriate base level options to the openspeedshop
+ # cmake build.
+ python_vers = format(spec['python'].version.up_to(2))
+ python_pv = '/python' + python_vers
+ python_pvs = '/libpython' + python_vers + '.' + format(dso_suffix)
+
+ BaseOptions = []
+
+ BaseOptions.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix)
+ BaseOptions.append('-DLIBELF_DIR=%s' % spec['libelf'].prefix)
+ BaseOptions.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix)
+ BaseOptions.append(
+ '-DPYTHON_EXECUTABLE=%s'
+ % join_path(spec['python'].prefix + '/bin/python'))
+ BaseOptions.append(
+ '-DPYTHON_INCLUDE_DIR=%s'
+ % join_path(spec['python'].prefix.include) + python_pv)
+ BaseOptions.append(
+ '-DPYTHON_LIBRARY=%s'
+ % join_path(spec['python'].prefix.lib) + python_pvs)
+ BaseOptions.append('-DBoost_NO_SYSTEM_PATHS=TRUE')
+ BaseOptions.append('-DBoost_NO_BOOST_CMAKE=TRUE')
+ BaseOptions.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
+ BaseOptions.append('-DBoost_DIR=%s' % spec['boost'].prefix)
+ BaseOptions.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib)
+ BaseOptions.append('-DDYNINST_DIR=%s' % spec['dyninst'].prefix)
+
+ cmakeOptions.extend(BaseOptions)
+
def set_mpi_cmakeOptions(self, spec, cmakeOptions):
- # Appends to cmakeOptions the options that will enable the appropriate MPI implementations
-
+ # Appends to cmakeOptions the options that will enable
+ # the appropriate MPI implementations
+
MPIOptions = []
# openmpi
if '+openmpi' in spec:
- MPIOptions.extend([
- '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix
- ])
+ MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix)
# mpich
if '+mpich' in spec:
- MPIOptions.extend([
- '-DMPICH_DIR=%s' % spec['mpich'].prefix
- ])
+ MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix)
# mpich2
if '+mpich2' in spec:
- MPIOptions.extend([
- '-DMPICH2_DIR=%s' % spec['mpich2'].prefix
- ])
+ MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix)
# mvapich
if '+mvapich' in spec:
- MPIOptions.extend([
- '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix
- ])
+ MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix)
# mvapich2
if '+mvapich2' in spec:
- MPIOptions.extend([
- '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix
- ])
+ MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix)
# mpt
if '+mpt' in spec:
- MPIOptions.extend([
- '-DMPT_DIR=%s' % spec['mpt'].prefix
- ])
+ MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix)
cmakeOptions.extend(MPIOptions)
+ def setup_environment(self, spack_env, run_env):
+ """Set up the compile and runtime environments for a package."""
+
+ # Common settings to both offline and cbtf versions
+ # of OpenSpeedShop
+ run_env.prepend_path('PATH', self.prefix.bin)
+
+ # Find Dyninst library path, this is needed to
+ # set the DYNINSTAPI_RT_LIB library which is
+ # required for OpenSpeedShop to find loop level
+ # performance information
+ dyninst_libdir = find_libraries(['libdyninstAPI_RT'],
+ root=self.spec['dyninst'].prefix,
+ shared=True, recurse=True)
+
+ # Set Dyninst RT library path to support OSS loop resolution code
+ run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir)
+
+ # Find openspeedshop library path
+ oss_libdir = find_libraries(['libopenss-framework'],
+ root=self.spec['openspeedshop'].prefix,
+ shared=True, recurse=True)
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ os.path.dirname(oss_libdir.joined()))
+
+ # Settings specific to the version, checking here
+ # for the cbtf instrumentor
+ if '+cbtf' in self.spec:
+ cbtf_mc = '/sbin/cbtf_mrnet_commnode'
+ cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend'
+ run_env.set('XPLAT_RSH', 'ssh')
+ run_env.set('MRNET_COMM_PATH',
+ join_path(self.spec['cbtf-krell'].prefix + cbtf_mc))
+
+ run_env.set('CBTF_MRNET_BACKEND_PATH',
+ join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb))
+
+ run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin)
+ run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin)
+ run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin)
+
+ elif '+offline' in self.spec:
+ # Had to use this form of syntax self.prefix.lib and
+ # self.prefix.lib64 returned None all the time
+ run_env.set('OPENSS_RAWDATA_DIR', '.')
+ run_env.set('OPENSS_PLUGIN_PATH',
+ join_path(oss_libdir + '/openspeedshop'))
+ run_env.prepend_path('PATH', self.spec['papi'].prefix.bin)
+ run_env.prepend_path('PATH', self.spec['libdwarf'].prefix.bin)
+
+ if '+mpich' in self.spec:
+ run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich')
+ if '+mpich2' in self.spec:
+ run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich2')
+ if '+mvapich2' in self.spec:
+ run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2')
+ if '+openmpi' in self.spec:
+ run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi')
def install(self, spec, prefix):
- #openmpi_prefix_path = "/opt/openmpi-1.8.2"
- #mvapich_prefix_path = "/usr/local/tools/mvapich-gnu"
- #'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
- #'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
- #'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
-
- # FIXME: How do we make this dynamic in spack? That is, can we specify the paths to cuda dynamically?
- # WAITING for external package support.
- #if '+cuda' in spec:
- # cuda_prefix_path = "/usr/local/cuda-6.0"
- # cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI"
-
if '+offline' in spec:
instrumentor_setting = "offline"
if '+runtime' in spec:
with working_dir('build_runtime', create=True):
cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s' % spec['papi'].prefix
- ])
-
+ cmakeOptions.extend([
+ '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s' % spec['papi'].prefix])
+
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(std_cmake_args)
- # Adjust the build options to the favored ones for this build
+ # Adjust the build options to the favored
+ # ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
@@ -213,44 +309,35 @@ class Openspeedshop(Package):
else:
cmake_prefix_path = join_path(spec['dyninst'].prefix)
with working_dir('build', create=True):
-
- #python_vers=join_path(spec['python'].version[:2])
- #'-DOPENMPI_DIR=%s' % openmpi_prefix_path,
- #'-DMVAPICH_DIR=%s' % mvapich_prefix_path,
- #'-DMPICH_DIR=%s' % spec['mpich'].prefix,
- #'-DMPICH2_DIR=%s' % spec['mpich2'].prefix,
- #'-DBoost_NO_SYSTEM_PATHS=TRUE',
- #'-DBOOST_ROOT=%s' % spec['boost'].prefix,
- #'-DOPENMPI_DIR=%s' % spec['openmpi'].prefix,
-
- python_vers='%d.%d' % spec['python'].version[:2]
-
cmakeOptions = []
- cmakeOptions.extend(['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- '-DLIBELF_DIR=%s' % spec['libelf'].prefix,
- '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s' % spec['papi'].prefix,
- '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
- '-DQTLIB_DIR=%s' % spec['qt'].prefix,
- '-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
- '-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
- '-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DDYNINST_DIR=%s' % spec['dyninst'].prefix
- ])
+
+ # Appends base options to cmakeOptions
+ self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
+
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s'
+ % prefix,
+ '-DCMAKE_PREFIX_PATH=%s'
+ % cmake_prefix_path,
+ '-DINSTRUMENTOR=%s'
+ % instrumentor_setting,
+ '-DLIBMONITOR_DIR=%s'
+ % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s'
+ % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s'
+ % spec['papi'].prefix,
+ '-DSQLITE3_DIR=%s'
+ % spec['sqlite'].prefix,
+ '-DQTLIB_DIR=%s'
+ % spec['qt'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(std_cmake_args)
- # Adjust the build options to the favored ones for this build
+ # Adjust the build options to the favored
+ # ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
@@ -261,160 +348,73 @@ class Openspeedshop(Package):
elif '+cbtf' in spec:
instrumentor_setting = "cbtf"
- resolve_symbols = "symtabapi"
- cmake_prefix_path = join_path(spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix) + ':' + join_path(spec['dyninst'].prefix)
- #runtime_platform_cray = "cray"
- #if '+cray' in spec:
- # if '+runtime' in spec:
- # #-DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_INSTALL_DIR} \
- # with working_dir('build_cbtf_cray_runtime', create=True):
- # python_vers='%d.%d' % spec['python'].version[:2]
- # cmake('..',
- # '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- # '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
- # '-DRUNTIME_PLATFORM=%s' % runtime_platform_cray,
- # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- # '-DRESOLVE_SYMBOLS=%s' % resolve_symbols,
- # '-DINSTRUMENTOR=%s' % instrumentor_setting,
- # '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- # '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s' % spec['cbtf-krell'].prefix,
- # '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- # '-DLIBELF_DIR=%s' % spec['libelf'].prefix,
- # '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
- # '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- # '-DPAPI_DIR=%s' % spec['papi'].prefix,
- # '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
- # '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- # '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- # '-DBoost_NO_SYSTEM_PATHS=TRUE',
- # '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- # *std_cmake_args)
-
- # make("clean")
- # make()
- # make("install")
-
-
- #elif '+mic' in spec:
- # comment out else and shift over the default case below until arch detection is in
- #else:
+ # resolve_symbols = "symtabapi"
+ cmake_prefix_path = join_path(spec['cbtf'].prefix) \
+ + ':' + join_path(spec['cbtf-krell'].prefix)\
+ + ':' + join_path(spec['dyninst'].prefix)
if '+runtime' in spec:
with working_dir('build_cbtf_runtime', create=True):
- python_vers='%d.%d' % spec['python'].version[:2]
- cmake('..',
- '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- '-DLIBELF_DIR=%s' % spec['libelf'].prefix,
- '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
- '-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
- '-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- *std_cmake_args)
+ cmakeOptions = []
+
+ # Appends base options to cmakeOptions
+ self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
+
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s'
+ % prefix,
+ '-DCMAKE_PREFIX_PATH=%s'
+ % cmake_prefix_path,
+ '-DINSTRUMENTOR=%s'
+ % instrumentor_setting,
+ '-DCBTF_DIR=%s'
+ % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s'
+ % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s'
+ % spec['mrnet'].prefix])
+
+ # Adjust the build options to the
+ # favored ones for this build
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+
+ cmake('..', *cmakeOptions)
+
make("clean")
make()
make("install")
else:
with working_dir('build_cbtf', create=True):
- python_vers='%d.%d' % spec['python'].version[:2]
- #python_vers=join_path(spec['python'].version[:2])
- cmake('..',
- '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- '-DLIBELF_DIR=%s' % spec['libelf'].prefix,
- '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix,
- '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DQTLIB_DIR=%s' % spec['qt'].prefix,
- '-DPYTHON_EXECUTABLE=%s' % join_path(spec['python'].prefix + '/bin/python'),
- '-DPYTHON_INCLUDE_DIR=%s' % join_path(spec['python'].prefix.include) + '/python' + python_vers,
- '-DPYTHON_LIBRARY=%s' % join_path(spec['python'].prefix.lib) + '/libpython' + python_vers + '.so',
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- *std_cmake_args)
- make("clean")
- make()
- make("install")
-
- #if '+frontend' in spec:
- # with working_dir('build_frontend', create=True):
- # tbd
-
-
-
- #if '+cbtf' in spec:
- # if cray build type detected:
- # if '+runtime' in spec:
- # with working_dir('build_cray_cbtf_compute', create=True):
- # tbd
- # else:
- # with working_dir('build_cray_cbtf_frontend', create=True):
- # tbd
- # with working_dir('build_cray_osscbtf_frontend', create=True):
- # tbd
- # fi
- # elif '+intelmic' in spec:
- # if '+runtime' in spec:
- # with working_dir('build_intelmic_cbtf_compute', create=True):
- # tbd
- # else:
- # with working_dir('build_intelmic_cbtf_frontend', create=True):
- # tbd
- # with working_dir('build_intelmic_osscbtf_frontend', create=True):
- # fi
- # else
- # with working_dir('build_cluster_cbtf', create=True):
- # tbd
- # with working_dir('build_cluster osscbtf', create=True):
- # tbd
- # fi
- #elif '+offline' in spec:
- # if cray build type detected:
- # if '+runtime' in spec:
- # with working_dir('build_cray_ossoff_compute', create=True):
- # tbd
- # else:
- # with working_dir('build_cray_ossoff_frontend', create=True):
- # tbd
- # fi
- # elif '+intelmic' in spec:
- # if '+runtime' in spec:
- # with working_dir('build_intelmic_ossoff_compute', create=True):
- # tbd
- # else:
- # with working_dir('build_intelmic_ossoff_frontend', create=True):
- # tbd
- # fi
- # elif bgq build type detected:
- # if '+runtime' in spec:
- # with working_dir('build_bgq_ossoff_compute', create=True):
- # tbd
- # else:
- # with working_dir('build_bgq_ossoff_frontend', create=True):
- # tbd
- # fi
- # else
- # with working_dir('build_cluster ossoff', create=True):
- # tbd
- # fi
- #fi
+ cmakeOptions = []
+ # Appends base options to cmakeOptions
+ self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
+
+ cmakeOptions.extend(
+ ['-DCMAKE_INSTALL_PREFIX=%s'
+ % prefix,
+ '-DCMAKE_PREFIX_PATH=%s'
+ % cmake_prefix_path,
+ '-DINSTRUMENTOR=%s'
+ % instrumentor_setting,
+ '-DSQLITE3_DIR=%s'
+ % spec['sqlite'].prefix,
+ '-DCBTF_DIR=%s'
+ % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s'
+ % spec['cbtf-krell'].prefix,
+ '-DQTLIB_DIR=%s'
+ % spec['qt'].prefix,
+ '-DMRNET_DIR=%s'
+ % spec['mrnet'].prefix])
+
+ # Adjust the build options to the favored
+ # ones for this build
+ self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+ cmake('..', *cmakeOptions)
+ make("clean")
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py
index 119cdd83c2..12b5ed9c52 100644
--- a/var/spack/repos/builtin/packages/openssl/package.py
+++ b/var/spack/repos/builtin/packages/openssl/package.py
@@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import urllib
import llnl.util.tty as tty
from spack import *
@@ -35,85 +34,50 @@ class Openssl(Package):
Transport Layer Security (TLS v1) protocols as well as a
full-strength general purpose cryptography library."""
homepage = "http://www.openssl.org"
- url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz"
+ url = "ftp://openssl.org/source/openssl-1.0.1h.tar.gz"
- version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
- version('1.0.1r', '1abd905e079542ccae948af37e393d28')
- version('1.0.1t', '9837746fcf8a6727d46d22ca35953da1')
- version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a')
- version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5')
- version('1.0.2f', 'b3bf73f507172be9292ea2a8c28b659d')
- version('1.0.2g', 'f3c710c045cdee5fd114feb69feba7aa')
+ version('1.0.2j', '96322138f0b69e61b7212bc53d5e912b')
+ version('1.0.2i', '678374e63f8df456a697d3e5e5a931fb')
version('1.0.2h', '9392e65072ce4b614c1392eefc1f23d0')
+ version('1.0.2g', 'f3c710c045cdee5fd114feb69feba7aa')
+ version('1.0.2f', 'b3bf73f507172be9292ea2a8c28b659d')
+ version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5')
+ version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a')
+ version('1.0.1u', '130bb19745db2a5a09f22ccbbf7e69d0')
+ version('1.0.1t', '9837746fcf8a6727d46d22ca35953da1')
+ version('1.0.1r', '1abd905e079542ccae948af37e393d28')
+ version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
depends_on("zlib")
parallel = False
- def url_for_version(self, version):
- # This URL is computed pinging the place where the latest version is stored. To avoid slowdown
- # due to repeated pinging, we store the URL in a private class attribute to do the job only once per version
- openssl_urls = getattr(Openssl, '_openssl_url', {})
- openssl_url = openssl_urls.get(version, None)
- # Same idea, but just to avoid issuing the same message multiple times
- warnings_given_to_user = getattr(Openssl, '_warnings_given', {})
- if openssl_url is None:
- if self.spec.satisfies('@external'):
- # The version @external is reserved to system openssl. In that case return a fake url and exit
- openssl_url = '@external (reserved version for system openssl)'
- if not warnings_given_to_user.get(version, False):
- tty.msg('Using openssl@external : the version @external is reserved for system openssl')
- warnings_given_to_user[version] = True
- else:
- openssl_url = self.check_for_outdated_release(version, warnings_given_to_user) # Store the computed URL
- openssl_urls[version] = openssl_url
- # Store the updated dictionary of URLS
- Openssl._openssl_url = openssl_urls
- # Store the updated dictionary of warnings
- Openssl._warnings_given = warnings_given_to_user
-
- return openssl_url
-
- def check_for_outdated_release(self, version, warnings_given_to_user):
- latest = 'ftp://ftp.openssl.org/source/openssl-{version}.tar.gz'
- older = 'http://www.openssl.org/source/old/{version_number}/openssl-{version_full}.tar.gz'
- # Try to use the url where the latest tarballs are stored. If the url does not exist (404), then
- # return the url for older format
- version_number = '.'.join([str(x) for x in version[:-1]])
- try:
- openssl_url = latest.format(version=version)
- urllib.urlopen(openssl_url)
- except IOError:
- openssl_url = older.format(version_number=version_number, version_full=version)
- # Checks if we already warned the user for this particular version of OpenSSL.
- # If not we display a warning message and mark this version
- if not warnings_given_to_user.get(version, False):
- tty.warn(
- 'This installation depends on an old version of OpenSSL, which may have known security issues. ')
- tty.warn('Consider updating to the latest version of this package.')
- tty.warn('More details at {homepage}'.format(homepage=Openssl.homepage))
- warnings_given_to_user[version] = True
-
- return openssl_url
+ def handle_fetch_error(self, error):
+ tty.warn("Fetching OpenSSL failed. This may indicate that OpenSSL has "
+ "been updated, and the version in your instance of Spack is "
+ "insecure. Consider updating to the latest OpenSSL version.")
def install(self, spec, prefix):
# OpenSSL uses a variable APPS in its Makefile. If it happens to be set
# in the environment, then this will override what is set in the
# Makefile, leading to build errors.
env.pop('APPS', None)
- if spec.satisfies("=darwin-x86_64") or spec.satisfies("=ppc64"):
+
+ if spec.satisfies('target=x86_64') or spec.satisfies('target=ppc64'):
# This needs to be done for all 64-bit architectures (except Linux,
# where it happens automatically?)
env['KERNEL_BITS'] = '64'
- config = Executable("./config")
- config("--prefix=%s" % prefix,
- "--openssldir=%s" % join_path(prefix, 'etc', 'openssl'),
- "zlib",
- "no-krb5",
- "shared")
+
+ options = ['zlib', 'no-krb5', 'shared']
+
+ config = Executable('./config')
+ config('--prefix=%s' % prefix,
+ '--openssldir=%s' % join_path(prefix, 'etc', 'openssl'),
+ *options)
+
# Remove non-standard compiler options if present. These options are
# present e.g. on Darwin. They are non-standard, i.e. most compilers
# (e.g. gcc) will not accept them.
filter_file(r'-arch x86_64', '', 'Makefile')
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/opium/package.py b/var/spack/repos/builtin/packages/opium/package.py
new file mode 100644
index 0000000000..521f917230
--- /dev/null
+++ b/var/spack/repos/builtin/packages/opium/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Opium(Package):
+ """DFT pseudopotential generation project"""
+
+ homepage = "https://opium.sourceforge.net/index.html"
+ url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz"
+
+ version('3.8', 'f710c0f869e70352b4a510c31e13bf9f')
+
+ depends_on('blas')
+ depends_on('lapack')
+
+ def install(self, spec, prefix):
+ libs = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options = ['LDFLAGS=%s' % libs.ld_flags]
+
+ configure(*options)
+ with working_dir("src", create=False):
+ make("all-subdirs")
+ make("opium")
+
+ # opium not have a make install :-((
+ mkdirp(self.prefix.bin)
+ install(join_path(self.stage.source_path, 'opium'),
+ self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
index 2104bf842b..161ba6254a 100644
--- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class OsuMicroBenchmarks(Package):
"""The Ohio MicroBenchmark suite is a collection of independent MPI
message passing performance microbenchmarks developed and written at
@@ -41,7 +42,6 @@ class OsuMicroBenchmarks(Package):
depends_on('mpi')
depends_on('cuda', when='+cuda')
-
def install(self, spec, prefix):
config_args = [
'CC=%s' % spec['mpi'].prefix.bin + '/mpicc',
diff --git a/var/spack/repos/builtin/packages/otf/package.py b/var/spack/repos/builtin/packages/otf/package.py
index 4a7a00b212..39eb5a85aa 100644
--- a/var/spack/repos/builtin/packages/otf/package.py
+++ b/var/spack/repos/builtin/packages/otf/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Otf(Package):
"""To improve scalability for very large and massively parallel
traces the Open Trace Format (OTF) is developed at ZIH as a
diff --git a/var/spack/repos/builtin/packages/otf2/package.py b/var/spack/repos/builtin/packages/otf2/package.py
index 131836f8ac..ee39f448eb 100644
--- a/var/spack/repos/builtin/packages/otf2/package.py
+++ b/var/spack/repos/builtin/packages/otf2/package.py
@@ -27,8 +27,8 @@ from spack import *
class Otf2(Package):
- """
- The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library.
+ """The Open Trace Format 2 is a highly scalable, memory efficient event
+ trace data format plus support library.
"""
homepage = "http://www.vi-hps.org/score-p"
@@ -46,10 +46,10 @@ class Otf2(Package):
url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz")
def install(self, spec, prefix):
- configure_args=["--prefix=%s" % prefix,
- "--enable-shared",
- "CFLAGS=-fPIC",
- "CXXFLAGS=-fPIC"]
+ configure_args = ["--prefix=%s" % prefix,
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
configure(*configure_args)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/p4est/package.py b/var/spack/repos/builtin/packages/p4est/package.py
index d0db4f7f20..da58f5a7e7 100644
--- a/var/spack/repos/builtin/packages/p4est/package.py
+++ b/var/spack/repos/builtin/packages/p4est/package.py
@@ -24,46 +24,41 @@
##############################################################################
from spack import *
+
class P4est(Package):
- """Dynamic management of a collection (a forest) of adaptive octrees in parallel"""
+ """Dynamic management of a collection (a forest) of adaptive octrees in
+ parallel"""
homepage = "http://www.p4est.org"
url = "http://p4est.github.io/release/p4est-1.1.tar.gz"
version('1.1', '37ba7f4410958cfb38a2140339dbf64f')
- variant('tests', default=True, description='Run small tests')
-
# build dependencies
- depends_on('automake')
- depends_on('autoconf')
- depends_on('libtool@2.4.2:')
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('libtool@2.4.2:', type='build')
# other dependencies
- depends_on('lua') # Needed for the submodule sc
depends_on('mpi')
depends_on('zlib')
def install(self, spec, prefix):
- options = ['--enable-mpi',
- '--enable-shared',
- '--disable-vtk-binary',
- '--without-blas',
- 'CPPFLAGS=-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL',
- 'CFLAGS=-O2',
- 'CC=%s' % self.spec['mpi'].mpicc,
- 'CXX=%s' % self.spec['mpi'].mpicxx,
- 'FC=%s' % self.spec['mpi'].mpifc,
- 'F77=%s' % self.spec['mpi'].mpif77
- ]
+ options = [
+ '--enable-mpi',
+ '--enable-shared',
+ '--disable-vtk-binary',
+ '--without-blas',
+ 'CPPFLAGS=-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL',
+ 'CFLAGS=-O2',
+ 'CC=%s' % self.spec['mpi'].mpicc,
+ 'CXX=%s' % self.spec['mpi'].mpicxx,
+ 'FC=%s' % self.spec['mpi'].mpifc,
+ 'F77=%s' % self.spec['mpi'].mpif77
+ ]
configure('--prefix=%s' % prefix, *options)
make()
- # Make tests optional as sometimes mpiexec can't be run with an error:
- # mpiexec has detected an attempt to run as root.
- # Running at root is *strongly* discouraged as any mistake (e.g., in
- # defining TMPDIR) or bug can result in catastrophic damage to the OS
- # file system, leaving your system in an unusable state.
- if '+tests' in self.spec:
- make("check")
+ if self.run_tests:
+ make("check")
make("install")
diff --git a/var/spack/repos/builtin/packages/panda/package.py b/var/spack/repos/builtin/packages/panda/package.py
new file mode 100644
index 0000000000..e30c2c869d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/panda/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Panda(Package):
+ """PANDA: Parallel AdjaceNcy Decomposition Algorithm"""
+ homepage = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/index.html"
+ url = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/downloads/current_panda.tar"
+
+ version('current', 'b06dc312ee56e13eefea9c915b70fcef')
+
+ # Note: Panda can also be built without MPI support
+
+ depends_on("cmake", type="build")
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake("..", *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py
index a04f6d64e0..c45054be58 100644
--- a/var/spack/repos/builtin/packages/pango/package.py
+++ b/var/spack/repos/builtin/packages/pango/package.py
@@ -24,18 +24,29 @@
##############################################################################
from spack import *
+
class Pango(Package):
"""Pango is a library for laying out and rendering of text, with
an emphasis on internationalization. It can be used anywhere
that text layout is needed, though most of the work on Pango so
far has been done in the context of the GTK+ widget toolkit."""
homepage = "http://www.pango.org"
- url = "http://ftp.gnome.org/pub/gnome/sources/pango/1.36/pango-1.36.8.tar.xz"
+ url = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.3.tar.xz"
+ list_url = "http://ftp.gnome.org/pub/gnome/sources/pango/"
+ list_depth = 2
+
+ version('1.40.3', 'abba8b5ce728520c3a0f1535eab19eac3c14aeef7faa5aded90017ceac2711d3')
+ version('1.40.1', 'e27af54172c72b3ac6be53c9a4c67053e16c905e02addcf3a603ceb2005c1a40')
+ version('1.36.8', '18dbb51b8ae12bae0ab7a958e7cf3317c9acfc8a1e1103ec2f147164a0fc2d07')
- version('1.36.8', '217a9a753006275215fa9fa127760ece')
+ variant('X', default=False, description="Enable an X toolkit")
+ depends_on("pkg-config", type="build")
depends_on("harfbuzz")
depends_on("cairo")
+ depends_on("cairo~X", when='~X')
+ depends_on("cairo+X", when='+X')
+ depends_on("glib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py
index ecd958407f..90a7490e75 100644
--- a/var/spack/repos/builtin/packages/papi/package.py
+++ b/var/spack/repos/builtin/packages/papi/package.py
@@ -28,6 +28,7 @@ import os
import sys
from llnl.util.filesystem import fix_darwin_install_name
+
class Papi(Package):
"""PAPI provides the tool designer and application engineer with a
consistent interface and methodology for use of the performance
@@ -40,6 +41,7 @@ class Papi(Package):
homepage = "http://icl.cs.utk.edu/papi/index.html"
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
+ version('5.5.0', '5e1244a04ca031d4cc29b46ce3dd05b5')
version('5.4.3', '3211b5a5bb389fe692370f5cf4cc2412')
version('5.4.1', '9134a99219c79767a11463a76b0b01a2')
version('5.3.0', '367961dd0ab426e5ae367c2713924ffb')
@@ -47,7 +49,7 @@ class Papi(Package):
def install(self, spec, prefix):
with working_dir("src"):
- configure_args=["--prefix=%s" % prefix]
+ configure_args = ["--prefix=%s" % prefix]
# PAPI uses MPI if MPI is present; since we don't require
# an MPI package, we ensure that all attempts to use MPI
diff --git a/var/spack/repos/builtin/packages/paradiseo/package.py b/var/spack/repos/builtin/packages/paradiseo/package.py
index d6324b63e6..c91b01c964 100644
--- a/var/spack/repos/builtin/packages/paradiseo/package.py
+++ b/var/spack/repos/builtin/packages/paradiseo/package.py
@@ -23,40 +23,50 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import sys
+
class Paradiseo(Package):
- """A C++ white-box object-oriented framework dedicated to the reusable design of metaheuristics."""
+ """A C++ white-box object-oriented framework dedicated to the reusable
+ design of metaheuristics."""
homepage = "http://paradiseo.gforge.inria.fr/"
- # Installing from the development version is a better option at this
+ # Installing from the development version is a better option at this
# point than using the very old supplied packages
version('head', git='https://gforge.inria.fr/git/paradiseo/paradiseo.git')
- # This is a version that the package formula author has tested successfully.
- # However, the clone is very large (~1Gb git history). The history in the
- # head version has been trimmed significantly.
- version('dev-safe', git='https://gforge.inria.fr/git/paradiseo/paradiseo.git',
- commit='dbb8fbe9a786efd4d1c26408ac1883442e7643a6')
- variant('mpi', default=True, description='Compile with parallel and distributed metaheuristics module')
- variant('smp', default=True, description='Compile with symmetric multi-processing module ')
- variant('edo', default=True, description='Compile with (Experimental) EDO module')
- #variant('tests', default=False, description='Compile with build tests')
- #variant('doc', default=False, description='Compile with documentation')
- variant('debug', default=False, description='Builds a debug version of the libraries')
+ # This is a version that the package formula author has tested
+ # successfully. However, the clone is very large (~1Gb git
+ # history). The history in the head version has been trimmed
+ # significantly.
+ version(
+ 'dev-safe', git='https://gforge.inria.fr/git/paradiseo/paradiseo.git',
+ commit='dbb8fbe9a786efd4d1c26408ac1883442e7643a6')
+
+ variant('mpi', default=True,
+ description='Compile with parallel and distributed '
+ 'metaheuristics module')
+ variant('smp', default=True,
+ description='Compile with symmetric multi-processing module ')
+ variant('edo', default=True,
+ description='Compile with (Experimental) EDO module')
+
+ # variant('tests', default=False, description='Compile with build tests')
+ # variant('doc', default=False, description='Compile with documentation')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
variant('openmp', default=False, description='Enable OpenMP support')
variant('gnuplot', default=False, description='Enable GnuPlot support')
-
+
# Required dependencies
- depends_on ("cmake")
+ depends_on("cmake", type='build')
# Optional dependencies
- depends_on ("mpi", when="+mpi")
- depends_on ("doxygen", when='+doc')
- depends_on ("gnuplot", when='+gnuplot')
- depends_on ("eigen", when='+edo')
- depends_on ("boost~mpi", when='+edo~mpi')
- depends_on ("boost+mpi", when='+edo+mpi')
+ depends_on("mpi", when="+mpi")
+ depends_on("doxygen", when='+doc', type='build')
+ depends_on("gnuplot", when='+gnuplot')
+ depends_on("eigen", when='+edo', type='build')
+ depends_on("boost~mpi", when='+edo~mpi')
+ depends_on("boost+mpi", when='+edo+mpi')
# Patches
patch('enable_eoserial.patch')
@@ -69,16 +79,21 @@ class Paradiseo(Package):
options.extend(std_cmake_args)
options.extend([
- '-DCMAKE_BUILD_TYPE:STRING=%s' % ('Debug' if '+debug' in spec else 'Release'),
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'Debug' if '+debug' in spec else 'Release'),
'-DINSTALL_TYPE:STRING=MIN',
'-DMPI:BOOL=%s' % ('TRUE' if '+mpi' in spec else 'FALSE'),
- '-DSMP:BOOL=%s' % ('TRUE' if '+smp' in spec else 'FALSE'), # Note: This requires a C++11 compatible compiler
+ # Note: This requires a C++11 compatible compiler
+ '-DSMP:BOOL=%s' % ('TRUE' if '+smp' in spec else 'FALSE'),
'-DEDO:BOOL=%s' % ('TRUE' if '+edo' in spec else 'FALSE'),
- '-DENABLE_CMAKE_TESTING:BOOL=%s' % ('TRUE' if '+tests' in spec else 'FALSE'),
- '-DENABLE_OPENMP:BOOL=%s' % ('TRUE' if '+openmp' in spec else 'FALSE'),
- '-DENABLE_GNUPLOT:BOOL=%s' % ('TRUE' if '+gnuplot' in spec else 'FALSE')
+ '-DENABLE_CMAKE_TESTING:BOOL=%s' % (
+ 'TRUE' if '+tests' in spec else 'FALSE'),
+ '-DENABLE_OPENMP:BOOL=%s' % (
+ 'TRUE' if '+openmp' in spec else 'FALSE'),
+ '-DENABLE_GNUPLOT:BOOL=%s' % (
+ 'TRUE' if '+gnuplot' in spec else 'FALSE')
])
-
+
with working_dir('spack-build', create=True):
# Configure
cmake('..', *options)
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
index 59c44c8a4a..65512017ef 100644
--- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class ParallelNetcdf(Package):
+
+class ParallelNetcdf(AutotoolsPackage):
"""Parallel netCDF (PnetCDF) is a library providing high-performance
parallel I/O while still maintaining file-format compatibility with
Unidata's NetCDF."""
@@ -37,14 +38,20 @@ class ParallelNetcdf(Package):
variant('cxx', default=True, description='Build the C++ Interface')
variant('fortran', default=True, description='Build the Fortran Interface')
- variant('fpic', default=True, description='Produce position-independent code (for use with shared libraries)')
+ variant('fpic', default=True,
+ description='Produce position-independent code (for shared libs)')
+
+ depends_on('mpi')
+
+ depends_on('m4', type='build')
+
+ # See:
+ # https://trac.mcs.anl.gov/projects/parallel-netcdf/browser/trunk/INSTALL
+ def configure_args(self):
+ spec = self.spec
- depends_on("m4")
- depends_on("mpi")
+ args = ['--with-mpi={0}'.format(spec['mpi'].prefix)]
- # See: https://trac.mcs.anl.gov/projects/parallel-netcdf/browser/trunk/INSTALL
- def install(self, spec, prefix):
- args = list()
if '+fpic' in spec:
args.extend(['CFLAGS=-fPIC', 'CXXFLAGS=-fPIC', 'FFLAGS=-fPIC'])
if '~cxx' in spec:
@@ -52,8 +59,4 @@ class ParallelNetcdf(Package):
if '~fortran' in spec:
args.append('--disable-fortran')
- args.extend(["--prefix=%s" % prefix,
- "--with-mpi=%s" % spec['mpi'].prefix])
- configure(*args)
- make()
- make("install")
+ return args
diff --git a/var/spack/repos/builtin/packages/parallel/package.py b/var/spack/repos/builtin/packages/parallel/package.py
new file mode 100644
index 0000000000..81c0195651
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallel/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Parallel(Package):
+ """GNU parallel is a shell tool for executing jobs in parallel using
+ one or more computers. A job can be a single command or a small
+ script that has to be run for each of the lines in the input.
+ """
+
+ homepage = "http://www.gnu.org/software/parallel/"
+ url = "http://ftp.gnu.org/gnu/parallel/parallel-20160422.tar.bz2"
+
+ version('20160422', '24621f684130472694333709bd4454cb')
+ version('20160322', '4e81e0d36902ab4c4e969ee6f35e6e57')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/paraver/package.py b/var/spack/repos/builtin/packages/paraver/package.py
index 50ce6b79fb..0a2ffdbb84 100644
--- a/var/spack/repos/builtin/packages/paraver/package.py
+++ b/var/spack/repos/builtin/packages/paraver/package.py
@@ -25,18 +25,21 @@
from spack import *
import os
+
class Paraver(Package):
""""A very powerful performance visualization and analysis tool
based on traces that can be used to analyse any information that
is expressed on its input trace format. Traces for parallel MPI,
OpenMP and other programs can be genereated with Extrae."""
homepage = "http://www.bsc.es/computer-sciences/performance-tools/paraver"
- url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.5.3.tar.gz"
+ url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.6.2.tar.gz"
- version('4.5.3', '625de9ec0d639acd18d1aaa644b38f72')
+ # NOTE: Paraver provides only latest version for download.
+ # Don't keep/add older versions.
+ version('4.6.2', 'c54e124382b597574628b00e31649803')
depends_on("boost")
- #depends_on("extrae")
+ # depends_on("extrae")
depends_on("wx")
depends_on("wxpropgrid")
@@ -47,8 +50,11 @@ class Paraver(Package):
make("install")
os.chdir("../paraver-kernel")
- #"--with-extrae=%s" % spec['extrae'].prefix,
- configure("--prefix=%s" % prefix, "--with-ptools-common-files=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization")
+ # "--with-extrae=%s" % spec['extrae'].prefix,
+ configure("--prefix=%s" % prefix,
+ "--with-ptools-common-files=%s" % prefix,
+ "--with-boost=%s" % spec['boost'].prefix,
+ "--with-boost-serialization=boost_serialization")
make()
make("install")
@@ -58,8 +64,11 @@ class Paraver(Package):
make("install")
os.chdir("../wxparaver")
- #"--with-extrae=%s" % spec['extrae'].prefix,
- configure("--prefix=%s" % prefix, "--with-paraver=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization", "--with-wxdir=%s" % spec['wx'].prefix.bin)
+ # "--with-extrae=%s" % spec['extrae'].prefix,
+ configure("--prefix=%s" % prefix,
+ "--with-paraver=%s" % prefix,
+ "--with-boost=%s" % spec['boost'].prefix,
+ "--with-boost-serialization=boost_serialization",
+ "--with-wxdir=%s" % spec['wx'].prefix.bin)
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 711cbc98c9..252f58247f 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Paraview(Package):
homepage = 'http://www.paraview.org'
url = 'http://www.paraview.org/files/v5.0/ParaView-v'
@@ -36,38 +37,38 @@ class Paraview(Package):
variant('tcl', default=False, description='Enable TCL support')
- variant('mpi', default=False, description='Enable MPI support')
+ variant('mpi', default=True, description='Enable MPI support')
variant('osmesa', default=False, description='Enable OSMesa support')
variant('qt', default=False, description='Enable Qt support')
variant('opengl2', default=False, description='Enable OpenGL2 backend')
depends_on('python@2:2.7', when='+python')
- depends_on('py-numpy', when='+python')
- depends_on('py-matplotlib', when='+python')
+ depends_on('py-numpy', when='+python', type='run')
+ depends_on('py-matplotlib', when='+python', type='run')
depends_on('tcl', when='+tcl')
depends_on('mpi', when='+mpi')
depends_on('qt@:4', when='+qt')
+ depends_on('cmake', type='build')
depends_on('bzip2')
depends_on('freetype')
- #depends_on('hdf5+mpi', when='+mpi')
- #depends_on('hdf5~mpi', when='~mpi')
+ # depends_on('hdf5+mpi', when='+mpi')
+ # depends_on('hdf5~mpi', when='~mpi')
depends_on('jpeg')
depends_on('libpng')
depends_on('libtiff')
depends_on('libxml2')
- #depends_on('netcdf')
- #depends_on('netcdf-cxx')
- #depends_on('protobuf') # version mismatches?
- #depends_on('sqlite') # external version not supported
+ # depends_on('netcdf')
+ # depends_on('netcdf-cxx')
+ # depends_on('protobuf') # version mismatches?
+ # depends_on('sqlite') # external version not supported
depends_on('zlib')
def url_for_version(self, version):
"""Handle ParaView version-based custom URLs."""
return self._url_str % (version.up_to(2), version)
-
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
def feature_to_bool(feature, on='ON', off='OFF'):
@@ -79,34 +80,46 @@ class Paraview(Package):
return feature_to_bool(feature, on='OFF', off='ON')
feature_args = std_cmake_args[:]
- feature_args.append('-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % feature_to_bool('+qt'))
- feature_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=%s' % feature_to_bool('+python'))
+ feature_args.append(
+ '-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % feature_to_bool('+qt'))
+ feature_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=%s' %
+ feature_to_bool('+python'))
if '+python' in spec:
- feature_args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python' % spec['python'].prefix)
- feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' % feature_to_bool('+mpi'))
+ feature_args.append(
+ '-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python'
+ % spec['python'].prefix)
+ feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' %
+ feature_to_bool('+mpi'))
if '+mpi' in spec:
- feature_args.append('-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix)
- feature_args.append('-DVTK_ENABLE_TCL_WRAPPING:BOOL=%s' % feature_to_bool('+tcl'))
- feature_args.append('-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' % feature_to_bool('+osmesa'))
- feature_args.append('-DVTK_USE_X:BOOL=%s' % nfeature_to_bool('+osmesa'))
- feature_args.append('-DVTK_RENDERING_BACKEND:STRING=%s' % feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL'))
+ feature_args.append(
+ '-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix)
+ feature_args.append(
+ '-DVTK_ENABLE_TCL_WRAPPING:BOOL=%s' % feature_to_bool('+tcl'))
+ feature_args.append('-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' %
+ feature_to_bool('+osmesa'))
+ feature_args.append('-DVTK_USE_X:BOOL=%s' %
+ nfeature_to_bool('+osmesa'))
+ feature_args.append(
+ '-DVTK_RENDERING_BACKEND:STRING=%s' %
+ feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL'))
feature_args.extend(std_cmake_args)
if 'darwin' in self.spec.architecture:
feature_args.append('-DVTK_USE_X:BOOL=OFF')
- feature_args.append('-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON')
+ feature_args.append(
+ '-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON')
cmake('..',
- '-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
- '-DBUILD_TESTING:BOOL=OFF',
- '-DVTK_USE_SYSTEM_FREETYPE:BOOL=ON',
- '-DVTK_USE_SYSTEM_HDF5:BOOL=OFF',
- '-DVTK_USE_SYSTEM_JPEG:BOOL=ON',
- '-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON',
- '-DVTK_USE_SYSTEM_NETCDF:BOOL=OFF',
- '-DVTK_USE_SYSTEM_TIFF:BOOL=ON',
- '-DVTK_USE_SYSTEM_ZLIB:BOOL=ON',
- *feature_args)
+ '-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
+ '-DBUILD_TESTING:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_FREETYPE:BOOL=ON',
+ '-DVTK_USE_SYSTEM_HDF5:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_JPEG:BOOL=ON',
+ '-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON',
+ '-DVTK_USE_SYSTEM_NETCDF:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_TIFF:BOOL=ON',
+ '-DVTK_USE_SYSTEM_ZLIB:BOOL=ON',
+ *feature_args)
make()
make('install')
diff --git a/var/spack/repos/builtin/packages/parmetis/package.py b/var/spack/repos/builtin/packages/parmetis/package.py
index 2dead4a76a..74e00cc9e0 100644
--- a/var/spack/repos/builtin/packages/parmetis/package.py
+++ b/var/spack/repos/builtin/packages/parmetis/package.py
@@ -26,64 +26,62 @@
from spack import *
import sys
+
class Parmetis(Package):
- """
- ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured
- graphs, meshes, and for computing fill-reducing orderings of sparse matrices.
- """
+ """ParMETIS is an MPI-based parallel library that implements a variety of
+ algorithms for partitioning unstructured graphs, meshes, and for
+ computing fill-reducing orderings of sparse matrices."""
+
homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview'
- url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz'
+ base_url = 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis'
version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628')
+ version('4.0.2', '0912a953da5bb9b5e5e10542298ffdce')
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds the library in debug mode')
- variant('gdb', default=False, description='Enables gdb support')
+ variant('shared', default=True, description='Enables the build of shared libraries.')
+ variant('debug', default=False, description='Builds the library in debug mode.')
+ variant('gdb', default=False, description='Enables gdb support.')
- depends_on('cmake @2.8:') # build dependency
+ depends_on('cmake@2.8:', type='build')
depends_on('mpi')
-
- patch('enable_external_metis.patch')
depends_on('metis@5:')
+ patch('enable_external_metis.patch')
# bug fixes from PETSc developers
- # https://bitbucket.org/petsc/pkg-parmetis/commits/1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b/raw/
+ # https://bitbucket.org/petsc/pkg-parmetis/commits/1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b/raw/ # NOQA: E501
patch('pkg-parmetis-1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b.patch')
- # https://bitbucket.org/petsc/pkg-parmetis/commits/82409d68aa1d6cbc70740d0f35024aae17f7d5cb/raw/
+ # https://bitbucket.org/petsc/pkg-parmetis/commits/82409d68aa1d6cbc70740d0f35024aae17f7d5cb/raw/ # NOQA: E501
patch('pkg-parmetis-82409d68aa1d6cbc70740d0f35024aae17f7d5cb.patch')
- depends_on('gdb', when='+gdb')
+ def url_for_version(self, version):
+ verdir = 'OLD/' if version < Version('3.2.0') else ''
+ return '%s/%sparmetis-%s.tar.gz' % (Parmetis.base_url, verdir, version)
def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
-
- build_directory = join_path(self.stage.path, 'spack-build')
source_directory = self.stage.source_path
- metis_source = join_path(source_directory, 'metis')
+ build_directory = join_path(source_directory, 'build')
- # FIXME : Once a contract is defined, MPI compilers should be retrieved indirectly via spec['mpi'] in case
- # FIXME : they use a non-standard name
- options.extend(['-DGKLIB_PATH:PATH={metis_source}/GKlib'.format(metis_source=spec['metis'].prefix.include),
- '-DMETIS_PATH:PATH={metis_source}'.format(metis_source=spec['metis'].prefix),
- '-DCMAKE_C_COMPILER:STRING=mpicc',
- '-DCMAKE_CXX_COMPILER:STRING=mpicxx'])
+ options = std_cmake_args[:]
+ options.extend([
+ '-DGKLIB_PATH:PATH=%s/GKlib' % spec['metis'].prefix.include,
+ '-DMETIS_PATH:PATH=%s' % spec['metis'].prefix,
+ '-DCMAKE_C_COMPILER:STRING=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER:STRING=%s' % spec['mpi'].mpicxx
+ ])
if '+shared' in spec:
options.append('-DSHARED:BOOL=ON')
-
if '+debug' in spec:
options.extend(['-DDEBUG:BOOL=ON',
'-DCMAKE_BUILD_TYPE:STRING=Debug'])
-
if '+gdb' in spec:
options.append('-DGDB:BOOL=ON')
with working_dir(build_directory, create=True):
cmake(source_directory, *options)
make()
- make("install")
+ make('install')
- # The shared library is not installed correctly on Darwin; correct this
+ # The shared library is not installed correctly on Darwin; fix this
if (sys.platform == 'darwin') and ('+shared' in spec):
fix_darwin_install_name(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/parmgridgen/package.py b/var/spack/repos/builtin/packages/parmgridgen/package.py
new file mode 100644
index 0000000000..02be777c36
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parmgridgen/package.py
@@ -0,0 +1,71 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Parmgridgen(Package):
+ """MGRIDGEN is a serial library written entirely in ANSI C that implements
+ (serial) algorithms for obtaining a sequence of successive coarse grids
+ that are well-suited for geometric multigrid methods.
+ ParMGridGen is the parallel version of MGridGen
+ """
+
+ homepage = "http://www-users.cs.umn.edu/~moulitsa/software.html"
+ url = "http://www-users.cs.umn.edu/~moulitsa/download/ParMGridGen-1.0.tar.gz"
+
+ version('1.0', '2872fa95b7fb91d6bd525490eed62038')
+
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+ make_opts = [
+ 'make=make',
+ 'COPTIONS=-fPIC',
+ 'LDOPTIONS=-fPIC',
+ 'CC={0}'.format(self.compiler.cc),
+ 'PARCC={0}'.format(spec['mpi'].mpicc),
+ 'LD={0}'.format(self.compiler.cc),
+ 'PARLD={0}'.format(spec['mpi'].mpicc),
+ 'LIBDIR=-L../..',
+ 'PARLIBS=-L../../ -lparmgrid -lmgrid -lm',
+ 'LIBS=-L../../ -lmgrid -lm',
+ 'parallel'
+ ]
+
+ make(*make_opts, parallel=False)
+
+ mkdirp(prefix.include, prefix.lib, prefix.bin)
+
+ install("mgridgen.h", prefix.include)
+ install("parmgridgen.h", prefix.include)
+
+ install("MGridGen/IMlib/libIMlib.a",
+ join_path(prefix.lib, 'libIMlib.a'))
+ install("libmgrid.a", prefix.lib)
+ install("libparmgrid.a", prefix.lib)
+
+ install("mgridgen", prefix.bin)
+ install("parmgridgen", prefix.bin)
diff --git a/var/spack/repos/builtin/packages/parpack/package.py b/var/spack/repos/builtin/packages/parpack/package.py
index 5930dada85..84bc88b3b0 100644
--- a/var/spack/repos/builtin/packages/parpack/package.py
+++ b/var/spack/repos/builtin/packages/parpack/package.py
@@ -26,6 +26,7 @@ from spack import *
import os
import shutil
+
class Parpack(Package):
"""ARPACK is a collection of Fortran77 subroutines designed to solve large
scale eigenvalue problems."""
@@ -52,13 +53,13 @@ class Parpack(Package):
mf.filter('^PLAT.*', 'PLAT = ')
mf.filter('^home.*', 'home = %s' % os.getcwd())
mf.filter('^BLASdir.*', 'BLASdir = %s' % self.spec['blas'].prefix)
- mf.filter('^LAPACKdir.*', 'LAPACKdir = %s' % self.spec['lapack'].prefix)
+ mf.filter('^LAPACKdir.*', 'LAPACKdir = %s' %
+ self.spec['lapack'].prefix)
mf.filter('^MAKE.*', 'MAKE = make')
# build the library in our own prefix.
mf.filter('^ARPACKLIB.*', 'PARPACKLIB = %s/libparpack.a' % os.getcwd())
-
def install(self, spec, prefix):
with working_dir('PARPACK/SRC/MPI'):
make('all')
diff --git a/var/spack/repos/builtin/packages/patch/package.py b/var/spack/repos/builtin/packages/patch/package.py
new file mode 100644
index 0000000000..df890c057a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/patch/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Patch(AutotoolsPackage):
+ """Patch takes a patch file containing a difference listing produced by
+ the diff program and applies those differences to one or more
+ original files, producing patched versions.
+ """
+
+ homepage = "http://savannah.gnu.org/projects/patch/"
+ url = "http://ftp.gnu.org/gnu/patch/patch-2.7.5.tar.xz"
+
+ version('2.7.5', 'e3da7940431633fb65a01b91d3b7a27a')
diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py
index 3860875bcc..c391f491eb 100644
--- a/var/spack/repos/builtin/packages/patchelf/package.py
+++ b/var/spack/repos/builtin/packages/patchelf/package.py
@@ -24,14 +24,18 @@
##############################################################################
from spack import *
+
class Patchelf(Package):
- """PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables."""
+ """PatchELF is a small utility to modify the dynamic linker and RPATH of
+ ELF executables."""
homepage = "https://nixos.org/patchelf.html"
- url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz"
+ url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz"
+
list_url = "http://nixos.org/releases/patchelf/"
list_depth = 2
+ version('0.9', '3c265508526760f233620f35d79c79fc')
version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/pcre/intel.patch b/var/spack/repos/builtin/packages/pcre/intel.patch
new file mode 100644
index 0000000000..f160f55e1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pcre/intel.patch
@@ -0,0 +1,12 @@
+diff -up pcre-8.38/pcrecpp.cc.intel pcre-8.38/pcrecpp.cc
+--- pcre-8.38/pcrecpp.cc.intel 2014-09-15 07:48:59.000000000 -0600
++++ pcre-8.38/pcrecpp.cc 2016-06-08 16:16:56.702721214 -0600
+@@ -66,7 +66,7 @@ Arg RE::no_arg((void*)NULL);
+ // inclusive test if we ever needed it. (Note that not only the
+ // __attribute__ syntax, but also __USER_LABEL_PREFIX__, are
+ // gnu-specific.)
+-#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
++#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__) && !defined(__INTEL_COMPILER)
+ # define ULP_AS_STRING(x) ULP_AS_STRING_INTERNAL(x)
+ # define ULP_AS_STRING_INTERNAL(x) #x
+ # define USER_LABEL_PREFIX_STR ULP_AS_STRING(__USER_LABEL_PREFIX__)
diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py
index 7a9f3b911d..a2236e682b 100644
--- a/var/spack/repos/builtin/packages/pcre/package.py
+++ b/var/spack/repos/builtin/packages/pcre/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Pcre(Package):
"""The PCRE package contains Perl Compatible Regular Expression
libraries. These are useful for implementing regular expression
@@ -31,10 +32,21 @@ class Pcre(Package):
homepage = "http://www.pcre.org"""
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2"
- version('8.36', 'b767bc9af0c20bc9c1fe403b0d41ad97')
+ version('8.39', 'e3fca7650a0556a2647821679d81f585')
version('8.38', '00aabbfe56d5a48b270f999b508c5ad2')
+ patch("intel.patch", when='@8.38')
+
+ variant('utf', default=True,
+ description='Enable support for UTF-8/16/32, '
+ 'incompatible with EBCDIC.')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure_args = ['--prefix=%s' % prefix]
+ if '+utf' in spec:
+ configure_args.append('--enable-utf')
+ configure_args.append('--enable-unicode-properties')
+
+ configure(*configure_args)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/pcre2/package.py b/var/spack/repos/builtin/packages/pcre2/package.py
index b013685f05..a2739e0584 100644
--- a/var/spack/repos/builtin/packages/pcre2/package.py
+++ b/var/spack/repos/builtin/packages/pcre2/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Pcre2(Package):
"""The PCRE2 package contains Perl Compatible Regular Expression
libraries. These are useful for implementing regular expression
diff --git a/var/spack/repos/builtin/packages/pdt/package.py b/var/spack/repos/builtin/packages/pdt/package.py
index 60136fc0cd..bed01aeefb 100644
--- a/var/spack/repos/builtin/packages/pdt/package.py
+++ b/var/spack/repos/builtin/packages/pdt/package.py
@@ -22,24 +22,29 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Pdt(Package):
- """
- Program Database Toolkit (PDT) is a framework for analyzing source code written in several programming languages
- and for making rich program knowledge accessible to developers of static and dynamic analysis tools. PDT implements
- a standard program representation, the program database (PDB), that can be accessed in a uniform way through a
- class library supporting common PDB operations.
+ """Program Database Toolkit (PDT) is a framework for analyzing source
+ code written in several programming languages and for making rich
+ program knowledge accessible to developers of static and dynamic
+ analysis tools. PDT implements a standard program representation,
+ the program database (PDB), that can be accessed in a uniform way
+ through a class library supporting common PDB operations.
+
"""
homepage = "https://www.cs.uoregon.edu/research/pdt/home.php"
- url = "https://www.cs.uoregon.edu/research/tau/pdt_releases/pdt-3.21.tar.gz"
+ url = "http://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdtoolkit-3.22.1.tar.gz"
- version('3.21', '8df94298b71703decf680709a4ddf68f')
- version('3.19', 'ba5591994998771fdab216699e362228')
+ version('3.22.1', 'b56b9b3e621161c7fd9e4908b944840d')
+ version('3.22', '982d667617802962a1f7fe6c4c31184f')
+ version('3.21', '3092ca0d8833b69992c17e63ae66c263')
+ version('3.20', 'c3edabe202926abe04552e33cd39672d')
+ version('3.19', '5c5e1e6607086aa13bf4b1b9befc5864')
+ version('3.18.1', 'e401534f5c476c3e77f05b7f73b6c4f2')
def install(self, spec, prefix):
configure('-prefix=%s' % prefix)
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py
new file mode 100644
index 0000000000..d71a7492ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+#
+# Author: George Hartzell <hartzell@alerce.com>
+# Date: July 21, 2016
+# Author: Justin Too <justin@doubleotoo.com>
+# Date: September 6, 2015
+#
+from spack import *
+
+
+class Perl(Package):
+ """Perl 5 is a highly capable, feature-rich programming language with over
+ 27 years of development."""
+ homepage = "http://www.perl.org"
+ url = "http://www.cpan.org/src/5.0/perl-5.22.2.tar.gz"
+
+ version('5.24.0', 'c5bf7f3285439a2d3b6a488e14503701')
+ version('5.22.2', '5767e2a10dd62a46d7b57f74a90d952b')
+ version('5.20.3', 'd647d0ea5a7a8194c34759ab9f2610cd')
+ # 5.18.4 fails with gcc-5
+ # https://rt.perl.org/Public/Bug/Display.html?id=123784
+ # version('5.18.4' , '1f9334ff730adc05acd3dd7130d295db')
+
+ # Installing cpanm alongside the core makes it safe and simple for
+ # people/projects to install their own sets of perl modules. Not
+ # having it in core increases the "energy of activation" for doing
+ # things cleanly.
+ variant('cpanm', default=True,
+ description='Optionally install cpanm with the core packages.')
+
+ resource(
+ name="cpanm",
+ url="http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7042.tar.gz",
+ md5="e87f55fbcb3c13a4754500c18e89219f",
+ destination="cpanm",
+ placement="cpanm"
+ )
+
+ def install(self, spec, prefix):
+ configure = Executable('./Configure')
+ configure("-des", "-Dprefix=" + prefix)
+ make()
+ if self.run_tests:
+ make("test")
+ make("install")
+
+ if '+cpanm' in spec:
+ with working_dir(join_path('cpanm', 'cpanm')):
+ perl = Executable(join_path(prefix.bin, 'perl'))
+ perl('Makefile.PL')
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 6456a1aabf..a9d4ff6065 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -22,75 +22,112 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+
import os
+import sys
from spack import *
class Petsc(Package):
- """
- PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications
- modeled by partial differential equations.
+ """PETSc is a suite of data structures and routines for the scalable
+ (parallel) solution of scientific applications modeled by partial
+ differential equations.
"""
homepage = "http://www.mcs.anl.gov/petsc/index.html"
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.5.3.tar.gz"
+ version('develop', git='https://bitbucket.org/petsc/petsc.git', tag='master')
+ version('for-pflotran-0.1.0', git='https://bitbucket.org/petsc/petsc.git',
+ commit='7943f4e1472fff9cf1fc630a1100136616e4970f')
+
+ version('3.7.5', 'f00f6e6a3bac39052350dd47194b58a3')
+ version('3.7.4', 'aaf94fa54ef83022c14091f10866eedf')
+ version('3.7.2', '50da49867ce7a49e7a0c1b37f4ec7b34')
+ version('3.6.4', '7632da2375a3df35b8891c9526dbdde7')
version('3.6.3', '91dd3522de5a5ef039ff8f50800db606')
version('3.5.3', 'd4fd2734661e89f18ac6014b5dd1ef2f')
version('3.5.2', 'ad170802b3b058b5deb9cd1f968e7e13')
version('3.5.1', 'a557e029711ebf425544e117ffa44d8f')
version('3.4.4', '7edbc68aa6d8d6a3295dd5f6c2f6979d')
- variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
variant('mpi', default=True, description='Activates MPI support')
- variant('double', default=True, description='Switches between single and double precision')
+ variant('double', default=True,
+ description='Switches between single and double precision')
variant('complex', default=False, description='Build with complex numbers')
variant('debug', default=False, description='Compile in debug mode')
- variant('metis', default=True, description='Activates support for metis and parmetis')
- variant('hdf5', default=True, description='Activates support for HDF5 (only parallel)')
+ variant('metis', default=True,
+ description='Activates support for metis and parmetis')
+ variant('hdf5', default=True,
+ description='Activates support for HDF5 (only parallel)')
variant('boost', default=True, description='Activates support for Boost')
- variant('hypre', default=True, description='Activates support for Hypre (only parallel)')
- variant('mumps', default=True, description='Activates support for MUMPS (only parallel)')
- variant('superlu-dist', default=True, description='Activates support for SuperluDist (only parallel)')
+ variant('hypre', default=True,
+ description='Activates support for Hypre (only parallel)')
+ variant('mumps', default=True,
+ description='Activates support for MUMPS (only parallel'
+ ' and 32bit indices)')
+ variant('superlu-dist', default=True,
+ description='Activates support for SuperluDist (only parallel)')
+ variant('int64', default=False,
+ description='Compile with 64bit indices')
# Virtual dependencies
+ # Git repository needs sowing to build Fortran interface
+ depends_on('sowing', when='@develop')
+
+ # PETSc, hypre, superlu_dist when built with int64 use 32 bit integers
+ # with BLAS/LAPACK
depends_on('blas')
depends_on('lapack')
depends_on('mpi', when='+mpi')
# Build dependencies
- depends_on('python @2.6:2.7')
+ depends_on('python @2.6:2.7', type='build')
# Other dependencies
- depends_on('boost', when='+boost')
- depends_on('metis@5:', when='+metis')
+ depends_on('boost', when='@:3.5+boost')
+ depends_on('metis@5:~int64', when='+metis~int64')
+ depends_on('metis@5:+int64', when='+metis+int64')
depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('parmetis', when='+metis+mpi')
# Hypre does not support complex numbers.
- # Also PETSc prefer to build it without internal superlu, likely due to conflict in headers
- # see https://bitbucket.org/petsc/petsc/src/90564b43f6b05485163c147b464b5d6d28cde3ef/config/BuildSystem/config/packages/hypre.py
- depends_on('hypre~internal-superlu', when='+hypre+mpi~complex')
- depends_on('superlu-dist', when='+superlu-dist+mpi')
- depends_on('mumps+mpi', when='+mumps+mpi')
- depends_on('scalapack', when='+mumps+mpi')
+ # Also PETSc prefer to build it without internal superlu, likely due to
+ # conflict in headers see
+ # https://bitbucket.org/petsc/petsc/src/90564b43f6b05485163c147b464b5d6d28cde3ef/config/BuildSystem/config/packages/hypre.py
+ depends_on('hypre~internal-superlu~int64', when='+hypre+mpi~complex~int64')
+ depends_on('hypre~internal-superlu+int64', when='+hypre+mpi~complex+int64')
+ depends_on('superlu-dist@:4.3~int64', when='@3.4.4:3.6.4+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@:4.3+int64', when='@3.4.4:3.6.4+superlu-dist+mpi+int64')
+ depends_on('superlu-dist@5.0.0:~int64', when='@3.7:+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@5.0.0:+int64', when='@3.7:+superlu-dist+mpi+int64')
+ depends_on('superlu-dist@5.0.0:~int64', when='@for-pflotran-0.1.0+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@5.0.0:+int64', when='@for-pflotran-0.1.0+superlu-dist+mpi+int64')
+ depends_on('mumps+mpi', when='+mumps+mpi~int64')
+ depends_on('scalapack', when='+mumps+mpi~int64')
def mpi_dependent_options(self):
if '~mpi' in self.spec:
compiler_opts = [
'--with-cc=%s' % os.environ['CC'],
- '--with-cxx=%s' % (os.environ['CXX'] if self.compiler.cxx is not None else '0'),
- '--with-fc=%s' % (os.environ['FC'] if self.compiler.fc is not None else '0'),
+ '--with-cxx=%s' % (os.environ['CXX']
+ if self.compiler.cxx is not None else '0'),
+ '--with-fc=%s' % (os.environ['FC']
+ if self.compiler.fc is not None else '0'),
'--with-mpi=0'
]
- error_message_fmt = '\t{library} support requires "+mpi" to be activated'
-
- # If mpi is disabled (~mpi), it's an error to have any of these enabled.
- # This generates a list of any such errors.
- errors = [error_message_fmt.format(library=x)
- for x in ('hdf5', 'hypre', 'parmetis','mumps','superlu-dist')
- if ('+'+x) in self.spec]
+ error_message_fmt = \
+ '\t{library} support requires "+mpi" to be activated'
+
+ # If mpi is disabled (~mpi), it's an error to have any of these
+ # enabled. This generates a list of any such errors.
+ errors = [
+ error_message_fmt.format(library=x)
+ for x in ('hdf5', 'hypre', 'parmetis', 'mumps', 'superlu-dist')
+ if ('+' + x) in self.spec]
if errors:
errors = ['incompatible variants given'] + errors
raise RuntimeError('\n'.join(errors))
@@ -99,32 +136,57 @@ class Petsc(Package):
'--with-mpi=1',
'--with-mpi-dir=%s' % self.spec['mpi'].prefix,
]
+ if sys.platform != "darwin":
+ compiler_opts.extend([
+ '--with-cpp=cpp',
+ '--with-cxxcpp=cpp',
+ ])
return compiler_opts
def install(self, spec, prefix):
- options = ['--with-ssl=0']
+ options = ['--with-ssl=0',
+ '--with-x=0',
+ '--download-c2html=0',
+ '--download-sowing=0',
+ '--download-hwloc=0']
options.extend(self.mpi_dependent_options())
options.extend([
- '--with-precision=%s' % ('double' if '+double' in spec else 'single'),
- '--with-scalar-type=%s' % ('complex' if '+complex' in spec else 'real'),
+ '--with-precision=%s' % (
+ 'double' if '+double' in spec else 'single'),
+ '--with-scalar-type=%s' % (
+ 'complex' if '+complex' in spec else 'real'),
'--with-shared-libraries=%s' % ('1' if '+shared' in spec else '0'),
'--with-debugging=%s' % ('1' if '+debug' in spec else '0'),
- '--with-blas-lapack-dir=%s' % spec['lapack'].prefix
+ '--with-64-bit-indices=%s' % ('1' if '+int64' in spec else '0')
+ ])
+ # Make sure we use exactly the same Blas/Lapack libraries
+ # across the DAG. To that end list them explicitly
+ lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
+ options.extend([
+ '--with-blas-lapack-lib=%s' % lapack_blas.joined()
])
+
# Activates library support if needed
- for library in ('metis', 'boost', 'hdf5', 'hypre', 'parmetis','mumps','scalapack'):
+ for library in ('metis', 'boost', 'hdf5', 'hypre', 'parmetis',
+ 'mumps', 'scalapack'):
options.append(
- '--with-{library}={value}'.format(library=library, value=('1' if library in spec else '0'))
+ '--with-{library}={value}'.format(
+ library=library, value=('1' if library in spec else '0'))
)
if library in spec:
options.append(
- '--with-{library}-dir={path}'.format(library=library, path=spec[library].prefix)
+ '--with-{library}-dir={path}'.format(
+ library=library, path=spec[library].prefix)
)
- # PETSc does not pick up SuperluDist from the dir as they look for superlu_dist_4.1.a
+ # PETSc does not pick up SuperluDist from the dir as they look for
+ # superlu_dist_4.1.a
if 'superlu-dist' in spec:
options.extend([
- '--with-superlu_dist-include=%s' % spec['superlu-dist'].prefix.include,
- '--with-superlu_dist-lib=%s' % join_path(spec['superlu-dist'].prefix.lib, 'libsuperlu_dist.a'),
+ '--with-superlu_dist-include=%s' %
+ spec['superlu-dist'].prefix.include,
+ '--with-superlu_dist-lib=%s' %
+ join_path(spec['superlu-dist'].prefix.lib,
+ 'libsuperlu_dist.a'),
'--with-superlu_dist=1'
])
else:
@@ -138,6 +200,46 @@ class Petsc(Package):
make('MAKE_NP=%s' % make_jobs, parallel=False)
make("install")
+ # solve Poisson equation in 2D to make sure nothing is broken:
+ if ('mpi' in spec) and self.run_tests:
+ with working_dir('src/ksp/ksp/examples/tutorials'):
+ env['PETSC_DIR'] = self.prefix
+ cc = Executable(spec['mpi'].mpicc)
+ cc('ex50.c', '-I%s' % prefix.include, '-L%s' % prefix.lib,
+ '-lpetsc', '-lm', '-o', 'ex50')
+ run = Executable(join_path(spec['mpi'].prefix.bin, 'mpirun'))
+ run('ex50', '-da_grid_x', '4', '-da_grid_y', '4')
+ if 'superlu-dist' in spec:
+ run('ex50',
+ '-da_grid_x', '4',
+ '-da_grid_y', '4',
+ '-pc_type', 'lu',
+ '-pc_factor_mat_solver_package', 'superlu_dist')
+
+ if 'mumps' in spec:
+ run('ex50',
+ '-da_grid_x', '4',
+ '-da_grid_y', '4',
+ '-pc_type', 'lu',
+ '-pc_factor_mat_solver_package', 'mumps')
+
+ if 'hypre' in spec:
+ run('ex50',
+ '-da_grid_x', '4',
+ '-da_grid_y', '4',
+ '-pc_type', 'hypre',
+ '-pc_hypre_type', 'boomeramg')
+
+ def setup_environment(self, spack_env, run_env):
+ # configure fails if these env vars are set outside of Spack
+ spack_env.unset('PETSC_DIR')
+ spack_env.unset('PETSC_ARCH')
+
+ # Set PETSC_DIR in the module file
+ run_env.set('PETSC_DIR', self.prefix)
+ run_env.unset('PETSC_ARCH')
+
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
- # set up PETSC_DIR for everyone using PETSc package
+ # Set up PETSC_DIR for everyone using PETSc package
spack_env.set('PETSC_DIR', self.prefix)
+ spack_env.unset('PETSC_ARCH')
diff --git a/var/spack/repos/builtin/packages/pexsi/make.inc b/var/spack/repos/builtin/packages/pexsi/make.inc
new file mode 100644
index 0000000000..a8020fb370
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pexsi/make.inc
@@ -0,0 +1,79 @@
+# Different compiling and linking options.
+SUFFIX = linux
+
+# Compiler and tools
+################################################################
+CC = @MPICC
+CXX = @MPICXX
+FC = @MPIFC
+LOADER = @MPICXX
+
+
+AR = ar
+ARFLAGS = rvcu
+# For System V based machine without ranlib, like Cray and SGI,
+# use touch instead.
+RANLIB = @RANLIB
+
+CP = cp
+RM = rm
+RMFLAGS = -f
+################################################################
+
+# PEXSI directory
+PEXSI_DIR = @PEXSI_STAGE
+
+# Required libraries directories
+DSUPERLU_DIR = @SUPERLU_PREFIX
+METIS_DIR = @METIS_PREFIX
+PARMETIS_DIR = @PARMETIS_PREFIX
+LAPACK_DIR = @LAPACK_PREFIX
+BLAS_DIR = @BLAS_PREFIX
+
+# Includes
+PEXSI_INCLUDE = -I${PEXSI_DIR}/include
+DSUPERLU_INCLUDE = -I${DSUPERLU_DIR}/include
+INCLUDES = ${PEXSI_INCLUDE} ${DSUPERLU_INCLUDE}
+
+# Libraries
+CPP_LIB = @STDCXX_LIB @MPICXX_LIB
+#GFORTRAN_LIB = /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a
+LAPACK_LIB = @LAPACK_LIBS
+BLAS_LIB = @BLAS_LIBS
+DSUPERLU_LIB = ${DSUPERLU_DIR}/lib/libsuperlu_dist.a
+PEXSI_LIB = ${PEXSI_DIR}/src/libpexsi_${SUFFIX}.a
+
+# Graph partitioning libraries
+METIS_LIB = -L${METIS_DIR}/lib -lmetis
+PARMETIS_LIB = -L${PARMETIS_DIR}/libparmetis -lparmetis
+
+# Different compiling and linking options.
+COMPILE_DEF = -DDEBUG=0 -DRELEASE
+COMPILE_FLAG = -O3 -w
+
+LIBS = ${PEXSI_LIB} ${DSUPERLU_LIB} ${PARMETIS_LIB} ${METIS_LIB} ${LAPACK_LIB} ${BLAS_LIB} ${GFORTRAN_LIB}
+
+COMPILE_DEF += -DAdd_
+
+CPPFLAG = -std=c++11
+
+CFLAGS = ${COMPILE_FLAG} ${PROFILE_FLAG} ${INCLUDES}
+FFLAGS = ${COMPILE_FLAG} ${PROFILE_FLAG} ${INCLUDES}
+CXXFLAGS = ${COMPILE_FLAG} ${CPPFLAG} ${PROFILE_FLAG} ${INCLUDES}
+CCDEFS = ${COMPILE_DEF}
+CPPDEFS = ${COMPILE_DEF}
+LOADOPTS = ${PROFILE_FLAG} ${LIBS}
+FLOADOPTS = ${PROFILE_FLAG} ${LIBS} ${CPP_LIB}
+
+# Generate auto-dependencies
+%.d: %.c
+ @set -e; rm -f $@; \
+ $(CC) -M $(CCDEFS) $(CFLAGS) $< > $@.$$$$; \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@;\
+ rm -f $@.$$$$
+
+%.d: %.cpp
+ @set -e; rm -f $@; \
+ $(CXX) -M $(CPPDEFS) $(CXXFLAGS) $< > $@.$$$$; \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@;\
+ rm -f $@.$$$$
diff --git a/var/spack/repos/builtin/packages/pexsi/package.py b/var/spack/repos/builtin/packages/pexsi/package.py
new file mode 100644
index 0000000000..9fc71d4c52
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pexsi/package.py
@@ -0,0 +1,103 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import inspect
+import os.path
+import shutil
+
+from spack import *
+
+
+class Pexsi(Package):
+ """The PEXSI library is written in C++, and uses message passing interface
+ (MPI) to parallelize the computation on distributed memory computing
+ systems and achieve scalability on more than 10,000 processors.
+
+ The Pole EXpansion and Selected Inversion (PEXSI) method is a fast
+ method for electronic structure calculation based on Kohn-Sham density
+ functional theory. It efficiently evaluates certain selected elements
+ of matrix functions, e.g., the Fermi-Dirac function of the KS Hamiltonian,
+ which yields a density matrix. It can be used as an alternative to
+ diagonalization methods for obtaining the density, energy and forces
+ in electronic structure calculations.
+ """
+ homepage = 'https://math.berkeley.edu/~linlin/pexsi/index.html'
+ url = 'https://math.berkeley.edu/~linlin/pexsi/download/pexsi_v0.9.0.tar.gz'
+
+ version('0.9.0', '0c1a2de891ba1445dfc184b2fa270ed8')
+
+ depends_on('parmetis')
+ depends_on('superlu-dist@3.3', when='@0.9.0')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+
+ substitutions = {
+ '@MPICC': self.spec['mpi'].mpicc,
+ '@MPICXX': self.spec['mpi'].mpicxx,
+ '@MPIFC': self.spec['mpi'].mpifc,
+ '@MPICXX_LIB': ' '.join(self.spec['mpi'].mpicxx_shared_libs),
+ '@RANLIB': 'ranlib',
+ '@PEXSI_STAGE': self.stage.source_path,
+ '@SUPERLU_PREFIX': self.spec['superlu-dist'].prefix,
+ '@METIS_PREFIX': self.spec['metis'].prefix,
+ '@PARMETIS_PREFIX': self.spec['parmetis'].prefix,
+ '@LAPACK_PREFIX': self.spec['lapack'].prefix,
+ '@BLAS_PREFIX': self.spec['blas'].prefix,
+ '@LAPACK_LIBS': self.spec['lapack'].lapack_libs.joined(),
+ '@BLAS_LIBS': self.spec['lapack'].blas_libs.joined(),
+ '@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs)
+ }
+
+ template = join_path(
+ os.path.dirname(inspect.getmodule(self).__file__),
+ 'make.inc'
+ )
+ makefile = join_path(
+ self.stage.source_path,
+ 'make.inc'
+ )
+ shutil.copy(template, makefile)
+ for key, value in substitutions.items():
+ filter_file(key, value, makefile)
+
+ make()
+ # 'make install' does not exist, despite what documentation says
+ mkdirp(self.prefix.lib)
+ install(
+ join_path(self.stage.source_path, 'src', 'libpexsi_linux.a'),
+ join_path(self.prefix.lib, 'libpexsi.a')
+ )
+ install_tree(
+ join_path(self.stage.source_path, 'include'),
+ self.prefix.include
+ )
+ # fortran "interface"
+ make('-C', 'fortran')
+ install_tree(
+ join_path(self.stage.source_path, 'fortran'),
+ join_path(self.prefix, 'fortran')
+ )
diff --git a/var/spack/repos/builtin/packages/pfft/package.py b/var/spack/repos/builtin/packages/pfft/package.py
new file mode 100644
index 0000000000..575f0af3c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pfft/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pfft(AutotoolsPackage):
+ """PFFT is a software library for computing massively parallel,
+ fast Fourier transformations on distributed memory architectures.
+ PFFT can be understood as a generalization of FFTW-MPI to
+ multidimensional data decomposition."""
+
+ homepage = "https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en"
+ url = "https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software/pfft-1.0.8-alpha.tar.gz"
+
+ version('1.0.8-alpha', '46457fbe8e38d02ff87d439b63dc0709')
+
+ depends_on('fftw+mpi+pfft_patches')
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+ options = ['--prefix={0}'.format(prefix)]
+ if not self.compiler.f77 or not self.compiler.fc:
+ options.append("--disable-fortran")
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
+
+ if '+float' in spec['fftw']:
+ configure('--enable-float', *options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
+ if '+long_double' in spec['fftw']:
+ configure('--enable-long-double', *options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/pflotran/package.py b/var/spack/repos/builtin/packages/pflotran/package.py
new file mode 100644
index 0000000000..347f792453
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pflotran/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Pflotran(AutotoolsPackage):
+ """PFLOTRAN is an open source, state-of-the-art massively parallel
+ subsurface flow and reactive transport code.
+ """
+
+ homepage = "http://www.pflotran.org"
+
+ version('develop', hg='https://bitbucket.org/pflotran/pflotran-xsdk')
+ version('0.1.0', hg='https://bitbucket.org/pflotran/pflotran-xsdk',
+ commmit='4734cf5e606b')
+
+ depends_on('mpi')
+ depends_on('hdf5@1.8.12+mpi+fortran')
+ depends_on('petsc@develop+hdf5+metis',when='@develop')
+ depends_on('petsc@for-pflotran-0.1.0+hdf5+metis',when='@0.1.0')
+
+ parallel = False
diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py
index 7170c65303..e8a2f53497 100644
--- a/var/spack/repos/builtin/packages/pgi/package.py
+++ b/var/spack/repos/builtin/packages/pgi/package.py
@@ -36,12 +36,13 @@ class Pgi(Package):
architecture) to the format: pgi-<version>.tar.gz. Spack will search your
current directory for a file of this format. Alternatively, add this
file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://software.llnl.gov/spack/mirrors.html"""
+ set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://www.pgroup.com/"
- url = "file://%s/pgi-16.3.tar.gz" % os.getcwd()
+ version('16.5', 'a40e8852071b5d600cb42f31631b3de1')
version('16.3', '618cb7ddbc57d4e4ed1f21a0ab25f427')
+ version('15.7', '84a689217b17cdaf78c39270c70bea5d')
variant('network', default=True,
description="Perform a network install")
@@ -63,6 +64,10 @@ class Pgi(Package):
license_vars = ['PGROUPD_LICENSE_FILE', 'LM_LICENSE_FILE']
license_url = 'http://www.pgroup.com/doc/pgiinstall.pdf'
+ def url_for_version(self, version):
+ return "file://{0}/pgilinux-20{1}-{2}-x86_64.tar.gz".format(
+ os.getcwd(), version.up_to(1), version.joined)
+
def install(self, spec, prefix):
# Enable the silent installation feature
os.environ['PGI_SILENT'] = "true"
diff --git a/var/spack/repos/builtin/packages/pidx/package.py b/var/spack/repos/builtin/packages/pidx/package.py
index d38dcd7b96..e19bb9e470 100644
--- a/var/spack/repos/builtin/packages/pidx/package.py
+++ b/var/spack/repos/builtin/packages/pidx/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Pidx(Package):
"""PIDX Parallel I/O Library.
@@ -36,6 +37,7 @@ class Pidx(Package):
version('1.0', git='https://github.com/sci-visus/PIDX.git',
commit='6afa1cf71d1c41263296dc049c8fabaf73c296da')
+ depends_on('cmake', type='build')
depends_on("mpi")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py
new file mode 100644
index 0000000000..dbf949f000
--- /dev/null
+++ b/var/spack/repos/builtin/packages/piranha/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Piranha(Package):
+ """Piranha is a computer-algebra library for the symbolic manipulation of
+ sparse multivariate polynomials and other closely-related symbolic objects
+ (such as Poisson series)."""
+
+ homepage = "https://bluescarni.github.io/piranha/sphinx/"
+ url = "https://github.com/bluescarni/piranha/archive/v0.5.tar.gz"
+
+ version('0.5', '99546bae2be115737b6316751eb0b84d')
+ version('develop', git='https://github.com/bluescarni/piranha.git')
+
+ variant('python', default=True,
+ description='Build the Python bindings')
+
+ # Build dependencies
+ depends_on('cmake@3.0:', type='build')
+ extends('python', when='+pyranha')
+ depends_on('python@2.6:', type='build', when='+pyranha')
+
+ # Other dependencies
+ depends_on('boost+iostreams+regex+serialization',
+ when='~python')
+ depends_on('boost+iostreams+regex+serialization+python',
+ when='+python')
+ depends_on('bzip2')
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ # Python bindings
+ options.extend([
+ '-DBUILD_PYRANHA=%s' % (
+ 'ON' if '+python' in spec else 'OFF'),
+ '-DBUILD_TESTS:BOOL=ON',
+ ])
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+
+ make()
+ make('install')
+ if self.run_tests:
+ make('test')
diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py
index 34d8dfea0d..c780fd64aa 100644
--- a/var/spack/repos/builtin/packages/pixman/package.py
+++ b/var/spack/repos/builtin/packages/pixman/package.py
@@ -23,20 +23,32 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
+
class Pixman(Package):
"""The Pixman package contains a library that provides low-level
- pixel manipulation features such as image compositing and
- trapezoid rasterization."""
+ pixel manipulation features such as image compositing and
+ trapezoid rasterization."""
+
homepage = "http://www.pixman.org"
url = "http://cairographics.org/releases/pixman-0.32.6.tar.gz"
+ version('0.34.0', 'e80ebae4da01e77f68744319f01d52a3')
version('0.32.6', '3a30859719a41bd0f5cccffbfefdd4c2')
- depends_on("libpng")
+ depends_on('pkg-config', type='build')
+ depends_on('libpng')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--disable-gtk")
+ config_args = ["--prefix=" + prefix,
+ "--disable-gtk"]
+
+ if sys.platform == "darwin":
+ config_args.append("--disable-mmx")
+
+ configure(*config_args)
+
make()
- make("install")
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/pkg-config/g_date_strftime.patch b/var/spack/repos/builtin/packages/pkg-config/g_date_strftime.patch
new file mode 100644
index 0000000000..9538f23875
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pkg-config/g_date_strftime.patch
@@ -0,0 +1,34 @@
+From 00148329967adb196138372771052a3f606a6ea3 Mon Sep 17 00:00:00 2001
+From: coypu <coypu@sdf.org>
+Date: Wed, 2 Mar 2016 19:43:10 +0200
+Subject: [PATCH 2/2] gdate: Suppress string format literal warning
+
+Newer versions of GCC emit an error here, but we know it's safe.
+https://bugzilla.gnome.org/761550
+---
+ glib/glib/gdate.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/glib/glib/gdate.c b/glib/glib/gdate.c
+index 4aece02..92c34d2 100644
+--- a/glib/glib/gdate.c
++++ b/glib/glib/gdate.c
+@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
+ *
+ * Returns: number of characters written to the buffer, or 0 the buffer was too small
+ */
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
++
+ gsize
+ g_date_strftime (gchar *s,
+ gsize slen,
+@@ -2549,3 +2552,5 @@ g_date_strftime (gchar *s,
+ return retval;
+ #endif
+ }
++
++#pragma GCC diagnostic pop
+--
+2.7.1
+
diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py
index ddbc151767..a98f65fb07 100644
--- a/var/spack/repos/builtin/packages/pkg-config/package.py
+++ b/var/spack/repos/builtin/packages/pkg-config/package.py
@@ -24,23 +24,33 @@
##############################################################################
from spack import *
+
class PkgConfig(Package):
- """pkg-config is a helper tool used when compiling applications and libraries"""
+ """pkg-config is a helper tool used when compiling applications
+ and libraries"""
+
homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/"
- url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
+ url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz"
- version('0.28', 'aa3c86e67551adc3ac865160e34a2a0d')
+ version('0.29.1', 'f739a28cae4e0ca291f82d1d41ef107d')
+ version('0.28', 'aa3c86e67551adc3ac865160e34a2a0d')
parallel = False
+ variant('internal_glib', default=True,
+ description='Builds with internal glib')
+
+ # The following patch is needed for gcc-6.1
+ patch('g_date_strftime.patch')
def install(self, spec, prefix):
- configure("--prefix=%s" %prefix,
- "--enable-shared",
- "--with-internal-glib") # There's a bootstrapping problem here;
- # glib uses pkg-config as well, so
- # break the cycle by using the internal
- # glib.
+ args = ["--prefix={0}".format(prefix),
+ "--enable-shared"]
+ if "+internal_glib" in spec:
+ # There's a bootstrapping problem here;
+ # glib uses pkg-config as well, so break
+ # the cycle by using the internal glib.
+ args.append("--with-internal-glib")
+ configure(*args)
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py
new file mode 100644
index 0000000000..60dfdf7405
--- /dev/null
+++ b/var/spack/repos/builtin/packages/plumed/package.py
@@ -0,0 +1,158 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import subprocess
+
+from spack import *
+
+
+class Plumed(Package):
+ """PLUMED is an open source library for free energy calculations in
+ molecular systems which works together with some of the most popular
+ molecular dynamics engines.
+
+ Free energy calculations can be performed as a function of many order
+ parameters with a particular focus on biological problems, using state
+ of the art methods such as metadynamics, umbrella sampling and
+ Jarzynski-equation based steered MD.
+
+ The software, written in C++, can be easily interfaced with both fortran
+ and C/C++ codes.
+ """
+ homepage = 'http://www.plumed.org/'
+ url = 'https://github.com/plumed/plumed2/archive/v2.2.3.tar.gz'
+
+ version('2.2.3', 'a6e3863e40aac07eb8cf739cbd14ecf8')
+
+ # Variants. PLUMED by default builds a number of optional modules.
+ # The ones listed here are not built by default for various reasons,
+ # such as stability, lack of testing, or lack of demand.
+ variant('crystallization', default=False,
+ description='Build support for optional crystallization module.')
+ variant('imd', default=False,
+ description='Build support for optional imd module.')
+ variant('manyrestraints', default=False,
+ description='Build support for optional manyrestraints module.')
+ variant('shared', default=True, description='Builds shared libraries')
+ variant('mpi', default=True, description='Activates MPI support')
+ variant('gsl', default=True, description='Activates GSL support')
+
+ # Dependencies. LAPACK and BLAS are recommended but not essential.
+ depends_on('zlib')
+ depends_on('blas')
+ depends_on('lapack')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('gsl', when='+gsl')
+
+ depends_on('autoconf', type='build')
+
+ # Dictionary mapping PLUMED versions to the patches it provides
+ # interactively
+ plumed_patches = {
+ '2.2.3': {
+ 'amber-14': '1',
+ 'gromacs-4.5.7': '2',
+ 'gromacs-4.6.7': '3',
+ 'gromacs-5.0.7': '4',
+ 'gromacs-5.1.2': '5',
+ 'lammps-6Apr13': '6',
+ 'namd-2.8': '7',
+ 'namd-2.9': '8',
+ 'espresso-5.0.2': '9'
+ }
+ }
+
+ def apply_patch(self, other):
+ plumed = subprocess.Popen(
+ [join_path(self.spec.prefix.bin, 'plumed'), 'patch', '-p'],
+ stdin=subprocess.PIPE
+ )
+ opts = Plumed.plumed_patches[str(self.version)]
+ search = '{0.name}-{0.version}'.format(other)
+ choice = opts[search] + '\n'
+ plumed.stdin.write(choice)
+ plumed.wait()
+
+ def setup_dependent_package(self, module, ext_spec):
+ # Make plumed visible from dependent packages
+ module.plumed = Executable(join_path(self.spec.prefix.bin, 'plumed'))
+
+ def install(self, spec, prefix):
+ # This part is needed to avoid linking with gsl cblas
+ # interface which will mask the cblas interface
+ # provided by optimized libraries due to linking order
+ filter_file('-lgslcblas', '', 'configure.ac')
+ autoreconf('-ivf')
+
+ # From plumed docs :
+ # Also consider that this is different with respect to what some other
+ # configure script does in that variables such as MPICXX are
+ # completely ignored here. In case you work on a machine where CXX is
+ # set to a serial compiler and MPICXX to a MPI compiler, to compile
+ # with MPI you should use:
+ #
+ # > ./configure CXX="$MPICXX"
+ configure_opts = ['--prefix=' + prefix]
+
+ # If using MPI then ensure the correct compiler wrapper is used.
+ if '+mpi' in spec:
+ configure_opts.extend([
+ '--enable-mpi',
+ 'CXX={0}'.format(spec['mpi'].mpicxx)
+ ])
+
+ # If the MPI dependency is provided by the intel-mpi package then
+ # the following additional argument is required to allow it to
+ # build.
+ if spec.satisfies('^intel-mpi'):
+ configure_opts.extend([
+ 'STATIC_LIBS=-mt_mpi'
+ ])
+
+ # Additional arguments
+ configure_opts.extend([
+ '--enable-shared={0}'.format('yes' if '+shared' in spec else 'no'),
+ '--enable-gsl={0}'.format('yes' if '+gsl' in spec else 'no')
+ ])
+
+ # Construct list of optional modules
+ module_opts = []
+ module_opts.extend([
+ '+crystallization' if (
+ '+crystallization' in spec) else '-crystallization',
+ '+imd' if '+imd' in spec else '-imd',
+ '+manyrestraints' if (
+ '+manyrestraints' in spec) else '-manyrestraints'
+ ])
+
+ # If we have specified any optional modules then add the argument to
+ # enable or disable them.
+ if module_opts:
+ configure_opts.extend([
+ '--enable-modules={0}'.format("".join(module_opts))])
+
+ configure(*configure_opts)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/pmgr_collective/package.py b/var/spack/repos/builtin/packages/pmgr-collective/package.py
index a6e3b8e2a2..f6466a7954 100644
--- a/var/spack/repos/builtin/packages/pmgr_collective/package.py
+++ b/var/spack/repos/builtin/packages/pmgr-collective/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class PmgrCollective(Package):
"""PMGR_COLLECTIVE provides a scalable network for bootstrapping
MPI jobs."""
diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py
new file mode 100644
index 0000000000..4c0370a7ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pngwriter/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pngwriter(Package):
+ """PNGwriter is a very easy to use open source graphics library that uses
+ PNG as its output format. The interface has been designed to be as simple
+ and intuitive as possible. It supports plotting and reading pixels in the
+ RGB (red, green, blue), HSV (hue, saturation, value/brightness) and CMYK
+ (cyan, magenta, yellow, black) colour spaces, basic shapes, scaling,
+ bilinear interpolation, full TrueType antialiased and rotated text support,
+ bezier curves, opening existing PNG images and more.
+ """
+
+ homepage = "http://pngwriter.sourceforge.net/"
+ url = "https://github.com/pngwriter/pngwriter/archive/0.5.6.tar.gz"
+
+ version('dev', branch='dev',
+ git='https://github.com/pngwriter/pngwriter.git')
+ version('master', branch='master',
+ git='https://github.com/pngwriter/pngwriter.git')
+ version('0.5.6', 'c13bd1fdc0e331a246e6127b5f262136')
+
+ depends_on('cmake', type='build')
+ depends_on('libpng')
+ depends_on('zlib')
+ depends_on('freetype')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('-DCMAKE_INSTALL_PREFIX=%s' % prefix,
+ '..', *std_cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/polymake/package.py b/var/spack/repos/builtin/packages/polymake/package.py
new file mode 100644
index 0000000000..c0bb9082ae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/polymake/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Polymake(Package):
+ """polymake is open source software for research in polyhedral geometry"""
+ homepage = "https://polymake.org/doku.php"
+ url = "https://polymake.org/lib/exe/fetch.php/download/polymake-3.0r1.tar.bz2"
+
+ version('3.0r2', '08584547589f052ea50e2148109202ab')
+ version('3.0r1', '63ecbecf9697c6826724d8a041d2cac0')
+
+ # Note: Could also be built with nauty instead of bliss
+
+ depends_on("bliss")
+ depends_on("boost")
+ depends_on("cddlib")
+ depends_on("gmp")
+ depends_on("lrslib")
+ depends_on("mpfr")
+ depends_on("ppl")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "--with-bliss=%s" % spec["bliss"].prefix,
+ "--with-boost=%s" % spec["boost"].prefix,
+ "--with-cdd=%s" % spec["cddlib"].prefix,
+ "--with-gmp=%s" % spec["gmp"].prefix,
+ "--with-lrs=%s" % spec["lrslib"].prefix,
+ "--with-mpfr=%s" % spec["mpfr"].prefix,
+ "--with-ppl=%s" % spec["ppl"].prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/porta/Makefile.spack.patch b/var/spack/repos/builtin/packages/porta/Makefile.spack.patch
new file mode 100644
index 0000000000..1cd8fcc3c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/porta/Makefile.spack.patch
@@ -0,0 +1,23 @@
+--- old/src/Makefile.spack
++++ new/src/Makefile.spack
+@@ -0,0 +1,20 @@
++# Set PREFIX to the install location for both building and installing
++
++all: valid xporta
++
++valid: common.lo arith.lo inout.lo log.lo valid.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++
++xporta: common.lo arith.lo inout.lo log.lo \
++ porta.lo four_mot.lo portsort.lo largecalc.lo mp.lo
++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^
++
++%.lo: %.c
++ libtool --mode=compile --tag=CC cc -g -O3 -c $*.c
++
++install:
++ mkdir -p $(PREFIX)/bin
++ libtool --mode=install cp valid $(PREFIX)/bin/valid
++ libtool --mode=install cp xporta $(PREFIX)/bin/xporta
++
++.PHONY: all install
diff --git a/var/spack/repos/builtin/packages/porta/package.py b/var/spack/repos/builtin/packages/porta/package.py
new file mode 100644
index 0000000000..b620daf78f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/porta/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Porta(Package):
+ """PORTA is a collection of routines for analyzing polytopes and
+ polyhedra"""
+ homepage = "http://porta.zib.de"
+ url = "http://porta.zib.de/porta-1.4.1.tgz"
+
+ version('1.4.1', '585179bf19d214ed364663a5d17bd5fc')
+
+ depends_on("libtool", type="build")
+
+ patch("Makefile.spack.patch")
+
+ def install(self, spec, prefix):
+ with working_dir("src"):
+ make("-f", "Makefile.spack", "PREFIX=%s" % prefix)
+ make("-f", "Makefile.spack", "PREFIX=%s" % prefix, "install")
diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py
index 9362234881..caf3768362 100644
--- a/var/spack/repos/builtin/packages/postgresql/package.py
+++ b/var/spack/repos/builtin/packages/postgresql/package.py
@@ -24,18 +24,21 @@
##############################################################################
from spack import *
+
class Postgresql(Package):
- """PostgreSQL is a powerful, open source object-relational
- database system. It has more than 15 years of active
- development and a proven architecture that has earned it a
- strong reputation for reliability, data integrity, and
- correctness."""
+ """PostgreSQL is a powerful, open source object-relational database system.
+ It has more than 15 years of active development and a proven architecture
+ that has earned it a strong reputation for reliability, data integrity, and
+ correctness."""
+
homepage = "http://www.postgresql.org/"
url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2"
version('9.3.4', 'd0a41f54c377b2d2fab4a003b0dac762')
+ version('9.5.3', '3f0c388566c688c82b01a0edf1e6b7a0')
- depends_on("openssl")
+ depends_on('openssl')
+ depends_on('readline')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
diff --git a/var/spack/repos/builtin/packages/ppl/package.py b/var/spack/repos/builtin/packages/ppl/package.py
index a54c6ce221..73404103f0 100644
--- a/var/spack/repos/builtin/packages/ppl/package.py
+++ b/var/spack/repos/builtin/packages/ppl/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Ppl(Package):
"""The Parma Polyhedra Library (PPL) provides numerical
abstractions especially targeted at applications in the field of
diff --git a/var/spack/repos/builtin/packages/prank/package.py b/var/spack/repos/builtin/packages/prank/package.py
new file mode 100644
index 0000000000..d627e8a0b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/prank/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Prank(Package):
+ """A powerful multiple sequence alignment browser."""
+
+ homepage = "http://wasabiapp.org/software/prank/"
+ url = "http://wasabiapp.org/download/prank/prank.source.140603.tgz"
+
+ version('150803', '71ac2659e91c385c96473712c0a23e8a')
+
+ depends_on('mafft')
+ depends_on('exonerate')
+ depends_on('bpp-suite') # for bppancestor
+
+ def install(self, spec, prefix):
+ with working_dir('src'):
+ make()
+ mkdirp(prefix.bin)
+ install('prank', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/presentproto/package.py b/var/spack/repos/builtin/packages/presentproto/package.py
new file mode 100644
index 0000000000..ca145abb6b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/presentproto/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Presentproto(Package):
+ """Present protocol specification and Xlib/Xserver headers."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/presentproto/"
+ url = "https://www.x.org/archive/individual/proto/presentproto-1.0.tar.gz"
+
+ version('1.0', '57eaf4bb58e86476ec89cfb42d675961')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/printproto/package.py b/var/spack/repos/builtin/packages/printproto/package.py
new file mode 100644
index 0000000000..151924dd49
--- /dev/null
+++ b/var/spack/repos/builtin/packages/printproto/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Printproto(Package):
+ """Xprint extension to the X11 protocol - a portable, network-transparent
+ printing system."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/printproto"
+ url = "https://www.x.org/archive/individual/proto/printproto-1.0.5.tar.gz"
+
+ version('1.0.5', '5afeb3a7de8a14b417239a14ea724268')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/proj/package.py b/var/spack/repos/builtin/packages/proj/package.py
index 20dd4f5f69..06ab6108b6 100644
--- a/var/spack/repos/builtin/packages/proj/package.py
+++ b/var/spack/repos/builtin/packages/proj/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Proj(Package):
"""Cartographic Projections"""
homepage = "https://github.com/OSGeo/proj.4/wiki"
diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py
index d4befc34ab..bf0073b16a 100644
--- a/var/spack/repos/builtin/packages/protobuf/package.py
+++ b/var/spack/repos/builtin/packages/protobuf/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Protobuf(Package):
"""Google's data interchange format."""
diff --git a/var/spack/repos/builtin/packages/proxymngr/package.py b/var/spack/repos/builtin/packages/proxymngr/package.py
new file mode 100644
index 0000000000..896f4a516b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/proxymngr/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Proxymngr(Package):
+ """The proxy manager (proxymngr) is responsible for resolving requests from
+ xfindproxy (and other similar clients), starting new proxies when
+ appropriate, and keeping track of all of the available proxy services.
+ The proxy manager strives to reuse existing proxies whenever possible."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/proxymngr"
+ url = "https://www.x.org/archive/individual/app/proxymngr-1.0.4.tar.gz"
+
+ version('1.0.4', 'a165cf704f6a413f0bacf65ea470331f')
+
+ depends_on('libice')
+ depends_on('libxt')
+ depends_on('lbxproxy')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproxymanagementprotocol', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py
new file mode 100644
index 0000000000..4248c24646
--- /dev/null
+++ b/var/spack/repos/builtin/packages/psi4/package.py
@@ -0,0 +1,124 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Psi4(Package):
+ """Psi4 is an open-source suite of ab initio quantum chemistry
+ programs designed for efficient, high-accuracy simulations of
+ a variety of molecular properties."""
+
+ homepage = "http://www.psicode.org/"
+ url = "https://github.com/psi4/psi4/archive/0.5.tar.gz"
+
+ version('0.5', '53041b8a9be3958384171d0d22f9fdd0')
+
+ # Required dependencies
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('boost'
+ '+chrono'
+ '+filesystem'
+ '+python'
+ '+regex'
+ '+serialization'
+ '+system'
+ '+timer'
+ '+thread')
+ depends_on('python')
+ depends_on('cmake', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+
+ # Optional dependencies
+ # TODO: add packages for these
+ # depends_on('perl')
+ # depends_on('erd')
+ # depends_on('pcm-solver')
+ # depends_on('chemps2')
+
+ def install(self, spec, prefix):
+ cmake_args = [
+ '-DBLAS_TYPE={0}'.format(spec['blas'].name.upper()),
+ '-DBLAS_LIBRARIES={0}'.format(spec['blas'].blas_libs.joined()),
+ '-DLAPACK_TYPE={0}'.format(spec['lapack'].name.upper()),
+ '-DLAPACK_LIBRARIES={0}'.format(
+ spec['lapack'].lapack_libs.joined()),
+ '-DBOOST_INCLUDEDIR={0}'.format(spec['boost'].prefix.include),
+ '-DBOOST_LIBRARYDIR={0}'.format(spec['boost'].prefix.lib),
+ '-DENABLE_CHEMPS2=OFF'
+ ]
+
+ cmake_args.extend(std_cmake_args)
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *cmake_args)
+
+ make()
+ make('install')
+
+ self.filter_compilers(spec, prefix)
+
+ def filter_compilers(self, spec, prefix):
+ """Run after install to tell the configuration files to
+ use the compilers that Spack built the package with.
+
+ If this isn't done, they'll have PLUGIN_CXX set to
+ Spack's generic cxx. We want it to be bound to
+ whatever compiler it was built with."""
+
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+
+ cc_files = ['bin/psi4-config']
+ cxx_files = ['bin/psi4-config', 'include/psi4/psiconfig.h']
+ template = 'share/psi4/plugin/Makefile.template'
+
+ for filename in cc_files:
+ filter_file(os.environ['CC'], self.compiler.cc,
+ os.path.join(prefix, filename), **kwargs)
+
+ for filename in cxx_files:
+ filter_file(os.environ['CXX'], self.compiler.cxx,
+ os.path.join(prefix, filename), **kwargs)
+
+ # The binary still keeps track of the compiler used to install Psi4
+ # and uses it when creating a plugin template
+ filter_file('@PLUGIN_CXX@', self.compiler.cxx,
+ os.path.join(prefix, template), **kwargs)
+
+ # The binary links to the build include directory instead of the
+ # installation include directory:
+ # https://github.com/psi4/psi4/issues/410
+ filter_file('@PLUGIN_INCLUDES@', '-I{0}'.format(
+ ' -I'.join([
+ os.path.join(spec['psi4'].prefix.include, 'psi4'),
+ os.path.join(spec['boost'].prefix.include, 'boost'),
+ os.path.join(spec['python'].prefix.include, 'python{0}'.format(
+ spec['python'].version.up_to(2))),
+ spec['lapack'].prefix.include,
+ spec['blas'].prefix.include,
+ '/usr/include'
+ ])
+ ), os.path.join(prefix, template), **kwargs)
diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py
new file mode 100644
index 0000000000..80b95fcbfd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-3to2/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Py3to2(PythonPackage):
+ """lib3to2 is a set of fixers that are intended to backport code written
+ for Python version 3.x into Python version 2.x."""
+
+ homepage = "https://pypi.python.org/pypi/3to2"
+ url = "https://pypi.python.org/packages/source/3/3to2/3to2-1.1.1.zip"
+
+ version('1.1.1', 'cbeed28e350dbdaef86111ace3052824')
diff --git a/var/spack/repos/builtin/packages/py-alabaster/package.py b/var/spack/repos/builtin/packages/py-alabaster/package.py
new file mode 100644
index 0000000000..f2402c9bc6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-alabaster/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyAlabaster(PythonPackage):
+ """Alabaster is a visually (c)lean, responsive, configurable theme
+ for the Sphinx documentation system."""
+
+ homepage = "https://pypi.python.org/pypi/alabaster"
+ url = "https://pypi.python.org/packages/source/a/alabaster/alabaster-0.7.9.tar.gz"
+
+ version('0.7.9', 'b29646a8bbe7aa52830375b7d17b5d7a',
+ url="https://pypi.python.org/packages/71/c3/70da7d8ac18a4f4c502887bd2549e05745fa403e2cd9d06a8a9910a762bc/alabaster-0.7.9.tar.gz")
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py
index ace9320424..585540f23b 100644
--- a/var/spack/repos/builtin/packages/py-argcomplete/package.py
+++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyArgcomplete(Package):
+
+class PyArgcomplete(PythonPackage):
"""Bash tab completion for argparse."""
homepage = "https://pypi.python.org/pypi/argcomplete"
@@ -32,7 +33,4 @@ class PyArgcomplete(Package):
version('1.1.1', '89a3839096c9f991ad33828e72d21abf')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py
index 8ba6696b0c..f275813d86 100644
--- a/var/spack/repos/builtin/packages/py-astroid/package.py
+++ b/var/spack/repos/builtin/packages/py-astroid/package.py
@@ -22,11 +22,10 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyAstroid(Package):
+class PyAstroid(PythonPackage):
homepage = "https://www.astroid.org/"
url = "https://github.com/PyCQA/astroid/archive/astroid-1.4.5.tar.gz"
@@ -36,11 +35,6 @@ class PyAstroid(Package):
version('1.4.2', '677f7965840f375af51b0e86403bee6a')
version('1.4.1', 'ed70bfed5e4b25be4292e7fe72da2c02')
- extends('python')
- depends_on('py-logilab-common')
- depends_on('py-setuptools')
- depends_on('py-six')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ depends_on('py-logilab-common', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py
index 86875bbcae..8688e0ee7e 100644
--- a/var/spack/repos/builtin/packages/py-astropy/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy/package.py
@@ -24,29 +24,35 @@
##############################################################################
from spack import *
-class PyAstropy(Package):
- """
- The Astropy Project is a community effort to develop a single core
+
+class PyAstropy(PythonPackage):
+ """The Astropy Project is a community effort to develop a single core
package for Astronomy in Python and foster interoperability between
- Python astronomy packages.
- """
+ Python astronomy packages."""
+
homepage = 'http://www.astropy.org/'
+ url = 'https://pypi.python.org/packages/source/a/astropy/astropy-1.1.2.tar.gz'
+ version('1.1.2', 'cbe32023b5b1177d1e2498a0d00cda51')
version('1.1.post1', 'b52919f657a37d45cc45f5cb0f58c44d')
- def url_for_version(self, version):
- return 'https://pypi.python.org/packages/source/a/astropy/astropy-{0}.tar.gz'.format(version)
+ # Required dependencies
+ depends_on('py-numpy', type=('build', 'run'))
- extends('python')
+ # Optional dependencies
+ depends_on('py-h5py', type=('build', 'run'))
+ depends_on('py-beautifulsoup4', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('libxml2')
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-pytz', type=('build', 'run'))
+ depends_on('py-scikit-image', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ # System dependencies
depends_on('cfitsio')
depends_on('expat')
- depends_on('py-h5py')
- depends_on('py-numpy')
- depends_on('py-scipy')
-
- def install(self, spec, prefix):
- python('setup.py', 'build', '--use-system-cfitsio',
- '--use-system-expat')
- python('setup.py', 'install', '--prefix=' + prefix)
+ def build_args(self, spec, prefix):
+ return ['--use-system-cfitsio', '--use-system-expat']
diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py
new file mode 100644
index 0000000000..c892e2979c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-autopep8/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyAutopep8(PythonPackage):
+ """autopep8 automatically formats Python code to conform to the
+ PEP 8 style guide."""
+
+ homepage = "https://github.com/hhatto/autopep8"
+ url = "https://github.com/hhatto/autopep8/archive/v1.2.4.tar.gz"
+
+ version('1.2.4', '0458db85159a9e1b45f3e71ce6c158da')
+ version('1.2.2', 'def3d023fc9dfd1b7113602e965ad8e1')
+
+ extends('python', ignore='bin/pep8')
+ depends_on('python@2.6:2.7,3.2:')
+
+ depends_on('py-pycodestyle@1.5.7:1.7.0', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+
+ def url_for_version(self, version):
+ url = "https://github.com/hhatto/autopep8/archive/{0}{1}.tar.gz"
+ if version >= Version('1.2.3'):
+ return url.format('v', version)
+ else:
+ return url.format('ver', version)
diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py
new file mode 100644
index 0000000000..844ceab34e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-babel/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBabel(PythonPackage):
+ """Babel is an integrated collection of utilities that assist in
+ internationalizing and localizing Python applications, with an
+ emphasis on web-based applications."""
+
+ homepage = "http://babel.pocoo.org/en/latest/"
+ url = "https://pypi.python.org/packages/source/B/Babel/Babel-2.3.4.tar.gz"
+
+ version('2.3.4', 'afa20bc55b0e991833030129ad498f35',
+ url="https://pypi.python.org/packages/6e/96/ba2a2462ed25ca0e651fb7b66e7080f5315f91425a07ea5b34d7c870c114/Babel-2.3.4.tar.gz")
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytz', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-backports-abc/package.py b/var/spack/repos/builtin/packages/py-backports-abc/package.py
new file mode 100644
index 0000000000..7d062bff6a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-backports-abc/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBackportsAbc(PythonPackage):
+ """Backports_ABC: A backport of recent additions to the 'collections.abc'
+ module."""
+ homepage = "https://github.com/cython/backports_abc"
+ url = "https://github.com/cython/backports_abc/archive/0.4.tar.gz"
+
+ version('0.4', 'e4246ae689221c9cbe84369fdb59e8c74d02b298')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py b/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py
new file mode 100644
index 0000000000..5950faa765
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBackportsShutilGetTerminalSize(PythonPackage):
+ """A backport of the get_terminal_size function
+ from Python 3.3's shutil."""
+
+ homepage = "https://pypi.python.org/pypi/backports.shutil_get_terminal_size"
+ url = "https://pypi.io/packages/source/b/backports.shutil_get_terminal_size/backports.shutil_get_terminal_size-1.0.0.tar.gz"
+
+ version('1.0.0', '03267762480bd86b50580dc19dff3c66')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@:3.2.999')
diff --git a/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py b/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py
new file mode 100644
index 0000000000..bf4679556b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBackportsSslMatchHostname(PythonPackage):
+ """The ssl.match_hostname() function from Python 3.5"""
+
+ homepage = "https://pypi.python.org/pypi/backports.ssl_match_hostname"
+ url = "https://pypi.io/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.5.0.1.tar.gz"
+
+ version('3.5.0.1', 'c03fc5e2c7b3da46b81acf5cbacfe1e6')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py
index 95d02bce91..4a35134e40 100644
--- a/var/spack/repos/builtin/packages/py-basemap/package.py
+++ b/var/spack/repos/builtin/packages/py-basemap/package.py
@@ -25,20 +25,97 @@
from spack import *
import os
-class PyBasemap(Package):
- """The matplotlib basemap toolkit is a library for plotting 2D data on maps in Python."""
+
+class PyBasemap(PythonPackage):
+ """The matplotlib basemap toolkit is a library for plotting
+ 2D data on maps in Python."""
+
homepage = "http://matplotlib.org/basemap/"
url = "https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz"
version('1.0.7', '48c0557ced9e2c6e440b28b3caff2de8')
- extends('python')
- depends_on('py-setuptools')
- depends_on('py-numpy')
- depends_on('py-matplotlib+gui')
- depends_on('py-pillow')
- depends_on("geos")
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('pil', type=('build', 'run'))
+ depends_on('geos')
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('GEOS_DIR', self.spec['geos'].prefix)
+
+ @PythonPackage.sanity_check('install')
+ def post_install_patch(self):
+ spec = self.spec
+ # We are not sure if this fix is needed before Python 3.5.2.
+ # If it is needed, this test should be changed.
+ # See: https://github.com/LLNL/spack/pull/1964
+ if spec['python'].version >= Version('3.5.2'):
+ # Use symlinks to join the two mpl_toolkits/ directories into
+ # one, inside of basemap. This is because Basemap tries to
+ # "add to" an existing package in Matplotlib, which is only
+ # legal Python for "Implicit Namespace Packages":
+ # https://www.python.org/dev/peps/pep-0420/
+ # https://github.com/Homebrew/homebrew-python/issues/112
+ # In practice, Python will see only the basemap version of
+ # mpl_toolkits
+ path_m = find_package_dir(
+ spec['py-matplotlib'].prefix, 'mpl_toolkits')
+ path_b = find_package_dir(spec.prefix, 'mpl_toolkits')
+ link_dir(path_m, path_b)
+
+
+def find_package_dir(spack_package_root, name):
+
+ """Finds directory with a specific name, somewhere inside a Spack
+ package.
+
+ spack_package_root:
+ Root directory to start searching
+ oldname:
+ Original name of package (not fully qualified, just the leaf)
+ newname:
+ What to rename it to
+
+ """
+ for root, dirs, files in os.walk(spack_package_root):
+ path = os.path.join(root, name)
+
+ # Make sure it's a directory
+ if not os.path.isdir(path):
+ continue
+
+ # Make sure it's really a package
+ if not os.path.exists(os.path.join(path, '__init__.py')):
+ continue
+
+ return path
+
+ return None
+
+
+def link_dir(src_root, dest_root, link=os.symlink):
+ """Link all files in src_root into directory dest_root"""
+
+ for src_path, dirnames, filenames in os.walk(src_root):
+ if not filenames:
+ continue # avoid explicitly making empty dirs
+
+ # Avoid internal Python stuff
+ src_leaf = os.path.split(src_path)[1]
+ if src_leaf.startswith('__'):
+ continue
+
+ # Make sure the destination directory exists
+ dest_path = os.path.join(dest_root, src_path[len(src_root) + 1:])
+ try:
+ os.makedirs(dest_path)
+ except:
+ pass
- def install(self, spec, prefix):
- env['GEOS_DIR'] = spec['geos'].prefix
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ # Link all files from src to dest directory
+ for fname in filenames:
+ src = os.path.join(src_path, fname)
+ dst = os.path.join(dest_path, fname)
+ if not os.path.exists(dst):
+ link(src, dst)
diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
new file mode 100644
index 0000000000..3a90d02127
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBeautifulsoup4(PythonPackage):
+ """Beautiful Soup is a Python library for pulling data out of HTML and
+ XML files. It works with your favorite parser to provide idiomatic ways
+ of navigating, searching, and modifying the parse tree."""
+
+ homepage = "https://www.crummy.com/software/BeautifulSoup"
+ url = "https://pypi.python.org/packages/source/b/beautifulsoup4/beautifulsoup4-4.4.1.tar.gz"
+
+ version('4.5.1', '994abd90e691beaf7d42c00ffb2f3a67',
+ url='https://www.crummy.com/software/BeautifulSoup/bs4/'
+ 'download/4.5/beautifulsoup4-4.5.1.tar.gz')
+ version('4.4.1', '8fbd9a7cac0704645fa20d1419036815')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py
index 26f42e060b..3411e244f9 100644
--- a/var/spack/repos/builtin/packages/py-biopython/package.py
+++ b/var/spack/repos/builtin/packages/py-biopython/package.py
@@ -24,16 +24,17 @@
##############################################################################
from spack import *
-class PyBiopython(Package):
- """It is a distributed collaborative effort to develop Python libraries and applications which address the needs of current and future work in bioinformatics."""
+
+class PyBiopython(PythonPackage):
+ """A distributed collaborative effort to develop Python libraries and
+ applications which address the needs of current and future work in
+ bioinformatics.
+
+ """
homepage = "http://biopython.org/wiki/Main_Page"
url = "http://biopython.org/DIST/biopython-1.65.tar.gz"
version('1.65', '143e7861ade85c0a8b5e2bbdd1da1f67')
- extends('python')
- depends_on('py-mx')
- depends_on('py-numpy')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-mx', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bleach/package.py b/var/spack/repos/builtin/packages/py-bleach/package.py
new file mode 100644
index 0000000000..4a6d7ed9d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bleach/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBleach(PythonPackage):
+ """An easy whitelist-based HTML-sanitizing tool."""
+
+ homepage = "http://github.com/mozilla/bleach"
+ url = "https://pypi.python.org/packages/99/00/25a8fce4de102bf6e3cc76bc4ea60685b2fee33bde1b34830c70cacc26a7/bleach-1.5.0.tar.gz"
+
+ version('1.5.0', 'b663300efdf421b3b727b19d7be9c7e7')
+
+ depends_on('python@2.6:2.7,3.2:3.5')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-html5lib@0.999,0.999999:0.9999999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py
index 05a1f5bcbb..b38f34b412 100644
--- a/var/spack/repos/builtin/packages/py-blessings/package.py
+++ b/var/spack/repos/builtin/packages/py-blessings/package.py
@@ -24,16 +24,12 @@
##############################################################################
from spack import *
-class PyBlessings(Package):
+
+class PyBlessings(PythonPackage):
"""A nicer, kinder way to write to the terminal """
homepage = "https://github.com/erikrose/blessings"
url = "https://pypi.python.org/packages/source/b/blessings/blessings-1.6.tar.gz"
version('1.6', '4f552a8ebcd4982693c92571beb99394')
- depends_on('py-setuptools')
-
- extends("python")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
index 1a186b219c..a1215ce39e 100644
--- a/var/spack/repos/builtin/packages/py-bottleneck/package.py
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -24,15 +24,12 @@
##############################################################################
from spack import *
-class PyBottleneck(Package):
- """Bottleneck is a collection of fast NumPy array functions written in Cython."""
+
+class PyBottleneck(PythonPackage):
+ """A collection of fast NumPy array functions written in Cython."""
homepage = "https://pypi.python.org/pypi/Bottleneck/1.0.0"
url = "https://pypi.python.org/packages/source/B/Bottleneck/Bottleneck-1.0.0.tar.gz"
version('1.0.0', '380fa6f275bd24f27e7cf0e0d752f5d2')
- extends('python')
- depends_on('py-numpy')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-numpy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cclib/package.py b/var/spack/repos/builtin/packages/py-cclib/package.py
new file mode 100644
index 0000000000..b59376d7b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cclib/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyCclib(PythonPackage):
+ """Open source library for parsing and interpreting the results of
+ computational chemistry packages"""
+
+ homepage = "https://cclib.github.io/"
+
+ version('1.5.post1', '1a50be48e4597b1a6dabe943da82a43c',
+ url="https://github.com/cclib/cclib/releases/download/v1.5/cclib-1.5.post1.tar.gz")
+
+ depends_on('py-numpy@1.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cdo/package.py b/var/spack/repos/builtin/packages/py-cdo/package.py
new file mode 100644
index 0000000000..5eb8f414a8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cdo/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyCdo(PythonPackage):
+ """The cdo package provides an interface to the Climate Data
+ Operators from Python."""
+
+ homepage = "https://pypi.python.org/pypi/cdo"
+ url = "https://pypi.python.org/packages/sources/c/cdo/cdo-1.3.2.tar.gz"
+
+ version('1.3.2', '4b3686ec1b9b891f166c1c466c6db745',
+ url="https://pypi.python.org/packages/d6/13/908e7c1451e1f5fb68405f341cdcb3196a16952ebfe1f172cb788f864aa9/cdo-1.3.2.tar.gz")
+
+ depends_on('cdo')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-netcdf', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-certifi/package.py b/var/spack/repos/builtin/packages/py-certifi/package.py
new file mode 100644
index 0000000000..959c0221ed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-certifi/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyCertifi(PythonPackage):
+ """Certifi: A carefully curated collection of Root Certificates for validating
+ the trustworthiness of SSL certificates while verifying the identity of TLS
+ hosts."""
+ homepage = "https://github.com/certifi/python-certifi"
+ url = "https://github.com/certifi/python-certifi/archive/2016.02.28.tar.gz"
+
+ version('2016.02.28', '5ccfc23bd5e931863f0b01ef3e9d2dbd3bef0e1b')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py
index 58d0a81990..c0fbae639b 100644
--- a/var/spack/repos/builtin/packages/py-cffi/package.py
+++ b/var/spack/repos/builtin/packages/py-cffi/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyCffi(Package):
+
+class PyCffi(PythonPackage):
"""Foreign Function Interface for Python calling C code"""
homepage = "http://cffi.readthedocs.org/en/latest/"
# base https://pypi.python.org/pypi/cffi
@@ -32,10 +33,15 @@ class PyCffi(Package):
version('1.1.2', 'ca6e6c45b45caa87aee9adc7c796eaea')
- extends('python')
- depends_on('py-setuptools')
- depends_on('py-pycparser')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pycparser', type=('build', 'run'))
depends_on('libffi')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ def setup_environment(self, spack_env, run_env):
+ # This sets the compiler (and flags) that distutils will use
+ # to create the final shared library. It will use the
+ # compiler specified by the environment variable 'CC' for all
+ # other compilation. We are setting the 'LDSHARED" to the
+ # spack compiler wrapper plus a few extra flags necessary for
+ # building the shared library.
+ spack_env.set('LDSHARED', "{0} -shared -pthread".format(spack_cc))
diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py
new file mode 100644
index 0000000000..c9ba7ac15c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-configparser/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyConfigparser(PythonPackage):
+ """This library brings the updated configparser from Python 3.5 to
+ Python 2.6-3.5."""
+
+ homepage = "https://pypi.python.org/pypi/configparser"
+ url = "https://pypi.python.org/packages/source/c/configparser/configparser-3.5.0.tar.gz"
+
+ version('3.5.0', 'cfdd915a5b7a6c09917a64a573140538',
+ url="https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz")
+
+ depends_on('python@2.6:2.7,3.4:')
+
+ # This dependency breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=('build', 'run')) # noqa
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py
index 92a5bd0088..dc8fc08e24 100644
--- a/var/spack/repos/builtin/packages/py-coverage/package.py
+++ b/var/spack/repos/builtin/packages/py-coverage/package.py
@@ -24,17 +24,13 @@
##############################################################################
from spack import *
-class PyCoverage(Package):
+
+class PyCoverage(PythonPackage):
""" Testing coverage checker for python """
- # FIXME: add a proper url for your package's homepage here.
+
homepage = "http://nedbatchelder.com/code/coverage/"
url = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz"
version('4.0a6', '1bb4058062646148965bef0796b61efc')
- depends_on('py-setuptools')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py
index 7fe2f953f7..5bcda9f449 100644
--- a/var/spack/repos/builtin/packages/py-csvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-csvkit/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyCsvkit(Package):
+
+class PyCsvkit(PythonPackage):
"""A library of utilities for working with CSV, the king of tabular file
formats"""
@@ -33,14 +34,9 @@ class PyCsvkit(Package):
version('0.9.1', '48d78920019d18846933ee969502fff6')
- extends('python')
-
- depends_on('py-dateutil')
- depends_on('py-dbf')
- depends_on('py-xlrd')
- depends_on('py-SQLAlchemy')
- depends_on('py-six')
- depends_on('py-openpyxl')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-dateutil', type=('build', 'run'))
+ depends_on('py-dbf', type=('build', 'run'))
+ depends_on('py-xlrd', type=('build', 'run'))
+ depends_on('py-sqlalchemy', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-openpyxl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py
new file mode 100644
index 0000000000..f2b2a15018
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cycler/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyCycler(PythonPackage):
+ """Composable style cycles."""
+
+ homepage = "http://matplotlib.org/cycler/"
+ url = "https://github.com/matplotlib/cycler/archive/v0.10.0.tar.gz"
+
+ version('0.10.0', '83dd0df7810e838b59e4dd9fa6e2d198')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py
index 5ccc508697..c84728cf3e 100644
--- a/var/spack/repos/builtin/packages/py-cython/package.py
+++ b/var/spack/repos/builtin/packages/py-cython/package.py
@@ -24,10 +24,13 @@
##############################################################################
from spack import *
-class PyCython(Package):
+
+class PyCython(PythonPackage):
"""The Cython compiler for writing C extensions for the Python language."""
homepage = "https://pypi.python.org/pypi/cython"
- url = "https://pypi.python.org/packages/source/C/Cython/Cython-0.22.tar.gz"
+ url = "https://pypi.io/packages/source/c/cython/Cython-0.25.2.tar.gz"
+
+ version('0.25.2', '642c81285e1bb833b14ab3f439964086')
version('0.23.5', '66b62989a67c55af016c916da36e7514')
version('0.23.4', '157df1f69bcec6b56fd97e0f2e057f6e')
@@ -35,8 +38,3 @@ class PyCython(Package):
# These versions contain illegal Python3 code...
version('0.22', '1ae25add4ef7b63ee9b4af697300d6b6')
version('0.21.2', 'd21adb870c75680dc857cd05d41046a4')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py
index 831f86e81c..4113c2ac0b 100644
--- a/var/spack/repos/builtin/packages/py-dask/package.py
+++ b/var/spack/repos/builtin/packages/py-dask/package.py
@@ -24,16 +24,12 @@
##############################################################################
from spack import *
-class PyDask(Package):
+
+class PyDask(PythonPackage):
"""Minimal task scheduling abstraction"""
homepage = "https://github.com/dask/dask/"
url = "https://pypi.python.org/packages/source/d/dask/dask-0.8.1.tar.gz"
version('0.8.1', '5dd8e3a3823b3bc62c9a6d192e2cb5b4')
- extends('python')
-
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py
index eb8eb09e75..3ab5ad029c 100644
--- a/var/spack/repos/builtin/packages/py-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-dateutil/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyDateutil(Package):
+
+class PyDateutil(PythonPackage):
"""Extensions to the standard Python datetime module."""
homepage = "https://pypi.python.org/pypi/dateutil"
url = "https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.4.0.tar.gz"
@@ -33,9 +34,5 @@ class PyDateutil(Package):
version('2.4.2', '4ef68e1c485b09e9f034e10473e5add2')
version('2.5.2', 'eafe168e8f404bf384514f5116eedbb6')
- extends('python')
- depends_on('py-setuptools')
- depends_on('py-six')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py
index 09c93de428..56403405e8 100644
--- a/var/spack/repos/builtin/packages/py-dbf/package.py
+++ b/var/spack/repos/builtin/packages/py-dbf/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyDbf(Package):
+
+class PyDbf(PythonPackage):
"""Pure python package for reading/writing dBase, FoxPro, and Visual FoxPro
.dbf files (including memos)"""
@@ -32,8 +33,3 @@ class PyDbf(Package):
url = "https://pypi.python.org/packages/source/d/dbf/dbf-0.96.005.tar.gz"
version('0.96.005', 'bce1a1ed8b454a30606e7e18dd2f8277')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py
index 90a95cd0cb..e5734866ec 100644
--- a/var/spack/repos/builtin/packages/py-decorator/package.py
+++ b/var/spack/repos/builtin/packages/py-decorator/package.py
@@ -24,16 +24,14 @@
##############################################################################
from spack import *
-class PyDecorator(Package):
- """The aim of the decorator module it to simplify the usage of decorators for the average programmer, and to popularize decorators by showing various non-trivial examples."""
+
+class PyDecorator(PythonPackage):
+ """The aim of the decorator module it to simplify the usage of decorators
+ for the average programmer, and to popularize decorators by showing
+ various non-trivial examples."""
homepage = "https://github.com/micheles/decorator"
url = "https://pypi.python.org/packages/source/d/decorator/decorator-4.0.9.tar.gz"
version('4.0.9', 'f12c5651ccd707e12a0abaa4f76cd69a')
- extends('python')
-
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-docutils/package.py b/var/spack/repos/builtin/packages/py-docutils/package.py
new file mode 100644
index 0000000000..00741284df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-docutils/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyDocutils(PythonPackage):
+ """Docutils is an open-source text processing system for processing
+ plaintext documentation into useful formats, such as HTML, LaTeX,
+ man-pages, open-document or XML. It includes reStructuredText, the
+ easy to read, easy to use, what-you-see-is-what-you-get plaintext
+ markup language."""
+
+ homepage = "http://docutils.sourceforge.net/"
+ url = "https://pypi.python.org/packages/source/d/docutils/docutils-0.12.tar.gz"
+
+ version('0.13.1', 'ea4a893c633c788be9b8078b6b305d53',
+ url="https://pypi.python.org/packages/05/25/7b5484aca5d46915493f1fd4ecb63c38c333bd32aa9ad6e19da8d08895ae/docutils-0.13.1.tar.gz")
+ version('0.12', '4622263b62c5c771c03502afa3157768')
diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py
new file mode 100644
index 0000000000..6419a9c40e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-emcee/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyEmcee(PythonPackage):
+ """emcee is an MIT licensed pure-Python implementation of Goodman & Weare's
+ Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler."""
+
+ homepage = "http://dan.iel.fm/emcee/current/"
+ url = "https://pypi.python.org/packages/source/e/emcee/emcee-2.1.0.tar.gz"
+
+ version('2.1.0', 'c6b6fad05c824d40671d4a4fc58dfff7')
+
+ depends_on('py-numpy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-entrypoints/package.py b/var/spack/repos/builtin/packages/py-entrypoints/package.py
new file mode 100644
index 0000000000..944999d69b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-entrypoints/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyEntrypoints(Package):
+ """Discover and load entry points from installed packages."""
+
+ homepage = "https://pypi.python.org/pypi/entrypoints"
+ url = "https://files.pythonhosted.org/packages/f8/ad/0e77a853c745a15981ab51fa9a0cb4eca7a7a007b4c1970106ee6ba01e0c/entrypoints-0.2.2-py2.py3-none-any.whl"
+
+ version('0.2.2', '73bd7ce92c19b25dc5a20aff41be996a', expand=False)
+
+ depends_on('py-pip', type='build')
+
+ def install(self, spec, prefix):
+ pip = which('pip')
+ pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py
new file mode 100644
index 0000000000..cc111ce092
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-enum34/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyEnum34(PythonPackage):
+ """Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4."""
+
+ homepage = "https://pypi.python.org/pypi/enum34"
+ url = "https://pypi.python.org/packages/source/e/enum34/enum34-1.1.6.tar.gz"
+
+ version('1.1.6', '5f13a0841a61f7fc295c514490d120d0',
+ url="https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz")
+
+ depends_on('python@2.4:2.8,3.3:')
+
+ # This dependency breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-ordereddict', when='^python@:2.6.999', type=('build', 'run')) # noqa
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py
index b370075e02..e13d431f91 100644
--- a/var/spack/repos/builtin/packages/py-epydoc/package.py
+++ b/var/spack/repos/builtin/packages/py-epydoc/package.py
@@ -24,14 +24,11 @@
##############################################################################
from spack import *
-class PyEpydoc(Package):
- """Epydoc is a tool for generating API documentation documentation for Python modules, based on their docstrings."""
+
+class PyEpydoc(PythonPackage):
+ """Epydoc is a tool for generating API documentation documentation for
+ Python modules, based on their docstrings."""
homepage = "https://pypi.python.org/pypi/epydoc"
url = "https://pypi.python.org/packages/source/e/epydoc/epydoc-3.0.1.tar.gz"
version('3.0.1', '36407974bd5da2af00bf90ca27feeb44')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py
index b261467d84..17d7cea343 100644
--- a/var/spack/repos/builtin/packages/py-flake8/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8/package.py
@@ -25,16 +25,44 @@
from spack import *
-class PyFlake8(Package):
+class PyFlake8(PythonPackage):
"""Flake8 is a wrapper around PyFlakes, pep8 and Ned Batchelder's
McCabe script."""
- homepage = "http://flake8.readthedocs.io/en/latest/"
- url = "https://pypi.python.org/packages/source/f/flake8/flake8-2.5.4.tar.gz"
- version('2.5.4', 'a4585b3569b95c3f66acb8294a7f06ef')
+ homepage = "https://github.com/PyCQA/flake8"
+ url = "https://github.com/PyCQA/flake8/archive/3.0.4.tar.gz"
- extends('python')
- depends_on('py-setuptools')
+ version('3.0.4', 'cf2a7d8c92070f7b62253404ffb54df7')
+ version('2.5.4', '366dd1de6c300254c830b81e66979f06')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ extends('python', ignore='bin/(pyflakes|pycodestyle)')
+ depends_on('python@2.7:2.8,3.4:')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-flake8 requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=('build', 'run'))
+
+ # pyflakes >= 0.8.1, != 1.2.0, != 1.2.1, != 1.2.2, < 1.3.0
+ depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=('build', 'run'))
+ # pyflakes >= 0.8.1, < 1.1
+ depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=('build', 'run'))
+
+ # pycodestyle >= 2.0.0, < 2.1.0
+ depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=('build', 'run'))
+ # pep8 >= 1.5.7, != 1.6.0, != 1.6.1, != 1.6.2
+ depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=('build', 'run'))
+
+ # mccabe >= 0.5.0, < 0.6.0
+ depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=('build', 'run'))
+ # mccabe >= 0.2.1, < 0.5
+ depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=('build', 'run'))
+
+ # These dependencies breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-configparser', when='^python@:3.3.999', type=('build', 'run')) # noqa
+ # depends_on('py-enum34', when='^python@:3.1.999', type=('build', 'run'))
+ depends_on('py-configparser', type=('build', 'run'))
+ depends_on('py-enum34', type=('build', 'run'))
+
+ # TODO: Add test dependencies
+ # depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py
index 9d987b284e..ea8b71f25f 100644
--- a/var/spack/repos/builtin/packages/py-funcsigs/package.py
+++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py
@@ -23,21 +23,13 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class PyFuncsigs(Package):
+
+class PyFuncsigs(PythonPackage):
"""Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2."""
homepage = "https://pypi.python.org/pypi/funcsigs"
url = "https://pypi.python.org/packages/source/f/funcsigs/funcsigs-0.4.tar.gz"
version('0.4', 'fb1d031f284233e09701f6db1281c2a5')
- extends('python')
-
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
-
-
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-functools32/package.py b/var/spack/repos/builtin/packages/py-functools32/package.py
new file mode 100644
index 0000000000..f2fb0df555
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-functools32/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyFunctools32(PythonPackage):
+ """Backport of the functools module from Python 3.2.3 for use on 2.7 and
+ PyPy."""
+
+ homepage = "https://github.com/MiCHiLU/python-functools32"
+ url = "https://pypi.python.org/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
+
+ version('3.2.3-2', '09f24ffd9af9f6cd0f63cb9f4e23d4b2')
diff --git a/var/spack/repos/builtin/packages/py-futures/package.py b/var/spack/repos/builtin/packages/py-futures/package.py
new file mode 100644
index 0000000000..c6c1d8134f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-futures/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyFutures(PythonPackage):
+ """Backport of the concurrent.futures package from Python 3.2"""
+
+ homepage = "https://pypi.python.org/pypi/futures"
+ url = "https://pypi.io/packages/source/f/futures/futures-3.0.5.tar.gz"
+
+ version('3.0.5', 'ced2c365e518242512d7a398b515ff95')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-genders/package.py b/var/spack/repos/builtin/packages/py-genders/package.py
index 44f6cb1ef4..2123f4eb3f 100644
--- a/var/spack/repos/builtin/packages/py-genders/package.py
+++ b/var/spack/repos/builtin/packages/py-genders/package.py
@@ -24,16 +24,22 @@
##############################################################################
from spack import *
+
class PyGenders(Package):
- """Genders is a static cluster configuration database used for cluster configuration management. It is used by a variety of tools and scripts for management of large clusters."""
+ """Genders is a static cluster configuration database used for cluster
+ configuration management. It is used by a variety of tools and scripts
+ for management of large clusters."""
homepage = "https://github.com/chaos/genders"
url = "https://github.com/chaos/genders/releases/download/genders-1-22-1/genders-1.22.tar.gz"
- version('1.22', '9ea59a024dcbddb85b0ed25ddca9bc8e', url='https://github.com/chaos/genders/releases/download/genders-1-22-1/genders-1.22.tar.gz')
+ version('1.22', '9ea59a024dcbddb85b0ed25ddca9bc8e',
+ url='https://github.com/chaos/genders/releases/download/genders-1-22-1/genders-1.22.tar.gz')
extends('python')
+ # FIXME: Missing a dependency on genders
+ # #include <genders.h>
+
def install(self, spec, prefix):
- configure("--prefix=%s" %prefix)
+ configure("--prefix=%s" % prefix)
make(parallel=False)
make("install")
-
diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py
index cba479a88f..462dbfe802 100644
--- a/var/spack/repos/builtin/packages/py-genshi/package.py
+++ b/var/spack/repos/builtin/packages/py-genshi/package.py
@@ -22,11 +22,10 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import version, extends, depends_on
-from spack import Package
+from spack import *
-class PyGenshi(Package):
+class PyGenshi(PythonPackage):
"""Python toolkit for generation of output for the web"""
homepage = "https://genshi.edgewall.org/"
url = "http://ftp.edgewall.com/pub/genshi/Genshi-0.7.tar.gz"
@@ -35,8 +34,4 @@ class PyGenshi(Package):
version('0.6.1', '372c368c8931110b0a521fa6091742d7')
version('0.6', '604e8b23b4697655d36a69c2d8ef7187')
- extends("python")
- depends_on("py-setuptools")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on("py-setuptools", type='build')
diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py
index 3381c4a5ac..a23aa2585f 100644
--- a/var/spack/repos/builtin/packages/py-gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py
@@ -24,15 +24,13 @@
##############################################################################
from spack import *
-class PyGnuplot(Package):
- """Gnuplot.py is a Python package that allows you to create graphs from within Python using the gnuplot plotting program."""
+
+class PyGnuplot(PythonPackage):
+ """Gnuplot.py is a Python package that allows you to create graphs from
+ within Python using the gnuplot plotting program."""
homepage = "http://gnuplot-py.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/gnuplot-py/Gnuplot-py/1.8/gnuplot-py-1.8.tar.gz"
version('1.8', 'abd6f571e7aec68ae7db90a5217cd5b1')
- extends('python')
- depends_on('py-numpy')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-numpy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index de72bac44e..666905e5c0 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -23,21 +23,41 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import re
-class PyH5py(Package):
- """The h5py package provides both a high- and low-level interface to the HDF5 library from Python."""
+
+class PyH5py(PythonPackage):
+ """The h5py package provides both a high- and low-level interface to the
+ HDF5 library from Python."""
+
homepage = "https://pypi.python.org/pypi/h5py"
url = "https://pypi.python.org/packages/source/h/h5py/h5py-2.4.0.tar.gz"
- version('2.4.0', '80c9a94ae31f84885cc2ebe1323d6758')
+ version('2.6.0', 'ec476211bd1de3f5ac150544189b0bf4')
version('2.5.0', '6e4301b5ad5da0d51b0a1e5ac19e3b74')
+ version('2.4.0', '80c9a94ae31f84885cc2ebe1323d6758')
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ # Build dependencies
+ depends_on('py-cython@0.19:', type='build')
+ depends_on('pkg-config', type='build')
+ depends_on('py-setuptools', type='build')
+ depends_on('hdf5@1.8.4:')
+ depends_on('hdf5+mpi', when='+mpi')
+ depends_on('mpi', when='+mpi')
+ depends_on('py-mpi4py', when='+mpi')
+
+ # Build and runtime dependencies
+ depends_on('py-numpy@1.6.1:', type=('build', 'run'))
+
+ # Runtime dependencies
+ depends_on('py-six', type=('build', 'run'))
+
+ phases = ['configure', 'install']
- extends('python', ignore=lambda f: re.match(r'bin/cy*', f))
- depends_on('hdf5')
- depends_on('py-numpy')
- depends_on('py-cython')
+ def configure(self, spec, prefix):
+ self.setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix))
- def install(self, spec, prefix):
- python('setup.py', 'configure', '--hdf5=%s' % spec['hdf5'].prefix)
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ if '+mpi' in spec:
+ env['CC'] = spec['mpi'].mpicc
+ self.setup_py('configure', '--mpi')
diff --git a/var/spack/repos/builtin/packages/py-html5lib/package.py b/var/spack/repos/builtin/packages/py-html5lib/package.py
new file mode 100644
index 0000000000..1757b44297
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-html5lib/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyHtml5lib(PythonPackage):
+ """HTML parser based on the WHATWG HTML specification."""
+
+ homepage = "https://github.com/html5lib/html5lib-python"
+ url = "https://pypi.python.org/packages/ae/ae/bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/html5lib-0.9999999.tar.gz"
+
+ version('0.9999999', 'ef43cb05e9e799f25d65d1135838a96f')
+
+ depends_on('python@2.6:2.7,3.2:3.4')
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-imagesize/package.py b/var/spack/repos/builtin/packages/py-imagesize/package.py
new file mode 100644
index 0000000000..a2d08f6502
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-imagesize/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyImagesize(PythonPackage):
+ """Parses image file headers and returns image size. Supports PNG, JPEG,
+ JPEG2000, and GIF image file formats."""
+
+ homepage = "https://pypi.python.org/pypi/imagesize"
+ url = "https://pypi.python.org/packages/source/i/imagesize/imagesize-0.7.1.tar.gz"
+
+ version('0.7.1', '976148283286a6ba5f69b0f81aef8052',
+ url="https://pypi.python.org/packages/53/72/6c6f1e787d9cab2cc733cf042f125abec07209a58308831c9f292504e826/imagesize-0.7.1.tar.gz")
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py
new file mode 100644
index 0000000000..0b93a0f2b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-iminuit/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIminuit(PythonPackage):
+ """Interactive IPython-Friendly Minimizer based on SEAL Minuit2."""
+
+ homepage = "https://pypi.python.org/pypi/iminuit"
+ url = "https://pypi.python.org/packages/source/i/iminuit/iminuit-1.2.tar.gz"
+
+ version('1.2', '4701ec472cae42015e26251703e6e984')
+
+ # Required dependencies
+ depends_on('py-setuptools', type='build')
+
+ # Optional dependencies
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-cython', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ipdb/package.py b/var/spack/repos/builtin/packages/py-ipdb/package.py
new file mode 100644
index 0000000000..ab7982a76a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ipdb/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIpdb(Package):
+ """ipdb is the iPython debugger and has many additional features, including
+ a better interactive debugging experience via colorized output."""
+
+ homepage = "https://pypi.python.org/pypi/ipdb"
+ url = "https://pypi.io/packages/source/i/ipdb/ipdb-0.10.1.tar.gz"
+
+ version('0.10.1', '4aeab65f633ddc98ebdb5eebf08dc713')
+
+ # :TODO:
+ # There might be potential to add variants here, but at the time of writing
+ # this the original packager does not know what they are. See the 3rd party
+ # section on ipdb's GitHub:
+ # https://github.com/gotcha/ipdb#third-party-support
+ extends('python')
+ depends_on('python@2.6:2.7,3.2:')
+
+ # Dependencies gathered from:
+ # https://github.com/gotcha/ipdb/blob/master/setup.py
+ # However additional dependencies added below were found via testing.
+ depends_on('py-setuptools', type='build')
+ # ipdb needs iPython and others available at runtime
+ depends_on('py-ipython@0.10.2:', type=('build', 'link'))
+ depends_on('py-traitlets', type=('build', 'link'))
+ depends_on('py-six', type=('build', 'link'))
+ depends_on('py-pexpect', type=('build', 'link'))
+ depends_on('py-prompt-toolkit', type=('build', 'link'))
+
+ def install(self, spec, prefix):
+ # Installation is uncomplicated, this should suffice.
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py
new file mode 100644
index 0000000000..0303a8e43c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIpykernel(PythonPackage):
+ """IPython Kernel for Jupyter"""
+
+ homepage = "https://pypi.python.org/pypi/ipykernel"
+ url = "https://github.com/ipython/ipykernel/archive/4.5.0.tar.gz"
+
+ version('4.5.0', 'ea6aaf431b100452905aaca208edac72')
+ version('4.4.1', 'c0033e524aa9e05ed18879641ffe6e0f')
+ version('4.4.0', '8e626a1708ceff83412180d2ff2f3e57')
+ version('4.3.1', '971eee85d630eb4bafcd52531c79673f')
+ version('4.3.0', '5961164fe908faf798232a265ed48c73')
+ version('4.2.2', '4ac8ae11f1eef4920bf4a5383e13ab50')
+ version('4.2.1', 'de583ee9c84db6296269ce7de0afb63f')
+ version('4.2.0', 'fc535e4e020a41cd2b55508302b155bb')
+ version('4.1.1', '51376850c46fb006e1f8d1cd353507c5')
+ version('4.1.0', '638a43e4f8a15872f749090c3f0827b6')
+
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-traitlets@4.1.0:', type=('build', 'run'))
+ depends_on('py-tornado@4.0:', type=('build', 'run'))
+ depends_on('py-ipython@4.0:', type=('build', 'run'))
+ depends_on('py-jupyter-client', type=('build', 'run'))
+ depends_on('py-pexpect', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ipython-genutils/package.py b/var/spack/repos/builtin/packages/py-ipython-genutils/package.py
new file mode 100644
index 0000000000..66e8a02130
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ipython-genutils/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIpythonGenutils(PythonPackage):
+ """Vestigial utilities from IPython"""
+
+ homepage = "https://pypi.python.org/pypi/ipython_genutils"
+ url = "https://pypi.io/packages/source/i/ipython_genutils/ipython_genutils-0.1.0.tar.gz"
+
+ version('0.1.0', '9a8afbe0978adbcbfcb3b35b2d015a56')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index 7a94f90b38..277e090faa 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -24,17 +24,26 @@
##############################################################################
from spack import *
-class PyIpython(Package):
- """IPython provides a rich toolkit to help you make the most out of using Python interactively."""
+
+class PyIpython(PythonPackage):
+ """IPython provides a rich toolkit to help you make the most out of using
+ Python interactively."""
homepage = "https://pypi.python.org/pypi/ipython"
- url = "https://pypi.python.org/packages/source/i/ipython/ipython-2.3.1.tar.gz"
+ url = "https://pypi.io/packages/source/i/ipython/ipython-2.3.1.tar.gz"
- version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
+ version('5.1.0', '47c8122420f65b58784cb4b9b4af35e3')
version('3.1.0', 'a749d90c16068687b0ec45a27e72ef8f')
+ version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
+
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
- extends('python')
- depends_on('py-pygments')
- depends_on('py-setuptools')
+ # These dependencies breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999") # noqa
+ # depends_on('py-pathlib2', when="^python@:3.3.999")
+ depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'))
+ depends_on('py-pathlib2', type=('build', 'run'))
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-pickleshare', type=('build', 'run'))
+ depends_on('py-simplegeneric', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ipywidgets/package.py b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
new file mode 100644
index 0000000000..eafee8e084
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIpywidgets(PythonPackage):
+ """IPython widgets for the Jupyter Notebook"""
+
+ homepage = "https://github.com/ipython/ipywidgets"
+ url = "https://github.com/ipython/ipywidgets/archive/5.2.2.tar.gz"
+
+ version('5.2.2', '112f3daa4aa0f42f8dda831cea3649c8')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-ipython@4.0.0:', type=('build', 'run'))
+ depends_on('py-ipykernel@4.2.2:', type=('build', 'run'))
+ depends_on('py-traitlets@4.2.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py
index fd1d6b4419..964db1448f 100644
--- a/var/spack/repos/builtin/packages/py-jdcal/package.py
+++ b/var/spack/repos/builtin/packages/py-jdcal/package.py
@@ -24,15 +24,11 @@
##############################################################################
from spack import *
-class PyJdcal(Package):
+
+class PyJdcal(PythonPackage):
"""Julian dates from proleptic Gregorian and Julian calendars"""
homepage = 'http://github.com/phn/jdcal'
url = "https://pypi.python.org/packages/source/j/jdcal/jdcal-1.2.tar.gz"
version('1.2', 'ab8d5ba300fd1eb01514f363d19b1eb9')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py
index 48312d9baf..eafe8c252b 100644
--- a/var/spack/repos/builtin/packages/py-jinja2/package.py
+++ b/var/spack/repos/builtin/packages/py-jinja2/package.py
@@ -22,30 +22,23 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyJinja2(Package):
- """
- Jinja2 is a template engine written in pure Python. It provides
+class PyJinja2(PythonPackage):
+ """Jinja2 is a template engine written in pure Python. It provides
a Django inspired non-XML syntax but supports inline expressions
- and an optional sandboxed environment.
- """
+ and an optional sandboxed environment."""
homepage = "http://jinja.pocoo.org/"
- url = "https://github.com/pallets/jinja/archive/2.8.tar.gz"
+ url = "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.8.tar.gz"
- version('2.8', '4114200650d7630594e3bc70af23f59e')
- version('2.7.3', '55b87bdc8e585b8b5b86734eefce2621')
- version('2.7.2', '8e8f226809ae6363009b9296e30adf30')
- version('2.7.1', '69b6675553c81b1087f95cae7f2179bb')
- version('2.7', 'ec70433f325051dcedacbb2465028a35')
-
- extends("python")
- depends_on("py-setuptools")
- depends_on("py-markupsafe")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ version('2.8', 'edb51693fe22c53cee5403775c71a99e')
+ version('2.7.3', 'b9dffd2f3b43d673802fe857c8445b1a')
+ version('2.7.2', 'df1581455564e97010e38bc792012aa5')
+ version('2.7.1', '282aed153e69f970d6e76f78ed9d027a')
+ version('2.7', 'c2fb12cbbb523c57d3d15bfe4dc0e8fe')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-markupsafe', type=('build', 'run'))
+ depends_on('py-babel@0.8:', type=('build', 'run')) # optional, required for i18n
diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py
new file mode 100644
index 0000000000..b1a0ac6606
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyJsonschema(PythonPackage):
+ """Jsonschema: An(other) implementation of JSON Schema for Python."""
+
+ homepage = "http://github.com/Julian/jsonschema"
+ url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-2.5.1.tar.gz"
+
+ version('2.5.1', '374e848fdb69a3ce8b7e778b47c30640')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-vcversioner', type=('build', 'run'))
+
+ # This dependency breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-functools32', when="^python@2.7", type=('build', 'run'))
+ depends_on('py-functools32', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-client/package.py b/var/spack/repos/builtin/packages/py-jupyter-client/package.py
new file mode 100644
index 0000000000..b0c7b06362
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-client/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyJupyterClient(PythonPackage):
+ """Jupyter protocol client APIs"""
+
+ homepage = "https://github.com/jupyter/jupyter_client"
+ url = "https://github.com/jupyter/jupyter_client/archive/4.4.0.tar.gz"
+
+ version('4.4.0', 'a0bd6fe6ba7c504fbc962a88a2a56a90')
+ version('4.3.0', '257d9f5429dac4d9511db84d201d3a9e')
+ version('4.2.2', '988ea87554215a83c6ad52e554d8d8c4')
+ version('4.2.1', '16994e5cace322c777456bc5a26502d7')
+ version('4.2.0', '61c43c9f243e42f1945fae5d56d0d23c')
+ version('4.1.1', '8436e4a3266a442f576cdfef39dc0e19')
+ version('4.1.0', 'cf42048b889c8434fbb5813a9eec1d34')
+ version('4.0.0', '00fa63c67cb3adf359d09dc4d803aff5')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,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'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-console/package.py b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
new file mode 100644
index 0000000000..a5f3e53298
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyJupyterConsole(PythonPackage):
+ """Jupyter Terminal Console"""
+
+ homepage = "https://github.com/jupyter/jupyter_console"
+ url = "https://github.com/jupyter/jupyter_console/archive/5.0.0.tar.gz"
+
+ version('5.0.0', '08a9fde32a45c9e2e0b4cec6eca249c2')
+ version('4.1.1', 'a8b077ae0a5c57e9518ac039ad5febb8')
+ version('4.1.0', '9c655076262760bdbeeada9d7f586237')
+ version('4.0.3', '0e928ea261e7f8154698cf69ed4f2459')
+ version('4.0.2', 'f2e174938c91136549b908bd39fa5d59')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-jupyter-client', type=('build', 'run'))
+ depends_on('py-ipython', type=('build', 'run'))
+ depends_on('py-ipykernel', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-prompt-toolkit@1.0.0:1.999.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-core/package.py b/var/spack/repos/builtin/packages/py-jupyter-core/package.py
new file mode 100644
index 0000000000..f650a91bb9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-core/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyJupyterCore(PythonPackage):
+ """Core Jupyter functionality"""
+
+ homepage = "http://jupyter-core.readthedocs.io/"
+ url = "https://github.com/jupyter/jupyter_core/archive/4.2.0.tar.gz"
+
+ version('4.2.0', '25c1fc68b1b73c0a2e616c76f02bf061')
+ version('4.1.1', '2fce5ff60291bc01b39b1f00b3cbb784')
+ version('4.1.0', 'b7e928f965f68aef13fea1bf9d6384aa')
+ version('4.0.6', '50a73c3a4a8ed047a3674d2b5274cc3b')
+ version('4.0.5', 'c09bd3be58f141b49b90cdb2ba22f77f')
+ version('4.0.4', '5b6ca0e73bf559f4fe6106a6e412f913')
+ version('4.0.3', 'f2608f6e92f992ec8e37646b52c922a6')
+ version('4.0.2', 'ae0d0197c4febf43c050a97ac6277263')
+ version('4.0.1', 'f849136b2badaaba2a8a3b397bf04639')
+ version('4.0', 'b6b37cb4f40bd0fcd20433cb2cc7a4c1')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-traitlets', 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
new file mode 100644
index 0000000000..4c0d12b245
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyJupyterNotebook(PythonPackage):
+ """Jupyter Interactive Notebook"""
+
+ homepage = "https://github.com/jupyter/notebook"
+ url = "https://github.com/jupyter/notebook/archive/4.2.3.tar.gz"
+
+ version('4.2.3', '5c6b0b1303adacd8972c4db21eda3e98')
+ version('4.2.2', '7f9717ae4fed930d187a44c0707b6379')
+ version('4.2.1', '4286f1eaf608257bd69cad4042c7c2fe')
+ version('4.2.0', '136be6b72fe9db7f0269dc7fa5652a62')
+ version('4.1.0', '763ab54b3fc69f6225b9659b6994e756')
+ version('4.0.6', 'd70d8a6d01893f4b64df9edbc0e13b52')
+ version('4.0.5', '2681a70e4c62aafe7ce69f1da5799ac8')
+ version('4.0.4', 'ab72f28f6af8107d71241a4110e92c05')
+ version('4.0.3', '119beea793865ee4b1673a50043ead2a')
+ version('4.0.2', '77f371e9a23a840d14d8a60fee7ba1b7')
+
+ variant('terminal', default=False, description="Enable terminal functionality")
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('npm', type='build')
+ 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-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-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py
index 998b41abc6..1e57e6a1d7 100644
--- a/var/spack/repos/builtin/packages/py-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-lockfile/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyLockfile(Package):
+
+class PyLockfile(PythonPackage):
"""The lockfile package exports a LockFile class which provides a
simple API for locking files. Unlike the Windows msvcrt.locking
function, the fcntl.lockf and flock functions, and the
@@ -40,8 +41,4 @@ class PyLockfile(Package):
version('0.10.2', '1aa6175a6d57f082cd12e7ac6102ab15')
- extends("python")
- depends_on("py-setuptools")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on("py-setuptools", type='build')
diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py
index 8675c48e9a..4c20885760 100644
--- a/var/spack/repos/builtin/packages/py-logilab-common/package.py
+++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py
@@ -22,21 +22,16 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyLogilabCommon(Package):
+class PyLogilabCommon(PythonPackage):
"""Common modules used by Logilab projects"""
homepage = "https://www.logilab.org/project/logilab-common"
url = "https://pypi.python.org/packages/a7/31/1650d23e44794d46935d82b86e73454cc83b814cbe1365260ccce8a2f4c6/logilab-common-1.2.0.tar.gz"
version('1.2.0', 'f7b51351b7bfe052746fa04c03253c0b')
- extends("python")
- depends_on("py-setuptools")
- depends_on("py-six")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ extends('python', ignore=r'bin/pytest')
+ depends_on("py-setuptools", type='build')
+ depends_on("py-six", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-macs2/package.py b/var/spack/repos/builtin/packages/py-macs2/package.py
new file mode 100644
index 0000000000..42318faa2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-macs2/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class PyMacs2(PythonPackage):
+ """MACS2 Model-based Analysis of ChIP-Seq"""
+
+ homepage = "https://github.com/taoliu/MACS"
+ url = "https://pypi.python.org/packages/9f/99/a8ac96b357f6b0a6f559fe0f5a81bcae12b98579551620ce07c5183aee2c/MACS2-2.1.1.20160309.tar.gz"
+
+ version('2.1.1.20160309', '2008ba838f83f34f8e0fddefe2a3a0159f4a740707c68058f815b31ddad53d26')
+
+ depends_on('python@2.7:2.8')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-macs2 requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-numpy@1.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py
index a03ef4defb..0707d0b12f 100644
--- a/var/spack/repos/builtin/packages/py-mako/package.py
+++ b/var/spack/repos/builtin/packages/py-mako/package.py
@@ -24,17 +24,18 @@
##############################################################################
from spack import *
-class PyMako(Package):
- """A super-fast templating language that borrows the best
- ideas from the existing templating languages."""
+
+class PyMako(PythonPackage):
+ """A super-fast templating language that borrows the best
+ ideas from the existing templating languages."""
homepage = "https://pypi.python.org/pypi/mako"
- url = "https://pypi.python.org/packages/source/M/Mako/Mako-1.0.1.tar.gz"
+ url = "https://pypi.python.org/packages/source/M/Mako/Mako-1.0.1.tar.gz"
+ version('1.0.4', 'c5fc31a323dd4990683d2f2da02d4e20')
version('1.0.1', '9f0aafd177b039ef67b90ea350497a54')
- depends_on('py-setuptools')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
+ # depends_on('py-mock', type='test') # TODO: Add test deptype
+ # depends_on('py-pytest', type='test') # TODO: Add test deptype
+ depends_on('py-markupsafe@0.9.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-markdown/package.py b/var/spack/repos/builtin/packages/py-markdown/package.py
new file mode 100644
index 0000000000..23c8167021
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-markdown/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class PyMarkdown(PythonPackage):
+ """This is a Python implementation of John Gruber's Markdown. It is
+ almost completely compliant with the reference implementation, though
+ there are a few very minor differences. See John's Syntax
+ Documentation for the syntax rules.
+ """
+
+ homepage = "https://pythonhosted.org/Markdown/"
+ url = "https://github.com/waylan/Python-Markdown/archive/2.6.7-final.tar.gz"
+
+ version('2.6.7', 'fd27044042e197ad99249b3d60215d97')
+ version('2.6.6', '2b47a0ff7eb19ef34453fe198a0cccc4')
+ version('2.6.5', 'e4b6b65b2d6bcac07176fb209bc55614')
+ version('2.6.4', '5fb3cd9945eb534e71af597f8ee3622b')
+ version('2.6.3', 'ec7a50ce9fd4a5fd0b24555d47e9d7d1')
+ version('2.6.2', '6ce86913e9bf5bb34d9ee394ac71f044')
+ version('2.6.1', '0ae69693c5adb27caf0160941d7dcbdf')
+ version('2.6', '9acdde43d99847d0c4ef03ea56b1d2c5')
+ version('2.5.2', 'ed2a662d22799186c1ef85d173d38b8a')
+ version('2.5.1', 'be6f6ba65a8fb843d2aaf1fcdd68c755')
+ version('2.5', '8393ceab9c6e33357fb8a7be063a4849')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.8,3.2:3.4')
+
+ def url_for_version(self, version):
+ base_url = "https://github.com/waylan/Python-Markdown/archive"
+ return "{0}/{1}-final.tar.gz".format(base_url, version)
diff --git a/var/spack/repos/builtin/packages/py-markupsafe/package.py b/var/spack/repos/builtin/packages/py-markupsafe/package.py
index 58c9f70066..a31e3972de 100644
--- a/var/spack/repos/builtin/packages/py-markupsafe/package.py
+++ b/var/spack/repos/builtin/packages/py-markupsafe/package.py
@@ -22,30 +22,22 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyMarkupsafe(Package):
- """
- MarkupSafe is a library for Python that implements a unicode
- string that is aware of HTML escaping rules and can be used
- to implement automatic string escaping. It is used by Jinja 2,
- the Mako templating engine, the Pylons web framework and many more.
- """
+class PyMarkupsafe(PythonPackage):
+ """MarkupSafe is a library for Python that implements a unicode
+ string that is aware of HTML escaping rules and can be used to
+ implement automatic string escaping. It is used by Jinja 2, the
+ Mako templating engine, the Pylons web framework and many more."""
homepage = "http://www.pocoo.org/projects/markupsafe/"
- url = "https://github.com/pallets/markupsafe/archive/0.23.tar.gz"
+ url = "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz"
- version('0.23', '1a0dadc95169832367c9dcf142155cde')
- version('0.22', '7a2ac7427b58def567628d06dc328396')
- version('0.21', 'aebcd93ee05269773c8b80bb6c86fc2f')
- version('0.20', '0c1fef97c8fd6a986d708f08d7f84a02')
- version('0.19', '64b05361adb92c11839fc470e308c593')
-
- extends("python")
- depends_on("py-setuptools")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ version('0.23', 'f5ab3deee4c37cd6a922fb81e730da6e')
+ version('0.22', 'cb3ec29fd5361add24cfd0c6e2953b3e')
+ version('0.21', 'fde838d9337fa51744283f46a1db2e74')
+ version('0.20', '7da066d9cb191a70aa85d0a3d43565d1')
+ version('0.19', 'ccb3f746c807c5500850987006854a6d')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index 14f9716ae6..d808b0fc4b 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -25,55 +25,98 @@
from spack import *
import os
-class PyMatplotlib(Package):
- """Python plotting package."""
+
+class PyMatplotlib(PythonPackage):
+ """matplotlib is a python 2D plotting library which produces publication
+ quality figures in a variety of hardcopy formats and interactive
+ environments across platforms."""
+
homepage = "https://pypi.python.org/pypi/matplotlib"
- url = "https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.2.tar.gz"
+ url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-1.4.2.tar.gz"
- version('1.4.2', '7d22efb6cce475025733c50487bd8898')
+ version('1.5.3', 'ba993b06113040fee6628d74b80af0fd')
+ version('1.5.1', 'f51847d8692cb63df64cd0bd0304fd20')
version('1.4.3', '86af2e3e3c61849ac7576a6f5ca44267')
+ version('1.4.2', '7d22efb6cce475025733c50487bd8898')
+
+ # See: http://matplotlib.org/users/installing.html
- variant('gui', default=False, description='Enable GUI')
+ # Variants enabled by default for a standard configuration
+ variant('tk', default=True, description='Enable Tk GUI')
+ variant('image', default=True,
+ description='Enable reading/saving JPEG, BMP and TIFF files')
+
+ # Variants optionally available to user
variant('ipython', default=False, description='Enable ipython support')
+ variant('qt', default=False, description='Enable Qt GUI')
+ variant('latex', default=False,
+ description='Enable LaTeX text rendering support')
+ variant('animation', default=False,
+ description='Enable animation support')
+ # Python 2.7, 3.4, or 3.5
extends('python', ignore=r'bin/nosetests.*$|bin/pbr$')
- depends_on('py-pyside', when='+gui')
+ # ------ Required dependencies
+ depends_on('py-setuptools', type='build')
+
+ depends_on('libpng@1.2:')
+ depends_on('freetype@2.3:')
+
+ depends_on('py-numpy@1.6:', type=('build', 'run'))
+ depends_on('py-dateutil@1.1:', type=('build', 'run'))
+ depends_on('py-pyparsing', type=('build', 'run'))
+ depends_on('py-pytz', type=('build', 'run'))
+ depends_on('py-cycler@0.9:', type=('build', 'run'))
+
+ # ------ Optional GUI frameworks
+ depends_on('tk@8.3:', when='+tk') # not 8.6.0 or 8.6.1
+ depends_on('qt', when='+qt')
+ depends_on('py-pyside', when='+qt', type=('build', 'run'))
+
+ # --------- Optional external programs
+ # ffmpeg/avconv or mencoder
+ depends_on('image-magick', when='+animation')
+
+ # --------- Optional dependencies
+ depends_on('pkg-config', type='build') # why not...
+ depends_on('pil', when='+image', type=('build', 'run'))
depends_on('py-ipython', when='+ipython')
- depends_on('py-pyparsing')
- depends_on('py-six')
- depends_on('py-dateutil')
- depends_on('py-pytz')
- depends_on('py-nose')
- depends_on('py-numpy')
- depends_on('py-mock')
- depends_on('py-pbr')
- depends_on('py-funcsigs')
-
- depends_on('pkg-config')
- depends_on('freetype')
- depends_on('qt', when='+gui')
- depends_on('bzip2')
- depends_on('tcl', when='+gui')
- depends_on('tk', when='+gui')
- depends_on('qhull')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
- if str(self.version) in ['1.4.2', '1.4.3']:
- # hack to fix configuration file
+ depends_on('ghostscript', when='+latex', type='run')
+ depends_on('texlive', when='+latex', type='run')
+
+ # Testing dependencies
+ depends_on('py-nose') # type='test'
+ depends_on('py-mock') # type='test'
+
+ # Required libraries that ship with matplotlib
+ # depends_on('agg@2.4:')
+ depends_on('qhull@2012.1:')
+ # depends_on('ttconv')
+ depends_on('py-six@1.9.0:', type=('build', 'run'))
+
+ @PythonPackage.sanity_check('install')
+ def set_backend(self):
+ spec = self.spec
+ prefix = self.prefix
+
+ if '+qt' in spec or '+tk' in spec:
+ # Set backend in matplotlib configuration file
config_file = None
- for p,d,f in os.walk(prefix.lib):
+ for p, d, f in os.walk(prefix.lib):
for file in f:
if file.find('matplotlibrc') != -1:
config_file = join_path(p, 'matplotlibrc')
- print config_file
- if config_file == None:
- raise InstallError('could not find config file')
- filter_file(r'backend : pyside',
- 'backend : Qt4Agg',
- config_file)
- filter_file(r'#backend.qt4 : PyQt4',
- 'backend.qt4 : PySide',
- config_file)
+ if not config_file:
+ raise InstallError('Could not find matplotlibrc')
+
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+ rc = FileFilter(config_file)
+
+ # Only make Qt4 be the default backend if Tk is turned off
+ if '+qt' in spec and '+tk' not in spec:
+ rc.filter('^backend.*', 'backend : Qt4Agg', **kwargs)
+
+ # Additional options in case user is doing Qt4:
+ if '+qt' in spec:
+ rc.filter('^#backend.qt4.*', 'backend.qt4 : PySide', **kwargs)
diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py
new file mode 100644
index 0000000000..c413193cdc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mccabe/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMccabe(PythonPackage):
+ """Ned's script to check McCabe complexity."""
+
+ homepage = "https://github.com/PyCQA/mccabe"
+ url = "https://github.com/PyCQA/mccabe/archive/0.5.2.tar.gz"
+
+ version('0.5.2', '3cdf2d7faa1464b18905fe9a7063a632')
+ version('0.5.1', '864b364829156701bec797712be8ece0')
+ version('0.5.0', '71c0ce5e5c4676753525154f6c5d3af8')
+ version('0.4.0', '9cf5712e5f1785aaa27273a4328babe4')
+ version('0.3.1', '45c48c0978e6fc1f31fedcb918178abb')
+ version('0.3', 'c583f58ea28be12842c001473d77504d')
+ version('0.2.1', 'fcba311ebd999f48359a8ab28da94b30')
+ version('0.2', '36d4808c37e187dbb1fe2373a0ac6645')
+ version('0.1', '3c9e8e72612a9c01d865630cc569150a')
+
+ depends_on('python@2.7:2.8,3.3:')
+
+ depends_on('py-setuptools', type='build')
+
+ # TODO: Add test dependencies
+ # depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-meep/package.py b/var/spack/repos/builtin/packages/py-meep/package.py
new file mode 100644
index 0000000000..0ebba77ac6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-meep/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+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', 'f8913542d18b0dda92ebc64f0a10ce56')
+
+ 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, spec, prefix):
+ return 'setup-mpi.py' if '+mpi' in spec else 'setup.py'
+
+ def common_args(self, spec, prefix):
+ include_dirs = [
+ spec['meep'].prefix.include,
+ spec['py-numpy'].include
+ ]
+
+ 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-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py
index 9bcbb5a927..cc859d4b78 100644
--- a/var/spack/repos/builtin/packages/py-mistune/package.py
+++ b/var/spack/repos/builtin/packages/py-mistune/package.py
@@ -22,11 +22,10 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyMistune(Package):
+class PyMistune(PythonPackage):
"""
Python markdown parser
"""
@@ -39,8 +38,4 @@ class PyMistune(Package):
version('0.5.1', '1c6cfce28a4aa90cf125217cd6c6fe6c')
version('0.5', '997736554f1f95eea78c66ae339b5722')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py
index 0587131b88..21edbd1dc0 100644
--- a/var/spack/repos/builtin/packages/py-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-mock/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyMock(Package):
+
+class PyMock(PythonPackage):
"""mock is a library for testing in Python. It allows you to replace parts
of your system under test with mock objects and make assertions about how
they have been used."""
@@ -34,9 +35,5 @@ class PyMock(Package):
version('1.3.0', '73ee8a4afb3ff4da1b4afa287f39fdeb')
- extends('python')
- depends_on('py-pbr')
- depends_on('py-setuptools@17.1:')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-pbr', type=('build', 'run'))
+ depends_on('py-setuptools@17.1:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-monotonic/package.py b/var/spack/repos/builtin/packages/py-monotonic/package.py
new file mode 100644
index 0000000000..b02f954ccc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-monotonic/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMonotonic(PythonPackage):
+ """An implementation of time.monotonic() for Python 2 & < 3.3"""
+
+ homepage = "https://pypi.python.org/pypi/monotonic"
+ url = "https://pypi.io/packages/source/m/monotonic/monotonic-1.2.tar.gz"
+
+ version('1.2', 'd14c93aabc3d6af25ef086b032b123cf')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py
index 2764b8b3c6..7f8dc6b986 100644
--- a/var/spack/repos/builtin/packages/py-mpi4py/package.py
+++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py
@@ -24,17 +24,19 @@
##############################################################################
from spack import *
-class PyMpi4py(Package):
- """This package provides Python bindings for the Message Passing Interface (MPI) standard. It is implemented on top of the MPI-1/MPI-2 specification and exposes an API which grounds on the standard MPI-2 C++ bindings."""
+
+class PyMpi4py(PythonPackage):
+ """This package provides Python bindings for the Message Passing
+ Interface (MPI) standard. It is implemented on top of the
+ MPI-1/MPI-2 specification and exposes an API which grounds on the
+ standard MPI-2 C++ bindings.
+
+ """
homepage = "https://pypi.python.org/pypi/mpi4py"
url = "https://pypi.python.org/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz"
version('2.0.0', '4f7d8126d7367c239fd67615680990e3')
version('1.3.1', 'dbe9d22bdc8ed965c23a7ceb6f32fc3c')
- extends('python')
- depends_on('py-setuptools')
+ depends_on('py-setuptools', type='build')
depends_on('mpi')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py
index 899ff053a9..d379e0bd03 100644
--- a/var/spack/repos/builtin/packages/py-mpmath/package.py
+++ b/var/spack/repos/builtin/packages/py-mpmath/package.py
@@ -24,14 +24,10 @@
##############################################################################
from spack import *
-class PyMpmath(Package):
+
+class PyMpmath(PythonPackage):
"""A Python library for arbitrary-precision floating-point arithmetic."""
homepage = "http://mpmath.org"
url = "https://pypi.python.org/packages/source/m/mpmath/mpmath-all-0.19.tar.gz"
version('0.19', 'd1b7e19dd6830d0d7b5e1bc93d46c02c')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py
index d0f9f7cadf..9af74555b1 100644
--- a/var/spack/repos/builtin/packages/py-mx/package.py
+++ b/var/spack/repos/builtin/packages/py-mx/package.py
@@ -24,14 +24,15 @@
##############################################################################
from spack import *
-class PyMx(Package):
- """The eGenix.com mx Base Distribution for Python is a collection of professional quality software tools which enhance Python's usability in many important areas such as fast text searching, date/time processing and high speed data types."""
+
+class PyMx(PythonPackage):
+ """The eGenix.com mx Base Distribution for Python is a collection of
+ professional quality software tools which enhance Python's
+ usability in many important areas such as fast text searching,
+ date/time processing and high speed data types.
+
+ """
homepage = "http://www.egenix.com/products/python/mxBase/"
url = "https://downloads.egenix.com/python/egenix-mx-base-3.2.8.tar.gz"
version('3.2.8', '9d9d3a25f9dc051a15e97f452413423b')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mysqldb1/package.py b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
index 9918ba3e64..8fd794aadb 100644
--- a/var/spack/repos/builtin/packages/py-mysqldb1/package.py
+++ b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
@@ -24,16 +24,15 @@
##############################################################################
from spack import *
-class PyMysqldb1(Package):
+
+class PyMysqldb1(PythonPackage):
"""Legacy mysql bindings for python"""
homepage = "https://github.com/farcepest/MySQLdb1"
url = "https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz"
- version('1.2.5', '332c8f4955b6bc0c79ea15170bf7321b')
-
- extends('python')
- depends_on('py-setuptools')
+ version('1.2.5', '332c8f4955b6bc0c79ea15170bf7321b',
+ url="https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz")
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ # FIXME: Missing dependency on mysql
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py
new file mode 100644
index 0000000000..0e221d355c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyNbconvert(PythonPackage):
+ """Jupyter Notebook Conversion"""
+
+ homepage = "https://github.com/jupyter/nbconvert"
+ url = "https://github.com/jupyter/nbconvert/archive/4.2.0.tar.gz"
+
+ version('4.2.0', '8bd88771cc00f575d5edcd0b5197f964')
+ version('4.1.0', '06655576713ba1ff7cece2b92760c187')
+ version('4.0.0', '9661620b1e10a7b46f314588d2d0932f')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pycurl', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-mistune', type=('build', 'run'))
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-traitlets', type=('build', 'run'))
+ depends_on('py-jupyter-core', type=('build', 'run'))
+ depends_on('py-nbformat', type=('build', 'run'))
+ depends_on('py-entrypoints', type=('build', 'run'))
+ depends_on('py-tornado', type=('build', 'run'))
+ depends_on('py-jupyter-client', type=('build', 'run'))
+
+ # FIXME:
+ # Failed, try again after installing PycURL with `pip install pycurl` to avoid outdated SSL. # noqa
+ # Failed to download css from https://cdn.jupyter.org/notebook/4.1.0/style/style.min.css: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661) # noqa
+ # Downloading CSS: https://cdn.jupyter.org/notebook/4.1.0/style/style.min.css # noqa
+ # error: Need Notebook CSS to proceed: nbconvert/resources/style.min.css
diff --git a/var/spack/repos/builtin/packages/py-nbformat/package.py b/var/spack/repos/builtin/packages/py-nbformat/package.py
new file mode 100644
index 0000000000..4ecf7f8fcf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nbformat/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyNbformat(PythonPackage):
+ """The Jupyter Notebook format"""
+
+ homepage = "https://github.com/jupyter/nbformat"
+ url = "https://github.com/jupyter/nbformat/archive/4.1.0.tar.gz"
+
+ version('4.1.0', '826b4fc4ec42553b20144f53b57b4e7b')
+ version('4.0.1', 'ab7172e517c9d561c0c01eef5631b4c8')
+ version('4.0.0', '7cf61359fa4e9cf3ef5e969e2fcb909e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-ipython-genutils', type=('build', 'run'))
+ depends_on('py-traitlets', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-jupyter-core', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py
new file mode 100644
index 0000000000..22dc9debe1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nestle/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyNestle(PythonPackage):
+ """Nested sampling algorithms for evaluating Bayesian evidence."""
+
+ homepage = "http://kbarbary.github.io/nestle/"
+ url = "https://pypi.python.org/packages/source/n/nestle/nestle-0.1.1.tar.gz"
+
+ version('0.1.1', '4875c0f9a0a8e263c1d7f5fa6ce604c5')
+
+ # Required dependencies
+ depends_on('py-numpy', type=('build', 'run'))
+
+ # Optional dependencies
+ depends_on('py-scipy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-netcdf/package.py b/var/spack/repos/builtin/packages/py-netcdf/package.py
index e3f857a0ce..2d35320ca0 100644
--- a/var/spack/repos/builtin/packages/py-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/py-netcdf/package.py
@@ -24,17 +24,15 @@
##############################################################################
from spack import *
-class PyNetcdf(Package):
+
+class PyNetcdf(PythonPackage):
"""Python interface to the netCDF Library."""
homepage = "http://unidata.github.io/netcdf4-python"
url = "https://github.com/Unidata/netcdf4-python/tarball/v1.2.3.1rel"
version('1.2.3.1', '4fc4320d4f2a77b894ebf8da1c9895af')
- extends('python')
- depends_on('py-numpy')
- depends_on('py-cython')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-cython', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
depends_on('netcdf')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index 6bdb24e36e..6eca70c15c 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -24,16 +24,14 @@
##############################################################################
from spack import *
-class PyNetworkx(Package):
- """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks."""
+
+class PyNetworkx(PythonPackage):
+ """NetworkX is a Python package for the creation, manipulation, and study
+ of the structure, dynamics, and functions of complex networks."""
homepage = "http://networkx.github.io/"
url = "https://pypi.python.org/packages/source/n/networkx/networkx-1.11.tar.gz"
version('1.11', '6ef584a879e9163013e9a762e1cf7cd1')
- extends('python')
-
- depends_on('py-decorator')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-decorator', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py
index abb2d500a2..050a018ffa 100644
--- a/var/spack/repos/builtin/packages/py-nose/package.py
+++ b/var/spack/repos/builtin/packages/py-nose/package.py
@@ -25,7 +25,7 @@
from spack import *
-class PyNose(Package):
+class PyNose(PythonPackage):
"""nose extends the test loading and running features of unittest,
making it easier to write, find and run tests."""
@@ -36,8 +36,4 @@ class PyNose(Package):
version('1.3.6', '0ca546d81ca8309080fc80cb389e7a16')
version('1.3.7', '4d3ad0ff07b61373d2cefc89c5d0b20b')
- extends('python', ignore=r'bin/nosetests.*$')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index d8bacd179f..ee89820f5b 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -23,18 +23,18 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import re
-class PyNumexpr(Package):
+
+class PyNumexpr(PythonPackage):
"""Fast numerical expression evaluator for NumPy"""
homepage = "https://pypi.python.org/pypi/numexpr"
url = "https://pypi.python.org/packages/source/n/numexpr/numexpr-2.4.6.tar.gz"
+ version('2.6.1', '6365245705b446426df9543ad218dd8e',
+ url="https://pypi.python.org/packages/c6/f0/11628fa4d332d8fe9ab0ba8e9bfe0e065fb6b5324859171ee72d84e079c0/numexpr-2.6.1.tar.gz")
+ version('2.5', '84f66cced45ba3e30dcf77a937763aaa')
version('2.4.6', '17ac6fafc9ea1ce3eb970b9abccb4fbd')
- version('2.5', '84f66cced45ba3e30dcf77a937763aaa')
-
- extends('python')
- depends_on('py-numpy')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('python@2.6:')
+ depends_on('py-numpy@1.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index e9672b7bb0..25a5f04b8c 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -23,46 +23,62 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import platform
-class PyNumpy(Package):
+
+class PyNumpy(PythonPackage):
"""NumPy is the fundamental package for scientific computing with Python.
It contains among other things: a powerful N-dimensional array object,
sophisticated (broadcasting) functions, tools for integrating C/C++ and
Fortran code, and useful linear algebra, Fourier transform, and random
number capabilities"""
+
homepage = "http://www.numpy.org/"
- url = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz"
+ url = "https://pypi.io/packages/source/n/numpy/numpy-1.9.1.tar.gz"
+ version('1.11.2', '03bd7927c314c43780271bf1ab795ebc')
+ version('1.11.1', '2f44a895a8104ffac140c3a70edbd450')
version('1.11.0', 'bc56fb9fc2895aa4961802ffbdb31d0b')
version('1.10.4', 'aed294de0aa1ac7bd3f9745f4f1968ad')
version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645')
version('1.9.1', '78842b73560ec378142665e712ae4ad9')
-
variant('blas', default=True)
variant('lapack', default=True)
- extends('python')
- depends_on('py-nose')
+ depends_on('python@2.6:2.8,3.2:')
+ depends_on('py-nose', type='build')
+ depends_on('py-setuptools', type='build')
depends_on('blas', when='+blas')
depends_on('lapack', when='+lapack')
- def install(self, spec, prefix):
- libraries = []
- library_dirs = []
+ def setup_dependent_package(self, module, dep_spec):
+ python_version = self.spec['python'].version.up_to(2)
+ arch = '{0}-{1}'.format(platform.system().lower(), platform.machine())
- if '+blas' in spec:
- libraries.append('blas')
- library_dirs.append(spec['blas'].prefix.lib)
+ self.spec.include = join_path(
+ self.prefix.lib,
+ 'python{0}'.format(python_version),
+ 'site-packages',
+ 'numpy-{0}-py{1}-{2}.egg'.format(
+ self.spec.version, python_version, arch),
+ 'numpy/core/include')
+
+ def patch(self):
+ spec = self.spec
+ # for build notes see http://www.scipy.org/scipylib/building/linux.html
+ lapackblas = LibraryList('')
if '+lapack' in spec:
- libraries.append('lapack')
- library_dirs.append(spec['lapack'].prefix.lib)
+ lapackblas += spec['lapack'].lapack_libs
+
+ if '+blas' in spec:
+ lapackblas += spec['blas'].blas_libs
if '+blas' in spec or '+lapack' in spec:
with open('site.cfg', 'w') as f:
f.write('[DEFAULT]\n')
- f.write('libraries=%s\n' % ','.join(libraries))
- f.write('library_dirs=%s\n' % ':'.join(library_dirs))
-
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ f.write('libraries=%s\n' % ','.join(lapackblas.names))
+ f.write('library_dirs=%s\n' % ':'.join(lapackblas.directories))
+ if not ((platform.system() == "Darwin") and
+ (platform.mac_ver()[0] == '10.12')):
+ f.write('rpath=%s\n' % ':'.join(lapackblas.directories))
diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py
index 30cb52348f..d396916035 100644
--- a/var/spack/repos/builtin/packages/py-openpyxl/package.py
+++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyOpenpyxl(Package):
+
+class PyOpenpyxl(PythonPackage):
"""A Python library to read/write Excel 2007 xlsx/xlsm files"""
homepage = 'http://openpyxl.readthedocs.org/'
@@ -32,10 +33,5 @@ class PyOpenpyxl(Package):
version('2.4.0-a1', 'e5ca6d23ceccb15115d45cdf26e736fc')
- extends('python')
-
- depends_on('py-jdcal')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-jdcal', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py
new file mode 100644
index 0000000000..b560990f00
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ordereddict/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyOrdereddict(PythonPackage):
+ """A drop-in substitute for Py2.7's new collections.
+ OrderedDict that works in Python 2.4-2.6."""
+
+ homepage = "https://pypi.python.org/pypi/ordereddict"
+ url = "https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz"
+
+ version('1.1', 'a0ed854ee442051b249bfad0f638bbec')
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index 7f54fc5d76..c0da33054f 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -23,10 +23,18 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class PyPandas(Package):
- """pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with relational or labeled data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language."""
+
+class PyPandas(PythonPackage):
+ """pandas is a Python package providing fast, flexible, and expressive
+ data structures designed to make working with relational or
+ labeled data both easy and intuitive. It aims to be the
+ fundamental high-level building block for doing practical, real
+ world data analysis in Python. Additionally, it has the broader
+ goal of becoming the most powerful and flexible open source data
+ analysis / manipulation tool available in any language.
+
+ """
homepage = "http://pandas.pydata.org/"
url = "https://pypi.python.org/packages/source/p/pandas/pandas-0.16.0.tar.gz#md5=bfe311f05dc0c351f8955fbd1e296e73"
@@ -34,13 +42,9 @@ class PyPandas(Package):
version('0.16.1', 'fac4f25748f9610a3e00e765474bdea8')
version('0.18.0', 'f143762cd7a59815e348adf4308d2cf6')
- extends('python')
- depends_on('py-dateutil')
- depends_on('py-numpy')
- depends_on('py-setuptools')
- depends_on('py-pytz')
- depends_on('py-numexpr')
- depends_on('py-bottleneck')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-dateutil', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytz', type=('build', 'run'))
+ depends_on('py-numexpr', type=('build', 'run'))
+ depends_on('py-bottleneck', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pathlib2/package.py b/var/spack/repos/builtin/packages/py-pathlib2/package.py
new file mode 100644
index 0000000000..8951feff4c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pathlib2/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPathlib2(PythonPackage):
+ """Backport of pathlib from python 3.4"""
+
+ homepage = "https://pypi.python.org/pypi/pathlib2"
+ url = "https://pypi.io/packages/source/p/pathlib2/pathlib2-2.1.0.tar.gz"
+
+ version('2.1.0', '38e4f58b4d69dfcb9edb49a54a8b28d2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@:3.3.999')
diff --git a/var/spack/repos/builtin/packages/py-pathspec/package.py b/var/spack/repos/builtin/packages/py-pathspec/package.py
new file mode 100644
index 0000000000..e5030abc70
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pathspec/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPathspec(PythonPackage):
+ """pathspec extends the test loading and running features of unittest,
+ making it easier to write, find and run tests."""
+
+ homepage = "https://pypi.python.org/pypi/pathspec"
+
+ version('0.3.4', '2a4af9bf2dee98845d583ec61a00d05d',
+ url='https://pypi.python.org/packages/14/9d/c9d790d373d6f6938d793e9c549b87ad8670b6fa7fc6176485e6ef11c1a4/pathspec-0.3.4.tar.gz')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py
index 336ea37144..2a320eb76d 100644
--- a/var/spack/repos/builtin/packages/py-pbr/package.py
+++ b/var/spack/repos/builtin/packages/py-pbr/package.py
@@ -23,20 +23,14 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class PyPbr(Package):
- """PBR is a library that injects some useful and sensible default behaviors into your setuptools run."""
+
+class PyPbr(PythonPackage):
+ """PBR is a library that injects some useful and sensible default
+ behaviors into your setuptools run."""
homepage = "https://pypi.python.org/pypi/pbr"
url = "https://pypi.python.org/packages/source/p/pbr/pbr-1.8.1.tar.gz"
version('1.8.1', 'c8f9285e1a4ca6f9654c529b158baa3a')
- extends('python')
-
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
-
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py
index 7d8a635979..9ff1543018 100644
--- a/var/spack/repos/builtin/packages/py-periodictable/package.py
+++ b/var/spack/repos/builtin/packages/py-periodictable/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyPeriodictable(Package):
+
+class PyPeriodictable(PythonPackage):
"""nose extends the test loading and running features of unittest,
making it easier to write, find and run tests."""
@@ -33,9 +34,5 @@ class PyPeriodictable(Package):
version('1.4.1', '7246b63cc0b6b1be6e86b6616f9e866e')
- depends_on('py-numpy')
- depends_on('py-pyparsing')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-pyparsing', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py
index dd95af9643..5c194c44b6 100644
--- a/var/spack/repos/builtin/packages/py-pexpect/package.py
+++ b/var/spack/repos/builtin/packages/py-pexpect/package.py
@@ -24,14 +24,13 @@
##############################################################################
from spack import *
-class PyPexpect(Package):
+
+class PyPexpect(PythonPackage):
"""Pexpect allows easy control of interactive console applications."""
homepage = "https://pypi.python.org/pypi/pexpect"
- url = "https://pypi.python.org/packages/source/p/pexpect/pexpect-3.3.tar.gz"
+ url = "https://pypi.io/packages/source/p/pexpect/pexpect-4.2.1.tar.gz"
+ version('4.2.1', '3694410001a99dff83f0b500a1ca1c95')
version('3.3', '0de72541d3f1374b795472fed841dce8')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-ptyprocess', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py
index 68774c90c2..b7f1003e28 100644
--- a/var/spack/repos/builtin/packages/py-phonopy/package.py
+++ b/var/spack/repos/builtin/packages/py-phonopy/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyPhonopy(Package):
+
+class PyPhonopy(PythonPackage):
"""Phonopy is an open source package for phonon
calculations at harmonic and quasi-harmonic levels."""
homepage = "http://atztogo.github.io/phonopy/index.html"
@@ -32,11 +33,7 @@ class PyPhonopy(Package):
version('1.10.0', '973ed1bcea46e21b9bf747aab9061ff6')
- extends('python')
- depends_on('py-numpy')
- depends_on('py-scipy')
- depends_on('py-matplotlib')
- depends_on('py-pyyaml')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--home=%s' % prefix)
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pickleshare/package.py b/var/spack/repos/builtin/packages/py-pickleshare/package.py
new file mode 100644
index 0000000000..9bf9ff63fb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pickleshare/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPickleshare(PythonPackage):
+ """Tiny 'shelve'-like database with concurrency support"""
+
+ homepage = "https://pypi.python.org/pypi/pickleshare"
+ url = "https://pypi.io/packages/source/p/pickleshare/pickleshare-0.7.4.tar.gz"
+
+ version('0.7.4', '6a9e5dd8dfc023031f6b7b3f824cab12')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py
index dc4418fdfe..fb14fb9b27 100644
--- a/var/spack/repos/builtin/packages/py-pil/package.py
+++ b/var/spack/repos/builtin/packages/py-pil/package.py
@@ -24,15 +24,19 @@
##############################################################################
from spack import *
-class PyPil(Package):
- """The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities."""
+
+class PyPil(PythonPackage):
+ """The Python Imaging Library (PIL) adds image processing capabilities
+ to your Python interpreter. This library supports many file formats,
+ and provides powerful image processing and graphics capabilities."""
homepage = "http://www.pythonware.com/products/pil/"
url = "http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz"
version('1.1.7', 'fc14a54e1ce02a0225be8854bfba478e')
- extends('python')
+ provides('pil')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ # py-pil currently only works with Python2.
+ # If you are using Python 3, try using py-pillow instead.
+ depends_on('python@1.5.2:2.8')
diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py
index cdbc57e0a5..5729c5c3dd 100644
--- a/var/spack/repos/builtin/packages/py-pillow/package.py
+++ b/var/spack/repos/builtin/packages/py-pillow/package.py
@@ -23,77 +23,110 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+import sys
-class PyPillow(Package):
- """Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors. The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities."""
- homepage = "https://python-pillow.github.io/"
- url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
+class PyPillow(PythonPackage):
+ """Pillow is a fork of the Python Imaging Library (PIL). It adds image
+ processing capabilities to your Python interpreter. This library supports
+ many file formats, and provides powerful image processing and graphics
+ capabilities."""
+ homepage = "https://python-pillow.org/"
+ url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
+
+ # TODO: This version should be deleted once the next release comes out.
+ # TODO: It fixes a bug that prevented us from linking to Tk/Tcl.
+ # TODO: Tk/Tcl support is necessary for tkinter bitmap and photo images.
+ # TODO: If you require this support, run the following command:
+ # TODO: `spack install py-pillow@3.3.0.dev0 ^python+tk`
+ version('3.3.0.dev0', git='https://github.com/python-pillow/Pillow.git',
+ commit='30eced62868141a6c859a4370efd40b9434a7c3f')
+
+ version('3.2.0', '7cfd093c11205d9e2ebe3c51dfcad510', preferred=True)
version('3.0.0', 'fc8ac44e93da09678eac7e30c9b7377d')
- provides('PIL')
+
+ provides('pil')
# These defaults correspond to Pillow defaults
variant('jpeg', default=True, description='Provide JPEG functionality')
variant('zlib', default=True, description='Access to compressed PNGs')
variant('tiff', default=False, description='Access to TIFF files')
variant('freetype', default=False, description='Font related services')
- variant('tk', default=False, description='Support for tkinter bitmap and photo images')
variant('lcms', default=False, description='Color management')
+ variant('jpeg2000', default=False,
+ description='Provide JPEG 2000 functionality')
# Spack does not (yet) support these modes of building
- # variant('webp', default=False, description='')
- # variant('webpmux', default=False, description='')
- # variant('jpeg2000', default=False, description='')
+ # variant('webp', default=False, description='Provide the WebP format')
+ # variant('webpmux', default=False,
+ # description='WebP metadata, relies on WebP support')
+ # variant('imagequant', default=False,
+ # description='Provide improved color quantization')
- extends('python')
- depends_on('binutils')
- depends_on('py-setuptools')
+ # Required dependencies
+ depends_on('binutils', type='build', when=sys.platform != 'darwin')
+ depends_on('py-setuptools', type='build')
- depends_on('jpeg', when='+jpeg') # BUG: It will use the system libjpeg anyway
+ # Recommended dependencies
+ depends_on('jpeg', when='+jpeg')
depends_on('zlib', when='+zlib')
- depends_on('tiff', when='+tiff')
+
+ # Optional dependencies
+ depends_on('libtiff', when='+tiff')
depends_on('freetype', when='+freetype')
depends_on('lcms', when='+lcms')
- depends_on('tcl', when='+tk')
- depends_on('tk', when='+tk')
+ depends_on('openjpeg', when='+jpeg2000')
+
+ # Spack does not (yet) support these modes of building
+ # depends_on('webp', when='+webp')
+ # depends_on('webpmux', when='+webpmux')
+ # depends_on('imagequant', when='+imagequant')
+
+ phases = ['build_ext', 'install']
+
+ def patch(self):
+ """Patch setup.py to provide lib and include directories
+ for dependencies."""
- def install(self, spec, prefix):
- libpath=[]
+ spec = self.spec
+ setup = FileFilter('setup.py')
if '+jpeg' in spec:
- libpath.append(join_path(spec['jpeg'].prefix, 'lib'))
+ setup.filter('JPEG_ROOT = None',
+ 'JPEG_ROOT = ("{0}", "{1}")'.format(
+ spec['jpeg'].prefix.lib,
+ spec['jpeg'].prefix.include))
if '+zlib' in spec:
- libpath.append(join_path(spec['zlib'].prefix, 'lib'))
+ setup.filter('ZLIB_ROOT = None',
+ 'ZLIB_ROOT = ("{0}", "{1}")'.format(
+ spec['zlib'].prefix.lib,
+ spec['zlib'].prefix.include))
if '+tiff' in spec:
- libpath.append(join_path(spec['tiff'].prefix, 'lib'))
+ setup.filter('TIFF_ROOT = None',
+ 'TIFF_ROOT = ("{0}", "{1}")'.format(
+ spec['libtiff'].prefix.lib,
+ spec['libtiff'].prefix.include))
if '+freetype' in spec:
- libpath.append(join_path(spec['freetype'].prefix, 'lib'))
+ setup.filter('FREETYPE_ROOT = None',
+ 'FREETYPE_ROOT = ("{0}", "{1}")'.format(
+ spec['freetype'].prefix.lib,
+ spec['freetype'].prefix.include))
if '+lcms' in spec:
- libpath.append(join_path(spec['lcms'].prefix, 'lib'))
-
- # This has not been tested, and likely needs some other treatment.
- #if '+tk' in spec:
- # libpath.append(join_path(spec['tcl'].prefix, 'lib'))
- # libpath.append(join_path(spec['tk'].prefix, 'lib'))
-
- # -------- Building
- cmd = ['build_ext',
- '--%s-jpeg' % ('enable' if '+jpeg' in spec else 'disable'),
- '--%s-zlib' % ('enable' if '+zlib' in spec else 'disable'),
- '--%s-tiff' % ('enable' if '+tiff' in spec else 'disable'),
- '--%s-freetype' % ('enable' if '+freetype' in spec else 'disable'),
- '--%s-lcms' % ('enable' if '+lcms' in spec else 'disable'),
- '-L'+':'.join(libpath) # NOTE: This does not make it find libjpeg
- ]
-
- #if '+tk' in spec:
- # cmd.extend(['--enable-tcl', '--enable-tk'])
- #else:
- # cmd.extend(['--disable-tcl', '--disable-tk'])
-
- # --------- Installation
- cmd.extend(['install', '--prefix=%s' % prefix])
-
- python('setup.py', *cmd)
+ setup.filter('LCMS_ROOT = None',
+ 'LCMS_ROOT = ("{0}", "{1}")'.format(
+ spec['lcms'].prefix.lib,
+ spec['lcms'].prefix.include))
+ if '+jpeg2000' in spec:
+ setup.filter('JPEG2K_ROOT = None',
+ 'JPEG2K_ROOT = ("{0}", "{1}")'.format(
+ spec['openjpeg'].prefix.lib,
+ spec['openjpeg'].prefix.include))
+
+ def build_ext_args(self, spec, prefix):
+ def variant_to_flag(variant):
+ able = 'enable' if '+{0}'.format(variant) in spec else 'disable'
+ return '--{0}-{1}'.format(able, variant)
+
+ variants = ['jpeg', 'zlib', 'tiff', 'freetype', 'lcms', 'jpeg2000']
+ return list(map(variant_to_flag, variants))
diff --git a/var/spack/repos/builtin/packages/py-pip/package.py b/var/spack/repos/builtin/packages/py-pip/package.py
new file mode 100644
index 0000000000..73e1661245
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pip/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPip(PythonPackage):
+ """The PyPA recommended tool for installing Python packages."""
+
+ homepage = "https://pypi.python.org/pypi/pip"
+ url = "https://pypi.io/packages/source/p/pip/pip-9.0.1.tar.gz"
+
+ version('9.0.1', '35f01da33009719497f01a4ba69d63c9')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py
new file mode 100644
index 0000000000..f5a1e537e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ply/package.py
@@ -0,0 +1,33 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPly(PythonPackage):
+ """PLY is nothing more than a straightforward lex/yacc implementation."""
+ homepage = "http://www.dabeaz.com/ply"
+ url = "http://www.dabeaz.com/ply/ply-3.8.tar.gz"
+
+ version('3.8', '94726411496c52c87c2b9429b12d5c50')
diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py
index 062bfe9c03..3293d94cd6 100644
--- a/var/spack/repos/builtin/packages/py-pmw/package.py
+++ b/var/spack/repos/builtin/packages/py-pmw/package.py
@@ -24,14 +24,11 @@
##############################################################################
from spack import *
-class PyPmw(Package):
- """Pmw is a toolkit for building high-level compound widgets, or megawidgets, constructed using other widgets as component parts."""
+
+class PyPmw(PythonPackage):
+ """Pmw is a toolkit for building high-level compound widgets, or
+ megawidgets, constructed using other widgets as component parts."""
homepage = "https://pypi.python.org/pypi/Pmw"
url = "https://pypi.python.org/packages/source/P/Pmw/Pmw-2.0.0.tar.gz"
version('2.0.0', 'c7c3f26c4f5abaa99807edefee578fc0')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py
index e3edc7b706..2203f68af0 100644
--- a/var/spack/repos/builtin/packages/py-prettytable/package.py
+++ b/var/spack/repos/builtin/packages/py-prettytable/package.py
@@ -22,23 +22,18 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyPrettytable(Package):
- """
- PrettyTable is a simple Python library designed to make
+class PyPrettytable(PythonPackage):
+ """PrettyTable is a simple Python library designed to make
it quick and easy to represent tabular data in visually
- appealing ASCII tables
+ appealing ASCII tables.
"""
+
homepage = "https://code.google.com/archive/p/prettytable/"
url = "https://pypi.python.org/packages/e0/a1/36203205f77ccf98f3c6cf17cf068c972e6458d7e58509ca66da949ca347/prettytable-0.7.2.tar.gz"
version('0.7.2', 'a6b80afeef286ce66733d54a0296b13b')
- extends("python")
- depends_on("py-setuptools")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on("py-setuptools", type='build')
diff --git a/var/spack/repos/builtin/packages/py-proj/package.py b/var/spack/repos/builtin/packages/py-proj/package.py
new file mode 100644
index 0000000000..949aab88c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-proj/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyProj(PythonPackage):
+ """Python interface to the PROJ.4 Library."""
+ homepage = "http://jswhit.github.io/pyproj/"
+ url = "https://github.com/jswhit/pyproj/tarball/v1.9.5.1rel"
+
+ # This is not a tagged release of pyproj.
+ # The changes in this "version" fix some bugs, especially with Python3 use.
+ version('1.9.5.1.1', 'd035e4bc704d136db79b43ab371b27d2',
+ url='https://www.github.com/jswhit/pyproj/tarball/0be612cc9f972e38b50a90c946a9b353e2ab140f')
+
+ version('1.9.5.1', 'a4b80d7170fc82aee363d7f980279835')
+
+ depends_on('py-cython', type='build')
+ depends_on('py-setuptools', type='build')
+
+ # NOTE: py-proj does NOT depends_on('proj').
+ # The py-proj git repo actually includes the correct version of PROJ.4,
+ # which is built internally as part of the py-proj build.
+ # Adding depends_on('proj') will cause mysterious build errors.
diff --git a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
new file mode 100644
index 0000000000..da48cb932f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPromptToolkit(PythonPackage):
+ """Library for building powerful interactive command lines in Python"""
+
+ homepage = "https://pypi.python.org/pypi/prompt_toolkit"
+ url = "https://pypi.io/packages/source/p/prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
+
+ version('1.0.9', 'a39f91a54308fb7446b1a421c11f227c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six@1.9.0:', type=('build', 'run'))
+ depends_on('py-wcwidth', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py
new file mode 100644
index 0000000000..4cdb3801a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyProtobuf(PythonPackage):
+ """Protocol buffers are Google's language-neutral, platform-neutral,
+ extensible mechanism for serializing structured data - think XML, but
+ smaller, faster, and simpler. You define how you want your data to be
+ structured once, then you can use special generated source code to easily
+ write and read your structured data to and from a variety of data streams
+ and using a variety of languages."""
+
+ homepage = 'https://developers.google.com/protocol-buffers/'
+ url = 'https://pypi.python.org/packages/source/p/protobuf/protobuf-3.0.0b2.tar.gz'
+
+ version('3.0.0b2', 'f0d3bd2394345a9af4a277cd0302ae83')
+ version('2.6.1', '6bf843912193f70073db7f22e2ea55e2')
+ version('2.5.0', '338813f3629d59e9579fed9035ecd457')
+ version('2.4.1', '72f5141d20ab1bcae6b1e00acfb1068a')
+ version('2.3.0', 'bb020c962f252fe81bfda8fb433bafdd')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py
new file mode 100644
index 0000000000..7aa776d2a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-psutil/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPsutil(Package):
+ """psutil is a cross-platform library for retrieving information on
+ running processes and system utilization (CPU, memory, disks, network)
+ in Python."""
+
+ homepage = "https://pypi.python.org/pypi/psutil"
+ url = "https://pypi.python.org/packages/d9/c8/8c7a2ab8ec108ba9ab9a4762c5a0d67c283d41b13b5ce46be81fdcae3656/psutil-5.0.1.tar.gz"
+
+ version('5.0.1', '153dc8be94badc4072016ceeac7808dc')
+
+ extends('python')
+ depends_on('python@2.6:')
+ depends_on('py-setuptools', type='build')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-ptyprocess/package.py b/var/spack/repos/builtin/packages/py-ptyprocess/package.py
new file mode 100644
index 0000000000..2419793227
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ptyprocess/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPtyprocess(PythonPackage):
+ """Run a subprocess in a pseudo terminal"""
+
+ homepage = "https://pypi.python.org/pypi/ptyprocess"
+ url = "https://pypi.io/packages/source/p/ptyprocess/ptyprocess-0.5.1.tar.gz"
+
+ version('0.5.1', '94e537122914cc9ec9c1eadcd36e73a1')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pudb/package.py b/var/spack/repos/builtin/packages/py-pudb/package.py
new file mode 100644
index 0000000000..66896bd83f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pudb/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class PyPudb(PythonPackage):
+ """Full-screen console debugger for Python"""
+
+ homepage = "http://mathema.tician.de/software/pudb"
+ url = "https://pypi.io/packages/source/p/pudb/pudb-2016.2.tar.gz"
+
+ version('2016.2', '4573b70163329c1cb59836a357bfdf7c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-urwid@1.1.1:', type=('build', 'run'))
+ depends_on('py-pygments@1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py
new file mode 100644
index 0000000000..5a963105bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-py/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPy(PythonPackage):
+ """library with cross-python path, ini-parsing, io, code, log facilities"""
+
+ homepage = "http://pylib.readthedocs.io/en/latest/"
+ url = "https://pypi.python.org/packages/source/p/py/py-1.4.31.tar.gz"
+
+ version('1.4.31', '5d2c63c56dc3f2115ec35c066ecd582b')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py
new file mode 100644
index 0000000000..bb404c61f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPy2cairo(Package):
+ """Pycairo is a set of Python bindings for the cairo graphics library."""
+
+ homepage = "https://www.cairographics.org/pycairo/"
+ url = "https://cairographics.org/releases/py2cairo-1.10.0.tar.bz2"
+
+ version('1.10.0', '20337132c4ab06c1146ad384d55372c5')
+
+ extends('python')
+
+ depends_on('cairo+X')
+ depends_on('pixman')
+
+ def install(self, spec, prefix):
+ python('waf', 'configure', '--prefix={0}'.format(prefix))
+ python('waf', 'build')
+ python('waf', 'install')
diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py
index 9c6e219264..1db080ac97 100644
--- a/var/spack/repos/builtin/packages/py-py2neo/package.py
+++ b/var/spack/repos/builtin/packages/py-py2neo/package.py
@@ -22,14 +22,14 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyPy2neo(Package):
- """FIXME: put a proper description of your package here."""
- # FIXME: add a proper url for your package's homepage here.
- homepage = "http://www.example.com"
+class PyPy2neo(PythonPackage):
+ """Py2neo is a client library and toolkit for working with Neo4j from
+ within Python applications and from the command line."""
+
+ homepage = "http://py2neo.org/"
url = "https://github.com/nigelsmall/py2neo/archive/py2neo-2.0.8.tar.gz"
version('2.0.8', 'e3ec5172a9e006515ef4155688a05a55')
@@ -38,9 +38,4 @@ class PyPy2neo(Package):
version('2.0.5', '143b1f9c0aa22faf170c1b9f84c7343b')
version('2.0.4', 'b3f7efd3344dc3f66db4eda11e5899f7')
- depends_on("py-setuptools")
- extends("python")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ depends_on("py-setuptools", type='build')
diff --git a/var/spack/repos/builtin/packages/py-pychecker/package.py b/var/spack/repos/builtin/packages/py-pychecker/package.py
index 137c5f491c..de09b380c9 100644
--- a/var/spack/repos/builtin/packages/py-pychecker/package.py
+++ b/var/spack/repos/builtin/packages/py-pychecker/package.py
@@ -24,14 +24,10 @@
##############################################################################
from spack import *
-class PyPychecker(Package):
- """"""
+
+class PyPychecker(PythonPackage):
+ """Python source code checking tool."""
homepage = "http://pychecker.sourceforge.net/"
url = "http://sourceforge.net/projects/pychecker/files/pychecker/0.8.19/pychecker-0.8.19.tar.gz"
version('0.8.19', 'c37182863dfb09209d6ba4f38fce9d2b')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
new file mode 100644
index 0000000000..3e668a2704
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPycodestyle(PythonPackage):
+ """pycodestyle is a tool to check your Python code against some of the
+ style conventions in PEP 8. Note: formerly called pep8."""
+
+ homepage = "https://github.com/PyCQA/pycodestyle"
+ url = "https://github.com/PyCQA/pycodestyle/archive/2.0.0.tar.gz"
+
+ version('2.0.0', '5c3e90001f538bf3b7896d60e92eb6f6')
+ version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9')
+ version('1.6.2', '8df18246d82ddd3d19ffe7518f983955')
+ version('1.6.1', '9d59bdc7c60f46f7cee86c732e28aa1a')
+ version('1.6', '340fa7e39bb44fb08db6eddf7cdc880a')
+ version('1.5.7', '6d0f5fc7d95755999bc9275cad5cbf3e')
+ version('1.5.6', 'c5c30e3d267b48bf3dfe7568e803a813')
+ version('1.5.5', 'cfa12df9b86b3a1dfb13aced1927e12f')
+ version('1.5.4', '3977a760829652543544074c684610ee')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-pycodestyle requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py
index c33769c526..8de5c39d32 100644
--- a/var/spack/repos/builtin/packages/py-pycparser/package.py
+++ b/var/spack/repos/builtin/packages/py-pycparser/package.py
@@ -24,16 +24,12 @@
##############################################################################
from spack import *
-class PyPycparser(Package):
- """pycparser is a complete parser of the C language, written in pure python"""
+
+class PyPycparser(PythonPackage):
+ """A complete parser of the C language, written in pure python."""
homepage = "https://github.com/eliben/pycparser"
url = "https://pypi.python.org/packages/source/p/pycparser/pycparser-2.13.tar.gz"
version('2.13', 'e4fe1a2d341b22e25da0d22f034ef32f')
-
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pycurl/package.py b/var/spack/repos/builtin/packages/py-pycurl/package.py
new file mode 100644
index 0000000000..81a2a35064
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycurl/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPycurl(PythonPackage):
+ """PycURL is a Python interface to libcurl. PycURL can be used to fetch
+ objects identified by a URL from a Python program."""
+
+ homepage = "http://pycurl.io/"
+ url = "https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz"
+
+ version('7.43.0', 'c94bdba01da6004fa38325e9bd6b9760')
+
+ depends_on('python@2.6:')
+ depends_on('py-setuptools', type='build')
+ depends_on('curl@7.19.0:')
diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py
new file mode 100644
index 0000000000..600a34cdfc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py
@@ -0,0 +1,33 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPydatalog(PythonPackage):
+ """pyDatalog adds logic programming to Python."""
+ homepage = 'https://pypi.python.org/pypi/pyDatalog/'
+ url = 'https://pypi.python.org/packages/09/0b/2670eb9c0027aacfb5b5024ca75e5fee2f1261180ab8797108ffc941158a/pyDatalog-0.17.1.zip'
+
+ version('0.17.1', '6b2682301200068d208d6f2d01723939')
diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py
index 0c4a7a36cc..d586f14f0d 100644
--- a/var/spack/repos/builtin/packages/py-pyelftools/package.py
+++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py
@@ -24,14 +24,11 @@
##############################################################################
from spack import *
-class PyPyelftools(Package):
- """A pure-Python library for parsing and analyzing ELF files and DWARF debugging information"""
+
+class PyPyelftools(PythonPackage):
+ """A pure-Python library for parsing and analyzing ELF files and DWARF
+ debugging information"""
homepage = "https://pypi.python.org/pypi/pyelftools"
url = "https://pypi.python.org/packages/source/p/pyelftools/pyelftools-0.23.tar.gz"
version('0.23', 'aa7cefa8bd2f63d7b017440c9084f310')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py
new file mode 100644
index 0000000000..53674bb6e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPyflakes(PythonPackage):
+ """A simple program which checks Python source files for errors."""
+
+ homepage = "https://github.com/PyCQA/pyflakes"
+ url = "https://github.com/PyCQA/pyflakes/archive/1.3.0.tar.gz"
+
+ version('1.3.0', 'a76173deb7a84fe860c0b60e2fbcdfe2')
+ version('1.2.3', '2ac2e148a5c46b6bb06c4785be76f7cc')
+ version('1.2.2', 'fe759b9381a6500e67a2ddbbeb5161a4')
+ version('1.2.1', '444a06b256e0a70e41c11698b7190e84')
+ version('1.2.0', '5d1c87bf09696c4c35dc3103f2a1185c')
+ version('1.1.0', '4e18bf78c0455ebcd41e5d6104392c88')
+ version('1.0.0', 'e2ea22a825c5100f12e54b71771cde71')
+ version('0.9.2', 'd02d5f68e944085fd6ec163a34737a96')
+ version('0.9.1', '8108d2248e93ca6a315fa2dd31ee9bb1')
+ version('0.9.0', '43c2bcee88606bde55dbf25a253ef886')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-pyflakes requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pygments/package.py b/var/spack/repos/builtin/packages/py-pygments/package.py
index fedf3d068d..42e3366cdf 100644
--- a/var/spack/repos/builtin/packages/py-pygments/package.py
+++ b/var/spack/repos/builtin/packages/py-pygments/package.py
@@ -24,16 +24,15 @@
##############################################################################
from spack import *
-class PyPygments(Package):
+
+class PyPygments(PythonPackage):
"""Pygments is a syntax highlighting package written in Python."""
+
homepage = "https://pypi.python.org/pypi/pygments"
url = "https://pypi.python.org/packages/source/P/Pygments/Pygments-2.0.1.tar.gz"
+ version('2.1.3', 'ed3fba2467c8afcda4d317e4ef2c6150')
version('2.0.1', 'e0daf4c14a4fe5b630da765904de4d6c')
version('2.0.2', '238587a1370d62405edabd0794b3ec4a')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pygobject/package.py b/var/spack/repos/builtin/packages/py-pygobject/package.py
new file mode 100644
index 0000000000..1dae1a128b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygobject/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPygobject(AutotoolsPackage):
+ """bindings for the GLib, and GObject,
+ to be used in Python."""
+
+ homepage = "https://pypi.python.org/pypi/pygobject"
+
+ # FIXME: This URL is no longer available for download from PyPi
+ url = "https://pypi.python.org/packages/6d/15/97c8b5ccca2be14cf59a2f79e15e3a82a1c3408a6b76b4107689a8b94846/pygobject-2.28.3.tar.bz2"
+
+ version('2.28.3', 'aa64900b274c4661a5c32e52922977f9')
+
+ extends('python')
+ depends_on("libffi")
+ depends_on('glib')
+ depends_on('py-py2cairo')
+ depends_on('gobject-introspection')
+
+ patch('pygobject-2.28.6-introspection-1.patch')
+
+ def install(self, spec, prefix):
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch
new file mode 100644
index 0000000000..ef96ba3352
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch
@@ -0,0 +1,35 @@
+Submitted By: Andrew Benton <andy@benton.eu.com>
+Date: 2012-03-29
+Initial Package Version: 2.28.6
+Upstream Status: not submitted
+Origin: me
+Description: Fixes compiling with a recent version of gobject-introspection
+
+--- pygobject-2.28.6/gi/pygi-info.c-orig 2012-03-29 02:27:37.494228732 +0100
++++ pygobject-2.28.6/gi/pygi-info.c 2012-03-29 02:26:37.735132310 +0100
+@@ -162,9 +162,6 @@
+ case GI_INFO_TYPE_CONSTANT:
+ type = &PyGIConstantInfo_Type;
+ break;
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+- type = &PyGIErrorDomainInfo_Type;
+- break;
+ case GI_INFO_TYPE_UNION:
+ type = &PyGIUnionInfo_Type;
+ break;
+@@ -481,7 +478,6 @@
+ case GI_INFO_TYPE_INVALID:
+ case GI_INFO_TYPE_FUNCTION:
+ case GI_INFO_TYPE_CONSTANT:
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+ case GI_INFO_TYPE_VALUE:
+ case GI_INFO_TYPE_SIGNAL:
+ case GI_INFO_TYPE_PROPERTY:
+@@ -860,7 +856,6 @@
+ case GI_INFO_TYPE_INVALID:
+ case GI_INFO_TYPE_FUNCTION:
+ case GI_INFO_TYPE_CONSTANT:
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+ case GI_INFO_TYPE_VALUE:
+ case GI_INFO_TYPE_SIGNAL:
+ case GI_INFO_TYPE_PROPERTY:
diff --git a/var/spack/repos/builtin/packages/py-pygtk/package.py b/var/spack/repos/builtin/packages/py-pygtk/package.py
new file mode 100644
index 0000000000..56e0b39fd5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygtk/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPygtk(AutotoolsPackage):
+ """bindings for the Gtk in Python"""
+ homepage = "http://www.pygtk.org/"
+ url = "http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.24/pygtk-2.24.0.tar.gz"
+
+ version('2.24.0', 'd27c7f245a9e027f6b6cd9acb7468e36')
+
+ extends('python')
+ depends_on("libffi")
+ depends_on('cairo')
+ depends_on('glib')
+ depends_on('gtkplus')
+ depends_on('py-pygobject')
+ depends_on('py-py2cairo')
+
+ def install(self, spec, prefix):
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py
index 66118e8228..84830c9bcf 100644
--- a/var/spack/repos/builtin/packages/py-pylint/package.py
+++ b/var/spack/repos/builtin/packages/py-pylint/package.py
@@ -23,9 +23,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import re
-class PyPylint(Package):
+
+class PyPylint(PythonPackage):
"""array processing for numbers, strings, records, and objects."""
homepage = "https://pypi.python.org/pypi/pylint"
url = "https://pypi.python.org/packages/source/p/pylint/pylint-1.4.1.tar.gz"
@@ -33,9 +33,9 @@ class PyPylint(Package):
version('1.4.1', 'df7c679bdcce5019389038847e4de622')
version('1.4.3', '5924c1c7ca5ca23647812f5971d0ea44')
- extends('python')
- depends_on('py-nose')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ extends('python', ignore=r'bin/pytest')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-astroid', type=('build', 'run'))
+ depends_on('py-logilab-common', type=('build', 'run'))
+ depends_on('py-nose', type='build')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py
index f762789dea..f10b6d807f 100644
--- a/var/spack/repos/builtin/packages/py-pypar/package.py
+++ b/var/spack/repos/builtin/packages/py-pypar/package.py
@@ -24,15 +24,21 @@
##############################################################################
from spack import *
-class PyPypar(Package):
- """Pypar is an efficient but easy-to-use module that allows programs written in Python to run in parallel on multiple processors and communicate using MPI."""
+
+class PyPypar(PythonPackage):
+ """Pypar is an efficient but easy-to-use module that allows programs
+ written in Python to run in parallel on multiple processors and
+ communicate using MPI."""
homepage = "http://code.google.com/p/pypar/"
- url = "https://pypar.googlecode.com/files/pypar-2.1.5_108.tgz"
+ url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-2.1.5_108.tgz"
+
+ version('2.1.5_108', '7a1f28327d2a3b679f9455c843d850b8')
- version('2.1.5_108', '7a1f28327d2a3b679f9455c843d850b8', url='https://pypar.googlecode.com/files/pypar-2.1.5_108.tgz')
- extends('python')
depends_on('mpi')
+ depends_on('py-numpy', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ return "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-%s.tgz" % version
- def install(self, spec, prefix):
- with working_dir('source'):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ def build_directory(self):
+ return 'source'
diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py
index 0423aa3bdb..cb158a76d6 100644
--- a/var/spack/repos/builtin/packages/py-pyparsing/package.py
+++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py
@@ -24,14 +24,10 @@
##############################################################################
from spack import *
-class PyPyparsing(Package):
+
+class PyPyparsing(PythonPackage):
"""A Python Parsing Module."""
homepage = "https://pypi.python.org/pypi/pyparsing"
url = "https://pypi.python.org/packages/source/p/pyparsing/pyparsing-2.0.3.tar.gz"
version('2.0.3', '0fe479be09fc2cf005f753d3acc35939')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyqt/package.py b/var/spack/repos/builtin/packages/py-pyqt/package.py
index b090e25682..e1e87880e0 100644
--- a/var/spack/repos/builtin/packages/py-pyqt/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class PyPyqt(Package):
"""PyQt is a set of Python v2 and v3 bindings for Digia's Qt
application framework and runs on all platforms supported by Qt
@@ -34,11 +35,11 @@ class PyPyqt(Package):
version('4.11.3', '997c3e443165a89a559e0d96b061bf70')
extends('python')
- depends_on('py-sip')
+ depends_on('py-sip', type=('build', 'run'))
# TODO: allow qt5 when conditional deps are supported.
# TODO: Fix version matching so that @4 works like @:4
- depends_on('qt@:4')
+ depends_on('qt@:4+phonon+dbus')
def install(self, spec, prefix):
python('configure.py',
diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py
index affee6c55a..961aef7864 100644
--- a/var/spack/repos/builtin/packages/py-pyside/package.py
+++ b/var/spack/repos/builtin/packages/py-pyside/package.py
@@ -25,26 +25,30 @@
from spack import *
import os
-class PyPyside(Package):
+
+class PyPyside(PythonPackage):
"""Python bindings for Qt."""
homepage = "https://pypi.python.org/pypi/pyside"
url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz"
- version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d')
+ version('1.2.4', '3cb7174c13bd45e3e8f77638926cb8c0') # rpath problems
+ version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d', preferred=True)
- # TODO: make build dependency
- # depends_on("cmake")
+ depends_on('cmake', type='build')
- extends('python')
- depends_on('py-setuptools')
- depends_on('qt@:4')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-sphinx', type=('build', 'run'))
+ depends_on('qt@4.5:4.9')
+ depends_on('libxml2@2.6.32:')
+ depends_on('libxslt@1.1.19:')
def patch(self):
"""Undo PySide RPATH handling and add Spack RPATH."""
# Figure out the special RPATH
pypkg = self.spec['python'].package
rpath = self.rpath
- rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'PySide'))
+ rpath.append(os.path.join(
+ self.prefix, pypkg.site_packages_dir, 'PySide'))
# Add Spack's standard CMake args to the sub-builds.
# They're called BY setup.py so we have to patch it.
@@ -57,13 +61,23 @@ class PyPyside(Package):
# PySide tries to patch ELF files to remove RPATHs
# Disable this and go with the one we set.
- filter_file(
- r'^\s*rpath_cmd\(pyside_path, srcpath\)',
- r'#rpath_cmd(pyside_path, srcpath)',
- 'pyside_postinstall.py')
+ if self.spec.satisfies('@1.2.4:'):
+ rpath_file = 'setup.py'
+ else:
+ rpath_file = 'pyside_postinstall.py'
+
+ filter_file(r'(^\s*)(rpath_cmd\(.*\))', r'\1#\2', rpath_file)
+
+ # TODO: rpath handling for PySide 1.2.4 still doesn't work.
+ # PySide can't find the Shiboken library, even though it comes
+ # bundled with it and is installed in the same directory.
+ # PySide does not provide official support for
+ # Python 3.5, but it should work fine
+ filter_file("'Programming Language :: Python :: 3.4'",
+ "'Programming Language :: Python :: 3.4',\r\n "
+ "'Programming Language :: Python :: 3.5'",
+ "setup.py")
- def install(self, spec, prefix):
- python('setup.py', 'install',
- '--prefix=%s' % prefix,
- '--jobs=%s' % make_jobs)
+ def build_args(self, spec, prefix):
+ return ['--jobs={0}'.format(make_jobs)]
diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py
index 47592fb3d1..3d9bfb2c2f 100644
--- a/var/spack/repos/builtin/packages/py-pytables/package.py
+++ b/var/spack/repos/builtin/packages/py-pytables/package.py
@@ -23,21 +23,24 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import re
-class PyPytables(Package):
- """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data."""
+
+class PyPytables(PythonPackage):
+ """PyTables is a package for managing hierarchical datasets and designed to
+ efficiently and easily cope with extremely large amounts of data."""
homepage = "http://www.pytables.org/"
url = "https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz"
+ version('3.3.0', '056c161ae0fd2d6e585b766adacf3b0b',
+ url='https://github.com/PyTables/PyTables/archive/v3.3.0.tar.gz')
version('3.2.2', '7cbb0972e4d6580f629996a5bed92441')
- extends('python')
- depends_on('hdf5')
- depends_on('py-numpy')
- depends_on('py-numexpr')
- depends_on('py-cython')
+ depends_on('hdf5@1.8.0:1.8.999')
+ depends_on('py-numpy@1.8.0:', type=('build', 'run'))
+ depends_on('py-numexpr@2.5.2:', type=('build', 'run'))
+ depends_on('py-cython', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
- def install(self, spec, prefix):
- env["HDF5_DIR"] = spec['hdf5'].prefix
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('HDF5_DIR', self.spec['hdf5'].prefix)
diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py
new file mode 100644
index 0000000000..4af49306c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPytest(PythonPackage):
+ """pytest: simple powerful testing with Python."""
+
+ homepage = "http://doc.pytest.org/en/latest/"
+ url = "https://pypi.python.org/packages/source/p/pytest/pytest-3.0.2.tar.gz"
+
+ version('3.0.2', '61dc36e65a6f6c11c53b1388e043a9f5',
+ url="https://pypi.python.org/packages/2b/05/e20806c99afaff43331f5fd8770bb346145303882f98ef3275fa1dd66f6d/pytest-3.0.2.tar.gz")
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-py@1.4.29:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py
index ae6393986d..9ed085f031 100644
--- a/var/spack/repos/builtin/packages/py-python-daemon/package.py
+++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyPythonDaemon(Package):
+
+class PyPythonDaemon(PythonPackage):
"""Library to implement a well-behaved Unix daemon process.
This library implements the well-behaved daemon specification of
@@ -41,10 +42,5 @@ class PyPythonDaemon(Package):
version('2.0.5', '73e7f49f525c51fa4a995aea4d80de41')
- extends("python")
- depends_on("py-setuptools")
- depends_on("py-lockfile")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ depends_on("py-setuptools", type='build')
+ depends_on("py-lockfile", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py
index caf2c90e73..7a905f9f98 100644
--- a/var/spack/repos/builtin/packages/py-pytz/package.py
+++ b/var/spack/repos/builtin/packages/py-pytz/package.py
@@ -24,16 +24,17 @@
##############################################################################
from spack import *
-class PyPytz(Package):
+
+class PyPytz(PythonPackage):
"""World timezone definitions, modern and historical."""
+
homepage = "https://pypi.python.org/pypi/pytz"
url = "https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.gz"
+ version('2016.6.1', 'b6c28a3b968bc1d8badfb61b93874e03',
+ url="https://pypi.python.org/packages/5d/8e/6635d8f3f9f48c03bb925fab543383089858271f9cfd1216b83247e8df94/pytz-2016.6.1.tar.gz")
version('2014.10', 'eb1cb941a20c5b751352c52486aa1dd7')
version('2015.4', '417a47b1c432d90333e42084a605d3d8')
version('2016.3', 'abae92c3301b27bd8a9f56b14f52cb29')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py
index c0e22ba681..94d8fdd0e6 100644
--- a/var/spack/repos/builtin/packages/py-pyyaml/package.py
+++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py
@@ -24,14 +24,10 @@
##############################################################################
from spack import *
-class PyPyyaml(Package):
+
+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-3.11.tar.gz"
version('3.11', 'f50e08ef0fe55178479d3a618efe21db')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-readme-renderer/package.py b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
new file mode 100644
index 0000000000..2abe4bac74
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyReadmeRenderer(PythonPackage):
+ """readme_renderer is a library for rendering "readme" descriptions
+ for Warehouse."""
+
+ homepage = "https://github.com/pypa/readme_renderer"
+ url = "https://pypi.python.org/packages/f2/6e/ef1bc3a24eb14e14574aba9dc1bd50bc9a5e7cc880e8ff9cadd385b4fb37/readme_renderer-16.0.tar.gz"
+
+ version('16.0', '70321cea986956bcf2deef9981569f39')
+
+ depends_on('python@2.6:2.7,3.2:3.3')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-bleach', type=('build', 'run'))
+ depends_on('py-docutils@0.13.1:', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py
new file mode 100644
index 0000000000..871016fdb1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-restview/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyRestview(PythonPackage):
+ """A viewer for ReStructuredText documents that renders them on the fly."""
+
+ homepage = "https://mg.pov.lt/restview/"
+ url = "https://pypi.python.org/packages/source/r/restview/restview-2.6.1.tar.gz"
+
+ version('2.6.1', 'ac8b70e15b8f1732d1733d674813666b')
+
+ depends_on('python@2.7.0:2.7.999,3.3:3.5')
+ depends_on('py-docutils@0.13.1:', type=('build', 'run'))
+ depends_on('py-readme-renderer', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py
index 03fd2b4a06..284a41894a 100644
--- a/var/spack/repos/builtin/packages/py-rpy2/package.py
+++ b/var/spack/repos/builtin/packages/py-rpy2/package.py
@@ -24,18 +24,25 @@
##############################################################################
from spack import *
-class PyRpy2(Package):
- """rpy2 is a redesign and rewrite of rpy. It is providing a low-level interface to R from Python, a proposed high-level interface, including wrappers to graphical libraries, as well as R-like structures and functions."""
+
+class PyRpy2(PythonPackage):
+ """rpy2 is a redesign and rewrite of rpy. It is providing a low-level
+ interface to R from Python, a proposed high-level interface,
+ including wrappers to graphical libraries, as well as R-like
+ structures and functions.
+
+ """
homepage = "https://pypi.python.org/pypi/rpy2"
- url = "https://pypi.python.org/packages/source/r/rpy2/rpy2-2.5.4.tar.gz"
+ url = "https://pypi.python.org/packages/source/r/rpy2/rpy2-2.5.4.tar.gz"
version('2.5.4', '115a20ac30883f096da2bdfcab55196d')
version('2.5.6', 'a36e758b633ce6aec6a5f450bfee980f')
- extends('python')
- depends_on('py-setuptools')
+ # FIXME: Missing dependencies:
+ # ld: cannot find -licuuc
+ # ld: cannot find -licui18
- depends_on('R')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('r')
diff --git a/var/spack/repos/builtin/packages/py-rtree/package.py b/var/spack/repos/builtin/packages/py-rtree/package.py
new file mode 100644
index 0000000000..55f98ad19e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rtree/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyRtree(PythonPackage):
+ """Python interface to the RTREE.4 Library."""
+ homepage = "http://toblerity.org/rtree/"
+ url = "https://github.com/Toblerity/rtree/tarball/0.8.2"
+
+ # Not an official release yet. But changes in here are required
+ # to work with Spack. As it does with all packages, Spack
+ # installs libspatialindex in a non-system location. Without the
+ # changes in this fork, py-rtree requires an environment variables
+ # to be set *at runtime*, in order to find libspatialindex. That
+ # is not feasible within the Spack worldview.
+ version('0.8.2.2', 'b1fe96a73153db49ea6ce45a063d82cb',
+ url='https://github.com/citibeth/rtree/tarball/95a678cc7350857a1bb631bc41254efcd1fc0a0d')
+
+ version('0.8.2.1', '394696ca849dd9f3a5ef24fb02a41ef4',
+ url='https://github.com/citibeth/rtree/tarball/3a87d86f66a3955676b2507d3bf424ade938a22b')
+
+ # Does not work with Spack
+ # version('0.8.2', '593c7ac6babc397b8ba58f1636c1e0a0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('libspatialindex')
+
+ def setup_environment(self, spack_env, run_env):
+ lib = self.spec['libspatialindex'].prefix.lib
+ spack_env.set('SPATIALINDEX_LIBRARY',
+ join_path(lib, 'libspatialindex.%s' % dso_suffix))
+ spack_env.set('SPATIALINDEX_C_LIBRARY',
+ join_path(lib, 'libspatialindex_c.%s' % dso_suffix))
diff --git a/var/spack/repos/builtin/packages/py-scientificpython/package.py b/var/spack/repos/builtin/packages/py-scientificpython/package.py
index 7f7eb76b73..f0fe2e4e6c 100644
--- a/var/spack/repos/builtin/packages/py-scientificpython/package.py
+++ b/var/spack/repos/builtin/packages/py-scientificpython/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyScientificpython(Package):
+
+class PyScientificpython(PythonPackage):
"""ScientificPython is a collection of Python modules for
scientific computing. It contains support for geometry,
mathematical functions, statistics, physical units, IO,
@@ -34,7 +35,4 @@ class PyScientificpython(Package):
url = "https://sourcesup.renater.fr/frs/download.php/file/4411/ScientificPython-2.8.1.tar.gz"
version('2.8.1', '73ee0df19c7b58cdf2954261f0763c77')
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-numpy')
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index 0479e9eb0a..d05341f9eb 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -24,8 +24,11 @@
##############################################################################
from spack import *
-class PyScikitImage(Package):
- """Image processing algorithms for SciPy, including IO, morphology, filtering, warping, color manipulation, object detection, etc."""
+
+class PyScikitImage(PythonPackage):
+ """Image processing algorithms for SciPy, including IO, morphology,
+ filtering, warping, color manipulation, object detection, etc."""
+
homepage = "http://scikit-image.org/"
url = "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-0.12.3.tar.gz"
@@ -33,12 +36,10 @@ class PyScikitImage(Package):
extends('python', ignore=r'bin/.*\.py$')
- depends_on('py-dask')
- depends_on('py-pillow')
- depends_on('py-networkx')
- depends_on('py-six')
- depends_on('py-scipy')
- depends_on('py-matplotlib')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-dask', type=('build', 'run'))
+ depends_on('pil', type=('build', 'run'))
+ depends_on('py-networkx', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index 7bb5853b19..7c7102ce41 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -24,8 +24,9 @@
##############################################################################
from spack import *
-class PyScikitLearn(Package):
- """"""
+
+class PyScikitLearn(PythonPackage):
+ """A set of python modules for machine learning and data mining."""
homepage = "https://pypi.python.org/pypi/scikit-learn"
url = "https://pypi.python.org/packages/source/s/scikit-learn/scikit-learn-0.15.2.tar.gz"
@@ -33,11 +34,6 @@ class PyScikitLearn(Package):
version('0.16.1', '363ddda501e3b6b61726aa40b8dbdb7e')
version('0.17.1', 'a2f8b877e6d99b1ed737144f5a478dfc')
- extends('python')
-
- depends_on('py-setuptools')
- depends_on('py-numpy')
- depends_on('py-scipy')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index f7c372b345..85b6f631e1 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -24,26 +24,28 @@
##############################################################################
from spack import *
-class PyScipy(Package):
- """Scientific Library for Python."""
+
+class PyScipy(PythonPackage):
+ """SciPy (pronounced "Sigh Pie") is a Scientific Library for Python.
+ It provides many user-friendly and efficient numerical routines such
+ as routines for numerical integration and optimization."""
+
homepage = "http://www.scipy.org/"
- url = "https://pypi.python.org/packages/source/s/scipy/scipy-0.15.0.tar.gz"
+ url = "https://pypi.python.org/packages/source/s/scipy/scipy-0.15.0.tar.gz"
+ version('0.18.1', '5fb5fb7ccb113ab3a039702b6c2f3327',
+ url="https://pypi.python.org/packages/22/41/b1538a75309ae4913cdbbdc8d1cc54cae6d37981d2759532c1aa37a41121/scipy-0.18.1.tar.gz")
version('0.17.0', '5ff2971e1ce90e762c59d2cd84837224')
version('0.15.1', 'be56cd8e60591d6332aac792a5880110')
version('0.15.0', '639112f077f0aeb6d80718dc5019dc7a')
- extends('python')
- depends_on('py-nose')
- depends_on('py-numpy+blas+lapack')
-
- def install(self, spec, prefix):
- if 'atlas' in spec:
- # libatlas.so actually isn't always installed, but this
- # seems to make the build autodetect things correctly.
- env['ATLAS'] = join_path(spec['atlas'].prefix.lib, 'libatlas.' + dso_suffix)
- else:
- env['BLAS'] = spec['blas'].blas_shared_lib
- env['LAPACK'] = spec['lapack'].lapack_shared_lib
+ depends_on('python@2.6:2.8,3.2:')
+ depends_on('py-nose', type='build')
+ # Known not to work with 2.23, 2.25
+ depends_on('binutils@2.26:', type='build')
+ depends_on('py-numpy@1.7.1:+blas+lapack', type=('build', 'run'))
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ # NOTE: scipy picks up Blas/Lapack from numpy, see
+ # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0
+ depends_on('blas')
+ depends_on('lapack')
diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py
index 68032cb68d..d355800958 100644
--- a/var/spack/repos/builtin/packages/py-setuptools/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools/package.py
@@ -24,11 +24,16 @@
##############################################################################
from spack import *
-class PySetuptools(Package):
- """Easily download, build, install, upgrade, and uninstall Python packages."""
+
+class PySetuptools(PythonPackage):
+ """A Python utility that aids in the process of downloading, building,
+ upgrading, installing, and uninstalling Python packages."""
+
homepage = "https://pypi.python.org/pypi/setuptools"
url = "https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz"
+ version('25.2.0', 'a0dbb65889c46214c691f6c516cf959c',
+ url="https://pypi.python.org/packages/9f/32/81c324675725d78e7f6da777483a3453611a427db0145dfb878940469692/setuptools-25.2.0.tar.gz")
version('20.7.0', '5d12b39bf3e75e80fdce54e44b255615')
version('20.6.7', '45d6110f3ec14924e44c33411db64fe6')
version('20.5', 'fadc1e1123ddbe31006e5e43e927362b')
@@ -36,8 +41,3 @@ class PySetuptools(Package):
version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06')
version('16.0', '0ace0b96233516fc5f7c857d086aa3ad')
version('11.3.1', '01f69212e019a2420c1693fb43593930')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py
index a2240c68a4..3ad51d5fc5 100644
--- a/var/spack/repos/builtin/packages/py-shiboken/package.py
+++ b/var/spack/repos/builtin/packages/py-shiboken/package.py
@@ -25,18 +25,18 @@
from spack import *
import os
-class PyShiboken(Package):
- """Shiboken generates bindings for C++ libraries using CPython source code."""
+
+class PyShiboken(PythonPackage):
+ """Shiboken generates bindings for C++ libraries using CPython."""
homepage = "https://shiboken.readthedocs.org/"
url = "https://pypi.python.org/packages/source/S/Shiboken/Shiboken-1.2.2.tar.gz"
version('1.2.2', '345cfebda221f525842e079a6141e555')
- # TODO: make build dependency
- # depends_on("cmake")
+ depends_on('cmake', type='build')
- extends('python')
- depends_on("py-setuptools")
+ depends_on("py-setuptools", type='build')
+ depends_on("py-sphinx", type=('build', 'run'))
depends_on("libxml2")
depends_on("qt@:4.8")
@@ -46,7 +46,8 @@ class PyShiboken(Package):
# They're called BY setup.py so we have to patch it.
pypkg = self.spec['python'].package
rpath = self.rpath
- rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'Shiboken'))
+ rpath.append(os.path.join(
+ self.prefix, pypkg.site_packages_dir, 'Shiboken'))
filter_file(
r'OPTION_CMAKE,',
@@ -62,8 +63,5 @@ class PyShiboken(Package):
r'#rpath_cmd(shiboken_path, srcpath)',
'shiboken_postinstall.py')
-
- def install(self, spec, prefix):
- python('setup.py', 'install',
- '--prefix=%s' % prefix,
- '--jobs=%s' % make_jobs)
+ def build_args(self, spec, prefix):
+ return ['--jobs={0}'.format(make_jobs)]
diff --git a/var/spack/repos/builtin/packages/py-simplegeneric/package.py b/var/spack/repos/builtin/packages/py-simplegeneric/package.py
new file mode 100644
index 0000000000..3881f8bc88
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-simplegeneric/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySimplegeneric(PythonPackage):
+ """Simple generic functions (similar to Python's own len(),
+ pickle.dump(), etc.)"""
+
+ homepage = "https://pypi.python.org/pypi/simplegeneric"
+ url = "https://pypi.io/packages/source/s/simplegeneric/simplegeneric-0.8.zip"
+
+ version('0.8.1', 'f9c1fab00fd981be588fc32759f474e3')
+ version('0.8', 'eaa358a5f9517a8b475d03fbee3ec90f')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-singledispatch/package.py b/var/spack/repos/builtin/packages/py-singledispatch/package.py
new file mode 100644
index 0000000000..9125ecb5f8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-singledispatch/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySingledispatch(PythonPackage):
+ """This library brings functools.singledispatch to Python 2.6-3.3."""
+
+ homepage = "https://pypi.python.org/pypi/singledispatch"
+ url = "https://pypi.io/packages/source/s/singledispatch/singledispatch-3.4.0.3.tar.gz"
+
+ version('3.4.0.3', 'af2fc6a3d6cc5a02d0bf54d909785fcb')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six')
+
+ # This dependency breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-ordereddict', when="^python@:2.6.999", type=('build', 'run')) # noqa
diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py
index fc8e7f5296..9d97f08433 100644
--- a/var/spack/repos/builtin/packages/py-sip/package.py
+++ b/var/spack/repos/builtin/packages/py-sip/package.py
@@ -25,8 +25,10 @@
from spack import *
import os
+
class PySip(Package):
- """SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries."""
+ """SIP is a tool that makes it very easy to create Python bindings for C
+ and C++ libraries."""
homepage = "http://www.riverbankcomputing.com/software/sip/intro"
url = "http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.5/sip-4.16.5.tar.gz"
diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py
index 3efb3d4317..7d653fd102 100644
--- a/var/spack/repos/builtin/packages/py-six/package.py
+++ b/var/spack/repos/builtin/packages/py-six/package.py
@@ -24,16 +24,16 @@
##############################################################################
from spack import *
-class PySix(Package):
+
+class PySix(PythonPackage):
"""Python 2 and 3 compatibility utilities."""
+
homepage = "https://pypi.python.org/pypi/six"
url = "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz"
- version('1.9.0', '476881ef4012262dfc8adc645ee786c4')
version('1.10.0', '34eed507548117b2ab523ab14b2f8b55')
+ version('1.9.0', '476881ef4012262dfc8adc645ee786c4')
- extends('python')
- depends_on('py-setuptools')
+ extends('python', ignore=r'bin/pytest')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py
new file mode 100644
index 0000000000..f9d2546da3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySncosmo(PythonPackage):
+ """SNCosmo is a Python library for high-level supernova cosmology
+ analysis."""
+
+ homepage = "http://sncosmo.readthedocs.io/"
+ url = "https://pypi.python.org/packages/source/s/sncosmo/sncosmo-1.2.0.tar.gz"
+
+ version('1.2.0', '028e6d1dc84ab1c17d2f3b6378b2cb1e')
+
+ # Required dependencies
+ # py-sncosmo binaries are duplicates of those from py-astropy
+ extends('python', ignore=r'bin/.*')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-astropy', type=('build', 'run'))
+
+ # Recommended dependencies
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-iminuit', type=('build', 'run'))
+ depends_on('py-emcee', type=('build', 'run'))
+ depends_on('py-nestle', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py
new file mode 100644
index 0000000000..cfeeeb26ce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySnowballstemmer(PythonPackage):
+ """This package provides 16 stemmer algorithms (15 + Poerter
+ English stemmer) generated from Snowball algorithms."""
+
+ homepage = "https://pypi.python.org/pypi/snowballstemmer"
+ url = "https://pypi.python.org/packages/source/s/snowballstemmer/snowballstemmer-1.2.1.tar.gz"
+
+ version('1.2.1', '643b019667a708a922172e33a99bf2fa')
diff --git a/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py
new file mode 100644
index 0000000000..38f127dfc4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySphinxBootstrapTheme(Package):
+ """Sphinx Bootstrap Theme."""
+
+ homepage = "https://pypi.python.org/pypi/sphinx-bootstrap-theme/"
+ url = "https://pypi.io/packages/source/s/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.13.tar.gz"
+
+ version('0.4.13', '32e513a9c8ffbb8c1e4b036e8f74fb51')
+
+ extends('python')
+
+ depends_on('py-setuptools', type='build')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py
new file mode 100644
index 0000000000..4b9141d80c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySphinxRtdTheme(PythonPackage):
+ """ReadTheDocs.org theme for Sphinx."""
+
+ homepage = "https://pypi.python.org/pypi/sphinx_rtd_theme"
+ url = "https://pypi.python.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-0.1.10a0.tar.gz"
+
+ version('0.1.10a0', '83bd95cae55aa8b773a8cc3a41094282',
+ url="https://pypi.python.org/packages/da/6b/1b75f13d8aa3333f19c6cdf1f0bc9f52ea739cae464fbee050307c121857/sphinx_rtd_theme-0.1.10a0.tar.gz")
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py
index d00f1d128b..b71f2ed8c5 100644
--- a/var/spack/repos/builtin/packages/py-sphinx/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx/package.py
@@ -24,14 +24,28 @@
##############################################################################
from spack import *
-class PySphinx(Package):
+
+class PySphinx(PythonPackage):
"""Sphinx Documentation Generator."""
homepage = "http://sphinx-doc.org"
url = "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-1.3.1.tar.gz"
+ version('1.4.5', '5c2cd2dac45dfa6123d067e32a89e89a',
+ url='https://pypi.python.org/packages/8b/78/eeea2b837f911cdc301f5f05163f9729a2381cadd03ccf35b25afe816c90/Sphinx-1.4.5.tar.gz')
version('1.3.1', '8786a194acf9673464c5455b11fd4332')
- extends('python')
+ extends('python', ignore='bin/(pybabel|pygmentize)')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-sphinx requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=('build', 'run'))
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-six@1.4:', type=('build', 'run'))
+ depends_on('py-jinja2@2.3:', type=('build', 'run'))
+ depends_on('py-pygments@2.0:', type=('build', 'run'))
+ depends_on('py-docutils@0.11:', type=('build', 'run'))
+ depends_on('py-snowballstemmer@1.1:', type=('build', 'run'))
+ depends_on('py-babel@1.3:', type=('build', 'run')) # not 2.0
+ depends_on('py-alabaster@0.7:', type=('build', 'run'))
+ depends_on('py-imagesize', when='@1.4:', type=('build', 'run'))
+ depends_on('py-sphinx-rtd-theme@0.1:', type=('build', 'run')) # optional as of 1.4
diff --git a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
index 05f4616ff5..f8221058a0 100644
--- a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py
+++ b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
@@ -24,15 +24,11 @@
##############################################################################
from spack import *
-class PySqlalchemy(Package):
+
+class PySqlalchemy(PythonPackage):
"""The Python SQL Toolkit and Object Relational Mapper"""
homepage = 'http://www.sqlalchemy.org/'
url = "https://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-1.0.12.tar.gz"
version('1.0.12', '6d19ef29883bbebdcac6613cf391cac4')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-storm/package.py b/var/spack/repos/builtin/packages/py-storm/package.py
index 53af720c50..a6c2900414 100644
--- a/var/spack/repos/builtin/packages/py-storm/package.py
+++ b/var/spack/repos/builtin/packages/py-storm/package.py
@@ -22,19 +22,14 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import depends_on, extends, version
-from spack import Package
+from spack import *
-class PyStorm(Package):
+class PyStorm(PythonPackage):
"""Storm is an object-relational mapper (ORM) for Python"""
homepage = "https://storm.canonical.com/"
url = "https://launchpad.net/storm/trunk/0.20/+download/storm-0.20.tar.gz"
version('0.20', '8628503141f0f06c0749d607ac09b9c7')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py
new file mode 100644
index 0000000000..0817d394f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-symengine/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+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"
+
+ version('0.2.0', 'e1d114fa12be4c8c7e9f24007e07718c')
+ version('develop', git='https://github.com/symengine/symengine.py.git')
+
+ # Build dependencies
+ depends_on('python@2.7:2.8,3.3:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.19.1:')
+ depends_on('cmake@2.8.7:', type='build')
+ depends_on('symengine@0.2.0:')
+
+ def build_args(self, spec, prefix):
+ return ['--symengine-dir={0}'.format(spec['symengine'].prefix)]
diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py
index 5e38fc5be1..58c4167e23 100644
--- a/var/spack/repos/builtin/packages/py-sympy/package.py
+++ b/var/spack/repos/builtin/packages/py-sympy/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PySympy(Package):
+
+class PySympy(PythonPackage):
"""SymPy is a Python library for symbolic mathematics."""
homepage = "https://pypi.python.org/pypi/sympy"
url = "https://pypi.python.org/packages/source/s/sympy/sympy-0.7.6.tar.gz"
@@ -32,8 +33,4 @@ class PySympy(Package):
version('0.7.6', '3d04753974306d8a13830008e17babca')
version('1.0', '43e797de799f00f9e8fd2307dba9fab1')
- extends('python')
depends_on('py-mpmath', when='@1.0:')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py
index a1026a9b4b..22bc15392f 100644
--- a/var/spack/repos/builtin/packages/py-tappy/package.py
+++ b/var/spack/repos/builtin/packages/py-tappy/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyTappy(Package):
+
+class PyTappy(PythonPackage):
"""Python TAP interface module for unit tests"""
homepage = "https://github.com/mblayman/tappy"
# base https://pypi.python.org/pypi/cffi
@@ -32,8 +33,9 @@ class PyTappy(Package):
version('1.6', 'c8bdb93ad66e05f939905172a301bedf')
- extends('python')
- depends_on('py-setuptools')
+ extends('python', ignore='bin/nosetests|bin/pygmentize')
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('python@2.6:2.7,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-terminado/package.py b/var/spack/repos/builtin/packages/py-terminado/package.py
new file mode 100644
index 0000000000..4cebe14fca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-terminado/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyTerminado(PythonPackage):
+ """Terminals served to term.js using Tornado websockets"""
+
+ homepage = "https://pypi.python.org/pypi/terminado"
+ url = "https://pypi.io/packages/source/t/terminado/terminado-0.6.tar.gz"
+
+ version('0.6', '5b6c65da27fe1ed07a9f80f0588cdaba')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-tornado@4:', type=('build', 'run'))
+ depends_on('py-ptyprocess', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tornado/package.py b/var/spack/repos/builtin/packages/py-tornado/package.py
new file mode 100644
index 0000000000..eb9c660947
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tornado/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyTornado(PythonPackage):
+ """Tornado is a Python web framework and asynchronous networking
+ library."""
+ homepage = "https://github.com/tornadoweb/tornado"
+ url = "https://github.com/tornadoweb/tornado/archive/v4.4.0.tar.gz"
+
+ version('4.4.0', 'c28675e944f364ee96dda3a8d2527a87ed28cfa3')
+
+ depends_on('py-setuptools', type='build')
+
+ # requirements from setup.py
+ # These dependencies breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-backports-ssl-match-hostname', when='^python@:2.7.8', type=('build', 'run')) # noqa
+ # depends_on('py-singledispatch', when='^python@:3.3', type=('build', 'run')) # noqa
+ # depends_on('py-certifi', when='^python@:3.3', type=('build', 'run'))
+ # depends_on('py-backports-abc@0.4:', when='^python@:3.4', type=('build', 'run')) # noqa
+ depends_on('py-backports-ssl-match-hostname', type=('build', 'run'))
+ depends_on('py-singledispatch', type=('build', 'run'))
+ depends_on('py-certifi', type=('build', 'run'))
+ depends_on('py-backports-abc@0.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-traitlets/package.py b/var/spack/repos/builtin/packages/py-traitlets/package.py
new file mode 100644
index 0000000000..debd1dca43
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-traitlets/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyTraitlets(PythonPackage):
+ """Traitlets Python config system"""
+
+ homepage = "https://pypi.python.org/pypi/traitlets"
+ url = "https://github.com/ipython/traitlets/archive/4.3.1.tar.gz"
+
+ version('4.3.1', '146a4885ea64079f62a33b2049841543')
+ version('4.3.0', '17af8d1306a401c42dbc92a080722422')
+ version('4.2.2', 'ffc03056dc5c8d1fc5dbd6eac76e1e46')
+ version('4.2.1', 'fc7f46a76b99ebc5068f99033d268dcf')
+ version('4.2.0', '53553a10d124e264fd2e234d0571b7d0')
+ version('4.1.0', 'd5bc75c7bd529afb40afce86c2facc3a')
+ version('4.0.0', 'b5b95ea5941fd9619b4704dfd8201568')
+ version('4.0', '14544e25ccf8e920ed1cbf833852481f')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-decorator', type=('build', 'run'))
+ depends_on('py-ipython-genutils', type=('build', 'run'))
+
+ # This dependency breaks concretization
+ # See https://github.com/LLNL/spack/issues/2793
+ # depends_on('py-enum34', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-enum34', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py
index 200a33a676..93726cf004 100644
--- a/var/spack/repos/builtin/packages/py-tuiview/package.py
+++ b/var/spack/repos/builtin/packages/py-tuiview/package.py
@@ -24,20 +24,17 @@
##############################################################################
from spack import *
-class PyTuiview(Package):
- """
- TuiView is a lightweight raster GIS with powerful raster attribute
- table manipulation abilities.
+
+class PyTuiview(PythonPackage):
+ """TuiView is a lightweight raster GIS with powerful raster attribute
+ table manipulation abilities.
"""
+
homepage = "https://bitbucket.org/chchrsc/tuiview"
url = "https://bitbucket.org/chchrsc/tuiview/get/tuiview-1.1.7.tar.gz"
version('1.1.7', '4b3b38a820cc239c8ab4a181ac5d4c30')
- extends("python")
- depends_on("py-pyqt")
- depends_on("py-numpy")
+ depends_on("py-pyqt", type=('build', 'run'))
+ depends_on("py-numpy", type=('build', 'run'))
depends_on("gdal")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py
index 27db4adff4..e558adbc7f 100644
--- a/var/spack/repos/builtin/packages/py-twisted/package.py
+++ b/var/spack/repos/builtin/packages/py-twisted/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyTwisted(Package):
+
+class PyTwisted(PythonPackage):
"""An asynchronous networking framework written in Python"""
homepage = "https://twistedmatrix.com/"
url = "https://pypi.python.org/packages/source/T/Twisted/Twisted-15.3.0.tar.bz2"
@@ -32,9 +33,4 @@ class PyTwisted(Package):
version('15.4.0', '5337ffb6aeeff3790981a2cd56db9655')
version('15.3.0', 'b58e83da2f00b3352afad74d0c5c4599')
- depends_on('py-setuptools')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py
new file mode 100644
index 0000000000..d6a68c3535
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-unittest2/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyUnittest2(PythonPackage):
+ """unittest2 is a backport of the new features added to the unittest
+ testing framework in Python 2.7 and onwards."""
+
+ homepage = "https://pypi.python.org/pypi/unittest2"
+ url = "https://pypi.python.org/packages/source/u/unittest2/unittest2-1.1.0.tar.gz"
+
+ version('1.1.0', 'f72dae5d44f091df36b6b513305ea000')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
new file mode 100644
index 0000000000..03134acfcd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyUnittest2py3k(PythonPackage):
+ """unittest2 is a backport of the new features added to the unittest
+ testing framework in Python 2.7 and 3.2. This is a Python 3 compatible
+ version of unittest2."""
+
+ homepage = "https://pypi.python.org/pypi/unittest2py3k"
+ url = "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-0.5.1.tar.gz"
+
+ version('0.5.1', '8824ff92044310d9365f90d892bf0f09')
+
+ depends_on('python@3:')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py
index 0accc72df8..8e33d2bef2 100644
--- a/var/spack/repos/builtin/packages/py-urwid/package.py
+++ b/var/spack/repos/builtin/packages/py-urwid/package.py
@@ -24,17 +24,12 @@
##############################################################################
from spack import *
-class PyUrwid(Package):
+
+class PyUrwid(PythonPackage):
"""A full-featured console UI library"""
homepage = "http://urwid.org/"
url = "https://pypi.python.org/packages/source/u/urwid/urwid-1.3.0.tar.gz"
version('1.3.0', 'a989acd54f4ff1a554add464803a9175')
- depends_on('py-setuptools')
-
- extends("python")
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
-
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-vcversioner/package.py b/var/spack/repos/builtin/packages/py-vcversioner/package.py
new file mode 100644
index 0000000000..81e4f7bdda
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vcversioner/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyVcversioner(PythonPackage):
+ """Vcversioner: Take version numbers from version control."""
+
+ homepage = "https://github.com/habnabit/vcversioner"
+ url = "https://pypi.python.org/packages/source/v/vcversioner/vcversioner-2.16.0.0.tar.gz"
+
+ version('2.16.0.0', 'aab6ef5e0cf8614a1b1140ed5b7f107d')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py
index d42cb96eb7..5e6431b637 100644
--- a/var/spack/repos/builtin/packages/py-virtualenv/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py
@@ -23,9 +23,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import shutil
-class PyVirtualenv(Package):
+
+class PyVirtualenv(PythonPackage):
"""virtualenv is a tool to create isolated Python environments."""
homepage = "http://virtualenv.readthedocs.org/projects/virtualenv/"
url = "https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz"
@@ -34,8 +34,4 @@ class PyVirtualenv(Package):
version('13.0.1', '1ffc011bde6667f0e37ecd976f4934db')
version('15.0.1', '28d76a0d9cbd5dc42046dd14e76a6ecc')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
new file mode 100644
index 0000000000..be1d151ee9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyWcsaxes(PythonPackage):
+ """WCSAxes is a framework for making plots of Astronomical data
+ in Matplotlib."""
+
+ homepage = "http://wcsaxes.readthedocs.io/en/latest/index.html"
+ url = "https://github.com/astrofrog/wcsaxes/archive/v0.8.tar.gz"
+
+ version('0.8', 'de1c60fdae4c330bf5ddb9f1ab5ab920')
+
+ extends('python', ignore=r'bin/')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-astropy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-wcwidth/package.py b/var/spack/repos/builtin/packages/py-wcwidth/package.py
new file mode 100644
index 0000000000..c4846e2ee7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-wcwidth/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyWcwidth(PythonPackage):
+ """Measures number of Terminal column cells of wide-character codes"""
+
+ homepage = "https://pypi.python.org/pypi/wcwidth"
+ url = "https://pypi.io/packages/source/w/wcwidth/wcwidth-0.1.7.tar.gz"
+
+ version('0.1.7', 'b3b6a0a08f0c8a34d1de8cf44150a4ad')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py
index 68b6f3d679..7e678df2e8 100644
--- a/var/spack/repos/builtin/packages/py-wheel/package.py
+++ b/var/spack/repos/builtin/packages/py-wheel/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyWheel(Package):
+
+class PyWheel(PythonPackage):
"""A built-package format for Python."""
homepage = "https://pypi.python.org/pypi/wheel"
@@ -32,8 +33,4 @@ class PyWheel(Package):
version('0.26.0', '4cfc6e7e3dc7377d0164914623922a10')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
new file mode 100644
index 0000000000..916263bda6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyWidgetsnbextension(PythonPackage):
+ """IPython HTML widgets for Jupyter"""
+
+ homepage = "https://pypi.python.org/pypi/widgetsnbextension"
+ url = "https://pypi.io/packages/source/w/widgetsnbextension/widgetsnbextension-1.2.6.tar.gz"
+
+ version('1.2.6', '0aa4e152c9ba2d704389dc2453f448c7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.7.999,3.3:')
+ depends_on('py-jupyter-notebook@4.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py
index 9220f90340..bbd2f57b07 100644
--- a/var/spack/repos/builtin/packages/py-xlrd/package.py
+++ b/var/spack/repos/builtin/packages/py-xlrd/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyXlrd(Package):
+
+class PyXlrd(PythonPackage):
"""Library for developers to extract data from Microsoft Excel (tm)
spreadsheet files"""
@@ -32,8 +33,3 @@ class PyXlrd(Package):
url = "https://pypi.python.org/packages/source/x/xlrd/xlrd-0.9.4.tar.gz"
version('0.9.4', '911839f534d29fe04525ef8cd88fe865')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-xpyb/package.py b/var/spack/repos/builtin/packages/py-xpyb/package.py
new file mode 100644
index 0000000000..49c6343c45
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-xpyb/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyXpyb(Package):
+ """xpyb provides a Python binding to the X Window System protocol
+ via libxcb."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xpyb-1.3.1.tar.gz"
+
+ version('1.3.1', '75d567e25517fb883a56f10b77fd2757')
+
+ extends('python')
+
+ depends_on('libxcb@1.5:')
+
+ depends_on('xcb-proto@1.7.1:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/py-yapf/package.py b/var/spack/repos/builtin/packages/py-yapf/package.py
index 60f740c98d..5f5d32e3d0 100644
--- a/var/spack/repos/builtin/packages/py-yapf/package.py
+++ b/var/spack/repos/builtin/packages/py-yapf/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class PyYapf(Package):
+
+class PyYapf(PythonPackage):
""" Yet Another Python Formatter """
homepage = "https://github.com/google/yapf"
# base https://pypi.python.org/pypi/cffi
@@ -32,8 +33,4 @@ class PyYapf(Package):
version('0.2.1', '348ccf86cf2057872e4451b204fb914c')
- extends('python')
- depends_on('py-setuptools')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py
new file mode 100644
index 0000000000..6ab967d8a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-yt/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class PyYt(PythonPackage):
+ """Volumetric Data Analysis
+
+ yt is a python package for analyzing and visualizing
+ volumetric, multi-resolution data from astrophysical
+ simulations, radio telescopes, and a burgeoning
+ interdisciplinary community.
+ """
+ homepage = "http://yt-project.org"
+ url = "https://bitbucket.org/yt_analysis/yt"
+
+ version("3.3.1", hg="https://bitbucket.org/yt_analysis/yt",
+ tag="yt-3.3.1", commit="9bc3d0e9b750c923d44d73c447df64fc431f5838")
+ version("3.2.3", hg="https://bitbucket.org/yt_analysis/yt",
+ tag="yt-3.2.3", commit="83d2c1e9313e7d83eb5b96888451ff2646fd8ff3")
+ version("3.1.0", hg="https://bitbucket.org/yt_analysis/yt",
+ tag="yt-3.1.0", commit="fd7cdc4836188a3badf81adb477bcc1b9632e485")
+ version("3.0.2", hg="https://bitbucket.org/yt_analysis/yt",
+ tag="yt-3.0.2", commit="511887af4c995a78fe606e58ce8162c88380ecdc")
+ version("2.6.3", hg="https://bitbucket.org/yt_analysis/yt",
+ tag="yt-2.6.3", commit="816186f16396a16853810ac9ebcde5057d8d5b1a")
+ version("development", hg="https://bitbucket.org/yt_analysis/yt",
+ branch="yt")
+
+ variant("astropy", default=True, description="enable astropy support")
+ variant("h5py", default=True, description="enable h5py support")
+ variant("scipy", default=True, description="enable scipy support")
+
+ depends_on("py-astropy", type=('build', 'run'), when="+astropy")
+ depends_on("py-cython", type=('build', 'run'))
+ depends_on("py-h5py", type=('build', 'run'), when="+h5py")
+ depends_on("py-ipython", type=('build', 'run'))
+ depends_on("py-matplotlib", type=('build', 'run'))
+ depends_on("py-numpy", type=('build', 'run'))
+ depends_on("py-scipy", type=('build', 'run'), when="+scipy")
+ depends_on("py-setuptools", type="build")
+ depends_on("py-sympy", type=('build', 'run'))
+ depends_on("python @2.7:2.999,3.4:")
+
+ @PythonPackage.sanity_check('install')
+ def check_install(self):
+ # The Python interpreter path can be too long for this
+ # yt = Executable(join_path(prefix.bin, "yt"))
+ # yt("--help")
+ python(join_path(self.prefix.bin, "yt"), "--help")
diff --git a/var/spack/repos/builtin/packages/py-zmq/package.py b/var/spack/repos/builtin/packages/py-zmq/package.py
new file mode 100644
index 0000000000..cbc0e02e6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-zmq/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+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('16.0.2', '4cf14a2995742253b2b009541f4436f4')
+ version('14.7.0', 'bf304fb73d72aee314ff82d3554328c179938ecf')
+
+ depends_on('py-setuptools', type='build')
+ 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/python/ncurses.patch b/var/spack/repos/builtin/packages/python/ncurses.patch
new file mode 100644
index 0000000000..9054c03e7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/python/ncurses.patch
@@ -0,0 +1,11 @@
+--- a/setup.py 2016-08-30 15:39:59.334926574 -0500
++++ b/setup.py 2016-08-30 15:46:57.227946339 -0500
+@@ -745,8 +745,6 @@
+ # use the same library for the readline and curses modules.
+ if 'curses' in readline_termcap_library:
+ curses_library = readline_termcap_library
+- elif self.compiler.find_library_file(lib_dirs, 'ncursesw'):
+- curses_library = 'ncursesw'
+ elif self.compiler.find_library_file(lib_dirs, 'ncurses'):
+ curses_library = 'ncurses'
+ elif self.compiler.find_library_file(lib_dirs, 'curses'):
diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py
index 86c12498e1..348b075e2f 100644
--- a/var/spack/repos/builtin/packages/python/package.py
+++ b/var/spack/repos/builtin/packages/python/package.py
@@ -22,81 +22,293 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import functools
-import glob
-import inspect
+import ast
import os
import re
from contextlib import closing
import spack
+import llnl.util.tty as tty
from llnl.util.lang import match_predicate
+from llnl.util.filesystem import force_remove
from spack import *
from spack.util.environment import *
+import spack.util.spack_json as sjson
class Python(Package):
"""The Python programming language."""
- homepage = "http://www.python.org"
- url = "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz"
- extendable = True
+ homepage = "http://www.python.org"
+ url = "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz"
+ list_url = "https://www.python.org/downloads/"
+ list_depth = 2
+ version('3.6.0', '3f7062ccf8be76491884d0e47ac8b251')
+ version('3.5.2', '3fe8434643a78630c61c6464fe2e7e72')
version('3.5.1', 'be78e48cdfc1a7ad90efff146dce6cfe')
version('3.5.0', 'a56c0c0b45d75a0ec9c6dee933c41c36')
- version('2.7.11', '6b6076ec9e93f05dd63e47eb9c15728b', preferred=True)
+ version('3.4.3', '4281ff86778db65892c05151d5de738d')
+ version('3.3.6', 'cdb3cd08f96f074b3f3994ccb51063e9')
+ version('3.2.6', '23815d82ae706e9b781ca65865353d39')
+ version('3.1.5', '02196d3fc7bc76bdda68aa36b0dd16ab')
+ version('2.7.13', '17add4bf0ad0ec2f08e0cae6d205c700', preferred=True)
+ version('2.7.12', '88d61f82e3616a4be952828b3694109d')
+ version('2.7.11', '6b6076ec9e93f05dd63e47eb9c15728b')
version('2.7.10', 'd7547558fd673bd9d38e2108c6b42521')
version('2.7.9', '5eebcaa0030dc4061156d3429657fb83')
version('2.7.8', 'd4bca0159acb0b44a781292b5231936f')
+ extendable = True
+
+ variant('tk', default=False, description='Provide support for Tkinter')
+ variant('ucs4', default=False,
+ description='Enable UCS4 (wide) unicode strings')
+ # From https://docs.python.org/2/c-api/unicode.html: Python's default
+ # builds use a 16-bit type for Py_UNICODE and store Unicode values
+ # internally as UCS2. It is also possible to build a UCS4 version of Python
+ # (most recent Linux distributions come with UCS4 builds of Python). These
+ # builds then use a 32-bit type for Py_UNICODE and store Unicode data
+ # internally as UCS4. Note that UCS2 and UCS4 Python builds are not binary
+ # compatible.
+
depends_on("openssl")
depends_on("bzip2")
depends_on("readline")
depends_on("ncurses")
depends_on("sqlite")
depends_on("zlib")
+ depends_on("tk", when="+tk")
+ depends_on("tcl", when="+tk")
+
+ patch('ncurses.patch')
+
+ _DISTUTIL_VARS_TO_SAVE = ['LDSHARED']
+ _DISTUTIL_CACHE_FILENAME = 'sysconfig.json'
+ _distutil_vars = None
+
+ @when('@2.7,3.4:')
+ def patch(self):
+ # NOTE: Python's default installation procedure makes it possible for a
+ # user's local configurations to change the Spack installation. In
+ # order to prevent this behavior for a full installation, we must
+ # modify the installation script so that it ignores user files.
+ ff = FileFilter('Makefile.pre.in')
+ ff.filter(
+ r'^(.*)setup\.py(.*)((build)|(install))(.*)$',
+ r'\1setup.py\2 --no-user-cfg \3\6'
+ )
+
+ @when('@:2.6,3.0:3.3')
+ def patch(self):
+ # See https://github.com/LLNL/spack/issues/1490
+ pass
def install(self, spec, prefix):
+ # TODO: The '--no-user-cfg' option for Python installation is only in
+ # Python v2.7 and v3.4+ (see https://bugs.python.org/issue1180) and
+ # adding support for ignoring user configuration will require
+ # significant changes to this package for other Python versions.
+ if not spec.satisfies('@2.7,3.4:'):
+ tty.warn(('Python v{0} may not install properly if Python '
+ 'user configurations are present.').format(self.version))
+
# Need this to allow python build to find the Python installation.
- env['PYTHONHOME'] = prefix
+ env['PYTHONHOME'], env['PYTHONPATH'] = prefix, prefix
env['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
# Rest of install is pretty standard except setup.py needs to
# be able to read the CPPFLAGS and LDFLAGS as it scans for the
# library and headers to build
- configure_args= [
- "--prefix=%s" % prefix,
- "--with-threads",
- "--enable-shared",
- "CPPFLAGS=-I%s/include -I%s/include -I%s/include -I%s/include -I%s/include -I%s/include" % (
- spec['openssl'].prefix, spec['bzip2'].prefix,
- spec['readline'].prefix, spec['ncurses'].prefix,
- spec['sqlite'].prefix, spec['zlib'].prefix),
- "LDFLAGS=-L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib" % (
- spec['openssl'].prefix, spec['bzip2'].prefix,
- spec['readline'].prefix, spec['ncurses'].prefix,
- spec['sqlite'].prefix, spec['zlib'].prefix)
- ]
- if spec.satisfies('@3:'):
- configure_args.append('--without-ensurepip')
- configure(*configure_args)
- make()
- make("install")
-
- # Modify compiler paths in configuration files. This is necessary for
- # building site packages outside of spack
- filter_file(r'([/s]=?)([\S=]*)/lib/spack/env(/[^\s/]*)?/(\S*)(\s)',
- (r'\4\5'),
- join_path(prefix.lib, 'python%d.%d' % self.version[:2], '_sysconfigdata.py'))
+ dep_pfxs = [dspec.prefix for dspec in spec.dependencies('link')]
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--with-threads',
+ '--enable-shared',
+ 'CPPFLAGS=-I{0}'.format(' -I'.join(dp.include for dp in dep_pfxs)),
+ 'LDFLAGS=-L{0}'.format(' -L'.join(dp.lib for dp in dep_pfxs)),
+ ]
+ if spec.satisfies("platform=darwin") and ('%gcc' in spec):
+ config_args.append('--disable-toolbox-glue')
+
+ if '+ucs4' in spec:
+ if spec.satisfies('@:2.7'):
+ config_args.append('--enable-unicode=ucs4')
+ elif spec.satisfies('@3.0:3.2'):
+ config_args.append('--with-wide-unicode')
+ elif spec.satisfies('@3.3:'):
+ # https://docs.python.org/3.3/whatsnew/3.3.html
+ raise ValueError(
+ '+ucs4 variant not compatible with Python 3.3 and beyond')
- python3_version = ''
if spec.satisfies('@3:'):
- python3_version = '-%d.%dm' % self.version[:2]
- makefile_filepath = join_path(prefix.lib, 'python%d.%d' % self.version[:2], 'config%s' % python3_version, 'Makefile')
- filter_file(r'([/s]=?)([\S=]*)/lib/spack/env(/[^\s/]*)?/(\S*)(\s)',
- (r'\4\5'),
- makefile_filepath)
+ config_args.append('--without-ensurepip')
+ configure(*config_args)
+ make()
+ make('install')
+
+ self._save_distutil_vars(prefix)
+
+ self.filter_compilers(prefix)
+
+ # TODO:
+ # On OpenSuse 13, python uses <prefix>/lib64/python2.7/lib-dynload/*.so
+ # instead of <prefix>/lib/python2.7/lib-dynload/*.so. Oddly enough the
+ # result is that Python can not find modules like cPickle. A workaround
+ # for now is to symlink to `lib`:
+ src = os.path.join(prefix.lib64,
+ 'python{0}'.format(self.version.up_to(2)),
+ 'lib-dynload')
+ dst = os.path.join(prefix.lib,
+ 'python{0}'.format(self.version.up_to(2)),
+ 'lib-dynload')
+ if os.path.isdir(src) and not os.path.isdir(dst):
+ mkdirp(dst)
+ for f in os.listdir(src):
+ os.symlink(os.path.join(src, f),
+ os.path.join(dst, f))
+
+ # TODO: Once better testing support is integrated, add the following tests
+ # https://wiki.python.org/moin/TkInter
+ #
+ # Note: Only works if ForwardX11Trusted is enabled, i.e. `ssh -Y`
+ #
+ # if '+tk' in spec:
+ # env['TK_LIBRARY'] = join_path(spec['tk'].prefix.lib,
+ # 'tk{0}'.format(spec['tk'].version.up_to(2)))
+ # env['TCL_LIBRARY'] = join_path(spec['tcl'].prefix.lib,
+ # 'tcl{0}'.format(spec['tcl'].version.up_to(2)))
+ #
+ # $ python
+ # >>> import _tkinter
+ #
+ # if spec.satisfies('@3:')
+ # >>> import tkinter
+ # >>> tkinter._test()
+ # else:
+ # >>> import Tkinter
+ # >>> Tkinter._test()
+
+ def _save_distutil_vars(self, prefix):
+ """
+ Run before changing automatically generated contents of the
+ _sysconfigdata.py, which is used by distutils to figure out what
+ executables to use while compiling and linking extensions. If we build
+ extensions with spack those executables should be spack's wrappers.
+ Spack partially covers this by setting environment variables that
+ are also accounted for by distutils. Currently there is one more known
+ variable that must be set, which is LDSHARED, so the method saves its
+ autogenerated value to pass it to the dependant package's setup script.
+ """
+
+ self._distutil_vars = {}
+
+ input_filename = None
+ for filename in [join_path(lib_dir,
+ 'python{0}'.format(self.version.up_to(2)),
+ '_sysconfigdata.py')
+ for lib_dir in [prefix.lib, prefix.lib64]]:
+ if os.path.isfile(filename):
+ input_filename = filename
+ break
+
+ if not input_filename:
+ return
+
+ input_dict = None
+ try:
+ with open(input_filename) as input_file:
+ match = re.search(r'build_time_vars\s*=\s*(?P<dict>{.*})',
+ input_file.read(),
+ flags=re.DOTALL)
+
+ if match:
+ input_dict = ast.literal_eval(match.group('dict'))
+ except (IOError, SyntaxError):
+ pass
+
+ if not input_dict:
+ tty.warn('Failed to find \'build_time_vars\' dictionary in file '
+ '\'%s\'. This might cause the extensions that are '
+ 'installed with distutils to call compilers directly '
+ 'avoiding Spack\'s wrappers.' % input_filename)
+ return
+
+ for var_name in Python._DISTUTIL_VARS_TO_SAVE:
+ if var_name in input_dict:
+ self._distutil_vars[var_name] = input_dict[var_name]
+ else:
+ tty.warn('Failed to find key \'%s\' in \'build_time_vars\' '
+ 'dictionary in file \'%s\'. This might cause the '
+ 'extensions that are installed with distutils to '
+ 'call compilers directly avoiding Spack\'s wrappers.'
+ % (var_name, input_filename))
+
+ if len(self._distutil_vars) > 0:
+ output_filename = None
+ try:
+ output_filename = join_path(
+ spack.store.layout.metadata_path(self.spec),
+ Python._DISTUTIL_CACHE_FILENAME)
+ with open(output_filename, 'w') as output_file:
+ sjson.dump(self._distutil_vars, output_file)
+ except:
+ tty.warn('Failed to save metadata for distutils. This might '
+ 'cause the extensions that are installed with '
+ 'distutils to call compilers directly avoiding '
+ 'Spack\'s wrappers.')
+ # We make the cache empty if we failed to save it to file
+ # to provide the same behaviour as in the case when the cache
+ # is initialized by the method load_distutils_data().
+ self._distutil_vars = {}
+ if output_filename:
+ force_remove(output_filename)
+
+ def _load_distutil_vars(self):
+ # We update and keep the cache unchanged only if the package is
+ # installed.
+ if not self._distutil_vars and self.installed:
+ try:
+ input_filename = join_path(
+ spack.store.layout.metadata_path(self.spec),
+ Python._DISTUTIL_CACHE_FILENAME)
+ if os.path.isfile(input_filename):
+ with open(input_filename) as input_file:
+ self._distutil_vars = sjson.load(input_file)
+ except:
+ pass
+
+ if not self._distutil_vars:
+ self._distutil_vars = {}
+
+ return self._distutil_vars
+
+ def filter_compilers(self, prefix):
+ """Run after install to tell the configuration files and Makefiles
+ to use the compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC and CXX set to Spack's generic
+ cc and c++. We want them to be bound to whatever compiler
+ they were built with."""
+
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+
+ lib_dirnames = [
+ join_path(lib_dir, 'python{0}'.format(self.version.up_to(2))) for
+ lib_dir in [prefix.lib, prefix.lib64]]
+
+ config_dirname = 'config-{0}m'.format(
+ self.version.up_to(2)) if self.spec.satisfies('@3:') else 'config'
+
+ rel_filenames = ['_sysconfigdata.py',
+ join_path(config_dirname, 'Makefile')]
+
+ abs_filenames = [join_path(dirname, filename) for dirname in
+ lib_dirnames for filename in rel_filenames]
+
+ filter_file(env['CC'], self.compiler.cc, *abs_filenames, **kwargs)
+ filter_file(env['CXX'], self.compiler.cxx, *abs_filenames, **kwargs)
# ========================================================================
# Set up environment to make install easy for python extensions.
@@ -104,57 +316,86 @@ class Python(Package):
@property
def python_lib_dir(self):
- return os.path.join('lib', 'python%d.%d' % self.version[:2])
-
+ return join_path('lib', 'python{0}'.format(self.version.up_to(2)))
@property
def python_include_dir(self):
- return os.path.join('include', 'python%d.%d' % self.version[:2])
-
+ return join_path('include', 'python{0}'.format(self.version.up_to(2)))
@property
def site_packages_dir(self):
- return os.path.join(self.python_lib_dir, 'site-packages')
-
+ return join_path(self.python_lib_dir, 'site-packages')
def setup_dependent_environment(self, spack_env, run_env, extension_spec):
- # TODO: do this only for actual extensions.
+ """Set PYTHONPATH to include site-packages dir for the
+ extension and any other python extensions it depends on."""
+ # The python executable for version 3 may be python3 or python
+ # See https://github.com/LLNL/spack/pull/2173#issuecomment-257170199
+ pythonex = 'python{0}'.format('3' if self.spec.satisfies('@3') else '')
+ if os.path.isdir(self.prefix.bin):
+ base = self.prefix.bin
+ else:
+ base = self.prefix
+ if not os.path.isfile(os.path.join(base, pythonex)):
+ if self.spec.satisfies('@3'):
+ python = Executable(os.path.join(base, 'python'))
+ version = python('-c', 'import sys; print(sys.version)',
+ output=str)
+ if version.startswith('3'):
+ pythonex = 'python'
+ else:
+ raise RuntimeError('Cannot locate python executable')
+ else:
+ raise RuntimeError('Cannot locate python executable')
+ python = Executable(os.path.join(base, pythonex))
+ prefix = python('-c', 'import sys; print(sys.prefix)', output=str)
+ spack_env.set('PYTHONHOME', prefix.strip('\n'))
- # Set PYTHONPATH to include site-packages dir for the
- # extension and any other python extensions it depends on.
python_paths = []
- for d in extension_spec.traverse():
+ for d in extension_spec.traverse(
+ deptype=('build', 'run'), deptype_query='run'):
if d.package.extends(self.spec):
- python_paths.append(os.path.join(d.prefix, self.site_packages_dir))
+ python_paths.append(join_path(d.prefix,
+ self.site_packages_dir))
pythonpath = ':'.join(python_paths)
spack_env.set('PYTHONPATH', pythonpath)
- # For run time environment set only the path for extension_spec and prepend it to PYTHONPATH
+ # For run time environment set only the path for
+ # extension_spec and prepend it to PYTHONPATH
if extension_spec.package.extends(self.spec):
- run_env.prepend_path('PYTHONPATH', os.path.join(extension_spec.prefix, self.site_packages_dir))
-
+ run_env.prepend_path('PYTHONPATH', join_path(
+ extension_spec.prefix, self.site_packages_dir))
def setup_dependent_package(self, module, ext_spec):
- """
- Called before python modules' install() methods.
+ """Called before python modules' install() methods.
In most cases, extensions will only need to have one line::
- python('setup.py', 'install', '--prefix=%s' % prefix)
- """
- # Python extension builds can have a global python executable function
- if self.version >= Version("3.0.0") and self.version < Version("4.0.0"):
- module.python = Executable(join_path(self.spec.prefix.bin, 'python3'))
- else:
- module.python = Executable(join_path(self.spec.prefix.bin, 'python'))
+ setup_py('install', '--prefix={0}'.format(prefix))"""
+ python_path = join_path(
+ self.spec.prefix.bin,
+ 'python{0}'.format('3' if self.spec.satisfies('@3') else '')
+ )
- # Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
- module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
- module.python_include_dir = os.path.join(ext_spec.prefix, self.python_include_dir)
- module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir)
+ module.python = Executable(python_path)
+ module.setup_py = Executable(python_path + ' setup.py --no-user-cfg')
+
+ distutil_vars = self._load_distutil_vars()
- # Make the site packages directory for extensions, if it does not exist already.
+ if distutil_vars:
+ for key, value in distutil_vars.iteritems():
+ module.setup_py.add_default_env(key, value)
+
+ # Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
+ module.python_lib_dir = join_path(ext_spec.prefix,
+ self.python_lib_dir)
+ module.python_include_dir = join_path(ext_spec.prefix,
+ self.python_include_dir)
+ module.site_packages_dir = join_path(ext_spec.prefix,
+ self.site_packages_dir)
+
+ # Make the site packages directory for extensions
if ext_spec.package.is_extension:
mkdirp(module.site_packages_dir)
@@ -167,25 +408,30 @@ class Python(Package):
ignore_arg = args.get('ignore', lambda f: False)
# Always ignore easy-install.pth, as it needs to be merged.
- patterns = [r'easy-install\.pth$']
+ patterns = [r'site-packages/easy-install\.pth$']
# Ignore pieces of setuptools installed by other packages.
+ # Must include directory name or it will remove all site*.py files.
if ext_pkg.name != 'py-setuptools':
- patterns.append(r'/site[^/]*\.pyc?$')
- patterns.append(r'setuptools\.pth')
- patterns.append(r'bin/easy_install[^/]*$')
- patterns.append(r'setuptools.*egg$')
+ patterns.extend([
+ r'bin/easy_install[^/]*$',
+ r'site-packages/setuptools[^/]*\.egg$',
+ r'site-packages/setuptools\.pth$',
+ r'site-packages/site[^/]*\.pyc?$',
+ r'site-packages/__pycache__/site[^/]*\.pyc?$'
+ ])
+ if ext_pkg.name != 'py-pygments':
+ patterns.append(r'bin/pygmentize$')
if ext_pkg.name != 'py-numpy':
- patterns.append(r'bin/f2py$')
+ patterns.append(r'bin/f2py3?$')
return match_predicate(ignore_arg, patterns)
-
def write_easy_install_pth(self, exts):
paths = []
for ext in sorted(exts.values()):
- ext_site_packages = os.path.join(ext.prefix, self.site_packages_dir)
- easy_pth = "%s/easy-install.pth" % ext_site_packages
+ ext_site_packages = join_path(ext.prefix, self.site_packages_dir)
+ easy_pth = join_path(ext_site_packages, "easy-install.pth")
if not os.path.isfile(easy_pth):
continue
@@ -195,15 +441,18 @@ class Python(Package):
line = line.rstrip()
# Skip lines matching these criteria
- if not line: continue
- if re.search(r'^(import|#)', line): continue
+ if not line:
+ continue
+ if re.search(r'^(import|#)', line):
+ continue
if (ext.name != 'py-setuptools' and
- re.search(r'setuptools.*egg$', line)): continue
+ re.search(r'setuptools.*egg$', line)):
+ continue
paths.append(line)
- site_packages = os.path.join(self.prefix, self.site_packages_dir)
- main_pth = "%s/easy-install.pth" % site_packages
+ site_packages = join_path(self.prefix, self.site_packages_dir)
+ main_pth = join_path(site_packages, "easy-install.pth")
if not paths:
if os.path.isfile(main_pth):
@@ -211,29 +460,36 @@ class Python(Package):
else:
with closing(open(main_pth, 'w')) as f:
- f.write("import sys; sys.__plen = len(sys.path)\n")
+ f.write("""
+import sys
+sys.__plen = len(sys.path)
+""")
for path in paths:
- f.write("%s\n" % path)
- f.write("import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; "
- "p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)\n")
-
+ f.write("{0}\n".format(path))
+ f.write("""
+new = sys.path[sys.__plen:]
+del sys.path[sys.__plen:]
+p = getattr(sys, '__egginsert', 0)
+sys.path[p:p] = new
+sys.__egginsert = p + len(new)
+""")
def activate(self, ext_pkg, **args):
- ignore=self.python_ignore(ext_pkg, args)
+ ignore = self.python_ignore(ext_pkg, args)
args.update(ignore=ignore)
super(Python, self).activate(ext_pkg, **args)
- exts = spack.install_layout.extension_map(self.spec)
+ exts = spack.store.layout.extension_map(self.spec)
exts[ext_pkg.name] = ext_pkg.spec
self.write_easy_install_pth(exts)
-
def deactivate(self, ext_pkg, **args):
args.update(ignore=self.python_ignore(ext_pkg, args))
super(Python, self).deactivate(ext_pkg, **args)
- exts = spack.install_layout.extension_map(self.spec)
- if ext_pkg.name in exts: # Make deactivate idempotent.
+ exts = spack.store.layout.extension_map(self.spec)
+ # Make deactivate idempotent
+ if ext_pkg.name in exts:
del exts[ext_pkg.name]
self.write_easy_install_pth(exts)
diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py
index 280c9cc12c..4456c16bd2 100644
--- a/var/spack/repos/builtin/packages/qhull/package.py
+++ b/var/spack/repos/builtin/packages/qhull/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class Qhull(Package):
+
+class Qhull(CMakePackage):
"""Qhull computes the convex hull, Delaunay triangulation, Voronoi
diagram, halfspace intersection about a point, furt hest-site
Delaunay triangulation, and furthest-site Voronoi diagram. The
@@ -36,19 +37,10 @@ class Qhull(Package):
homepage = "http://www.qhull.org"
- version('7.2.0', 'e6270733a826a6a7c32b796e005ec3dc',
+ version('2015.2', 'e6270733a826a6a7c32b796e005ec3dc',
url="http://www.qhull.org/download/qhull-2015-src-7.2.0.tgz")
- version('1.0', 'd0f978c0d8dfb2e919caefa56ea2953c',
+ version('2012.1', 'd0f978c0d8dfb2e919caefa56ea2953c',
url="http://www.qhull.org/download/qhull-2012.1-src.tgz")
- # https://github.com/qhull/qhull/pull/5
- patch('qhull-iterator.patch', when='@1.0')
-
- depends_on('cmake')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make("install")
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch b/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch
deleted file mode 100644
index 88e931d84f..0000000000
--- a/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 93f4b306c54bb5be7724dcc19c6e747b62ac76dd Mon Sep 17 00:00:00 2001
-From: Ben Boeckel <mathstuf@gmail.com>
-Date: Thu, 28 May 2015 11:12:25 -0400
-Subject: [PATCH] iterator: use the header
-
-Standard libraries are doing funky things with inline namespaces which
-make these declarations impossible to get right. Just include the
-header.
----
- src/libqhullcpp/QhullIterator.h | 3 +--
- src/libqhullcpp/QhullLinkedList.h | 5 +----
- 2 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/src/libqhullcpp/QhullIterator.h b/src/libqhullcpp/QhullIterator.h
-index 9dde894..49f3a3b 100644
---- a/src/libqhullcpp/QhullIterator.h
-+++ b/src/libqhullcpp/QhullIterator.h
-@@ -14,10 +14,9 @@ extern "C" {
- }
-
- #include <assert.h>
-+#include <iterator>
- #include <string>
- #include <vector>
--//! Avoid dependence on <iterator>
--namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }
-
- namespace orgQhull {
-
-diff --git a/src/libqhullcpp/QhullLinkedList.h b/src/libqhullcpp/QhullLinkedList.h
-index d828ac6..00b9008 100644
---- a/src/libqhullcpp/QhullLinkedList.h
-+++ b/src/libqhullcpp/QhullLinkedList.h
-@@ -9,10 +9,7 @@
- #ifndef QHULLLINKEDLIST_H
- #define QHULLLINKEDLIST_H
-
--namespace std {
-- struct bidirectional_iterator_tag;
-- struct random_access_iterator_tag;
--}//std
-+#include <iterator>
-
- #include "QhullError.h"
- extern "C" {
diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py
index 314950dc36..f6b4c80cf4 100644
--- a/var/spack/repos/builtin/packages/qrupdate/package.py
+++ b/var/spack/repos/builtin/packages/qrupdate/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Qrupdate(Package):
"""qrupdate is a Fortran library for fast updates of QR and
Cholesky decompositions."""
diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py
new file mode 100644
index 0000000000..347cf4d6ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt-creator/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class QtCreator(Package):
+ """The Qt Creator IDE."""
+ homepage = 'https://www.qt.io/ide/'
+ url = 'http://download.qt.io/official_releases/qtcreator/4.1/4.1.0/qt-creator-opensource-src-4.1.0.tar.gz'
+
+ list_url = 'http://download.qt.io/official_releases/qtcreator/'
+ list_depth = 3
+
+ version('4.1.0', '657727e4209befa4bf5889dff62d9e0a')
+
+ depends_on("qt")
+
+ def install(self, spec, prefix):
+ os.environ['INSTALL_ROOT'] = self.prefix
+ qmake = which('qmake')
+ qmake('-r')
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch b/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch
new file mode 100644
index 0000000000..e6a27d5fab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch
@@ -0,0 +1,17 @@
+--- a/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp 2016-08-08 11:34:44.517184658 -0500
++++ b/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp 2016-08-08 11:36:42.371995567 -0500
+@@ -262,10 +262,10 @@
+ m_buttonsMap[BTN_TR2] = QGamepadManager::ButtonR2;
+ m_buttonsMap[BTN_THUMB] = m_buttonsMap[BTN_THUMBL] = QGamepadManager::ButtonL3;
+ m_buttonsMap[BTN_THUMBR] = QGamepadManager::ButtonR3;
+- m_buttonsMap[BTN_TRIGGER_HAPPY1] = QGamepadManager::ButtonLeft;
+- m_buttonsMap[BTN_TRIGGER_HAPPY2] = QGamepadManager::ButtonRight;
+- m_buttonsMap[BTN_TRIGGER_HAPPY3] = QGamepadManager::ButtonUp;
+- m_buttonsMap[BTN_TRIGGER_HAPPY4] = QGamepadManager::ButtonDown;
++ m_buttonsMap[0x2c0] = QGamepadManager::ButtonLeft;
++ m_buttonsMap[0x2c1] = QGamepadManager::ButtonRight;
++ m_buttonsMap[0x2c2] = QGamepadManager::ButtonUp;
++ m_buttonsMap[0x2c3] = QGamepadManager::ButtonDown;
+
+ if (m_productId)
+ m_backend->saveSettings(m_productId, QVariant());
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index 0c91a5ce87..95698018fa 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -24,11 +24,17 @@
##############################################################################
from spack import *
import os
+import sys
+
class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework."""
homepage = 'http://qt.io'
+ url = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz'
+ list_url = 'http://download.qt.io/archive/qt/'
+ list_depth = 4
+ version('5.7.0', '9a46cce61fc64c20c3ac0a0e0fa41b42')
version('5.5.1', '59f0216819152b77536cf660b015d784')
version('5.4.2', 'fa1c4d819b401b267eb246a543a63ea5')
version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6')
@@ -37,91 +43,123 @@ class Qt(Package):
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb')
version('3.3.8b', '9f05b4125cfe477cc52c9742c3c09009')
- # Add patch for compile issues with qt3 found with use in the OpenSpeedShop project
+ # Add patch for compile issues with qt3 found with use in the
+ # OpenSpeedShop project
variant('krellpatch', default=False, description="Build with openspeedshop based patch.")
variant('mesa', default=False, description="Depend on mesa.")
variant('gtk', default=False, description="Build with gtkplus.")
+ variant('webkit', default=False, description="Build the Webkit extension")
+ variant('examples', default=False, description="Build examples.")
+ variant('dbus', default=False, description="Build with D-Bus support.")
+ variant('phonon', default=False, description="Build with phonon support.")
patch('qt3krell.patch', when='@3.3.8b+krellpatch')
- # Use system openssl for security.
- #depends_on("openssl")
+ # https://github.com/xboxdrv/xboxdrv/issues/188
+ patch('btn_trigger_happy.patch', when='@5.7.0:')
+
+ patch('qt4-corewlan-new-osx.patch', when='@4')
+ patch('qt4-pcre-include-conflict.patch', when='@4')
+ patch('qt4-el-capitan.patch', when='@4')
- depends_on("glib")
+ # Use system openssl for security.
+ depends_on("openssl")
+ depends_on("glib", when='@4:')
depends_on("gtkplus", when='+gtk')
depends_on("libxml2")
depends_on("zlib")
- depends_on("dbus", when='@4:')
+ depends_on("dbus", when='@4:+dbus')
depends_on("libtiff")
- depends_on("libpng@1.2.56", when='@3')
+ depends_on("libpng@1.2.57", when='@3')
depends_on("libpng", when='@4:')
depends_on("libmng")
depends_on("jpeg")
-
- # Webkit
- # depends_on("gperf")
- # depends_on("flex")
- # depends_on("bison")
- # depends_on("ruby")
- # depends_on("icu4c")
+ depends_on("icu4c")
# OpenGL hardware acceleration
depends_on("mesa", when='@4:+mesa')
- depends_on("libxcb")
+ depends_on("libxcb", when=sys.platform != 'darwin')
+
+ # Webkit
+ depends_on("flex", when='+webkit', type='build')
+ depends_on("bison", when='+webkit', type='build')
+ depends_on("gperf", when='+webkit')
+ depends_on("fontconfig", when='+webkit')
+
+ # Multimedia
+ # depends_on("gstreamer", when='+multimedia')
+ # depends_on("pulse", when='+multimedia')
+ # depends_on("flac", when='+multimedia')
+ # depends_on("ogg", when='+multimedia')
+ use_xcode = True
def url_for_version(self, version):
- url = "http://download.qt.io/archive/qt/"
+ # URL keeps getting more complicated with every release
+ url = self.list_url
+
+ if version >= Version('4.0'):
+ url += version.up_to(2) + '/'
+ else:
+ url += version.up_to(1) + '/'
+
+ if version >= Version('4.8'):
+ url += str(version) + '/'
if version >= Version('5'):
- url += "%s/%s/single/qt-everywhere-opensource-src-%s.tar.gz" % \
- (version.up_to(2), version, version)
- elif version >= Version('4.8'):
- url += "%s/%s/qt-everywhere-opensource-src-%s.tar.gz" % \
- (version.up_to(2), version, version)
- elif version >= Version('4.6'):
- url += "%s/qt-everywhere-opensource-src-%s.tar.gz" % \
- (version.up_to(2), version)
- elif version >= Version('4.0'):
- url += "%s/qt-x11-opensource-src-%s.tar.gz" % \
- (version.up_to(2), version)
- elif version >= Version('3'):
- url += "%s/qt-x11-free-%s.tar.gz" % \
- (version.up_to(1), version)
+ url += 'single/'
+
+ url += 'qt-'
+
+ if version >= Version('4.6'):
+ url += 'everywhere-'
elif version >= Version('2.1'):
- url += "%s/qt-x11-%s.tar.gz" % \
- (version.up_to(1), version)
- else:
- url += "%s/qt-%s.tar.gz" % \
- (version.up_to(1), version)
+ url += 'x11-'
- return url
+ if version >= Version('4.0'):
+ url += 'opensource-src-'
+ elif version >= Version('3'):
+ url += 'free-'
+ url += str(version) + '.tar.gz'
- def setup_environment(self, spack_env, env):
- env.set('QTDIR', self.prefix)
+ return url
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('QTDIR', self.prefix)
def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_env.set('QTDIR', self.prefix)
+ def setup_dependent_package(self, module, ext_spec):
+ module.qmake = Executable(join_path(self.spec.prefix.bin, 'qmake'))
def patch(self):
if self.spec.satisfies('@4'):
- qmake_conf = 'mkspecs/common/g++-base.conf'
- qmake_unix_conf = 'mkspecs/common/g++-unix.conf'
- elif self.spec.satisfies('@5'):
- qmake_conf = 'qtbase/mkspecs/common/g++-base.conf'
- qmake_unix_conf = 'qtbase/mkspecs/common/g++-unix.conf'
- else:
- return
+ # Fix qmake compilers in the default mkspec
+ filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc',
+ 'mkspecs/common/g++-base.conf')
+ filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++',
+ 'mkspecs/common/g++-base.conf')
+
+ # Necessary to build with GCC 6 and other modern compilers
+ # http://stackoverflow.com/questions/10354371/
+ filter_file('(^QMAKE_CXXFLAGS .*)', r'\1 -std=gnu++98',
+ 'mkspecs/common/gcc-base.conf')
- # Fix qmake compilers in the default mkspec
- filter_file(r'^QMAKE_COMPILER *=.*$', 'QMAKE_COMPILER = cc', qmake_conf)
- filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf)
- filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf)
- filter_file(r'^QMAKE_LFLAGS_NOUNDEF *\+?=.*$', 'QMAKE_LFLAGS_NOUNDEF =', qmake_unix_conf)
+ filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ',
+ 'mkspecs/common/g++-unix.conf')
+ elif self.spec.satisfies('@5:'):
+ # Fix qmake compilers in the default mkspec
+ filter_file('^QMAKE_COMPILER .*', 'QMAKE_COMPILER = cc',
+ 'qtbase/mkspecs/common/g++-base.conf')
+ filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc',
+ 'qtbase/mkspecs/common/g++-base.conf')
+ filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++',
+ 'qtbase/mkspecs/common/g++-base.conf')
+ filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ',
+ 'qtbase/mkspecs/common/g++-unix.conf')
@property
def common_config_args(self):
@@ -134,7 +172,6 @@ class Qt(Package):
'-shared',
'-confirm-license',
'-openssl-linked',
- '-dbus-linked',
'-optimized-qmake',
'-no-openvg',
'-no-pch',
@@ -142,10 +179,45 @@ class Qt(Package):
'-no-nis'
]
- if '+gtk' in self.spec:
- config_args.append('-gtkstyle')
+ if '~examples' in self.spec:
+ config_args.extend(['-nomake', 'examples'])
+
+ if '@4' in self.spec and '~phonon' in self.spec:
+ config_args.append('-no-phonon')
+
+ if '+dbus' in self.spec:
+ config_args.append('-dbus-linked')
else:
- config_args.append('-no-gtkstyle')
+ config_args.append('-no-dbus')
+
+ if '@5:' in self.spec and sys.platform == 'darwin':
+ config_args.extend([
+ '-no-xinput2',
+ '-no-xcb-xlib',
+ '-no-pulseaudio',
+ '-no-alsa',
+ ])
+
+ if '@4' in self.spec and sys.platform == 'darwin':
+ sdkpath = which('xcrun')('--show-sdk-path',
+ # XXX(macos): 10.11 SDK fails to configure
+ '--sdk', 'macosx10.9',
+ output=str)
+ config_args.extend([
+ '-sdk', sdkpath.strip(),
+ ])
+ use_clang_platform = False
+ if self.spec.compiler.name == 'clang' and \
+ str(self.spec.compiler.version).endwith('-apple'):
+ use_clang_platform = True
+ # No one uses gcc-4.2.1 anymore; this is clang.
+ if self.spec.compiler.name == 'gcc' and \
+ str(self.spec.compiler.version) == '4.2.1':
+ use_clang_platform = True
+ if use_clang_platform:
+ config_args.extend([
+ '-platform', 'unsupported/macx-clang',
+ ])
return config_args
@@ -154,8 +226,8 @@ class Qt(Package):
@when('@3')
def configure(self):
- # An user report that this was necessary to link Qt3 on ubuntu
- os.environ['LD_LIBRARY_PATH'] = os.getcwd()+'/lib'
+ # A user reported that this was necessary to link Qt3 on ubuntu
+ os.environ['LD_LIBRARY_PATH'] = os.getcwd() + '/lib'
configure('-prefix', self.prefix,
'-v',
'-thread',
@@ -166,19 +238,37 @@ class Qt(Package):
@when('@4')
def configure(self):
configure('-fast',
- '-no-webkit',
+ '-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
+ '-{0}webkit'.format('' if '+webkit' in self.spec else 'no-'),
+ '-arch', str(self.spec.architecture.target),
*self.common_config_args)
-
- @when('@5')
+ @when('@5.0:5.6')
def configure(self):
+ webkit_args = [] if '+webkit' in self.spec else ['-skip', 'qtwebkit']
configure('-no-eglfs',
'-no-directfb',
- '-qt-xcb',
- # If someone wants to get a webkit build working, be my guest!
- '-skip', 'qtwebkit',
- *self.common_config_args)
+ '-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
+ *(webkit_args + self.common_config_args))
+
+ @when('@5.7:')
+ def configure(self):
+ config_args = self.common_config_args
+ if not sys.platform == 'darwin':
+ config_args.extend([
+ '-qt-xcb',
+ ])
+
+ if '~webkit' in self.spec:
+ config_args.extend([
+ '-skip', 'webengine',
+ ])
+
+ configure('-no-eglfs',
+ '-no-directfb',
+ '-{0}gtk'.format('' if '+gtk' in self.spec else 'no-'),
+ *config_args)
def install(self, spec, prefix):
self.configure()
diff --git a/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch b/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch
new file mode 100644
index 0000000000..370edf7fa5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch
@@ -0,0 +1,16 @@
+diff -Nr -U5 qt-everywhere-opensource-src-4.8.6/src/plugins/bearer/corewlan/corewlan.pro qt-everywhere-opensource-src-4.8.6.corewlan-new-osx/src/plugins/bearer/corewlan/corewlan.pro
+--- qt-everywhere-opensource-src-4.8.6/src/plugins/bearer/corewlan/corewlan.pro 2014-04-10 14:37:12.000000000 -0400
++++ qt-everywhere-opensource-src-4.8.6.corewlan-new-osx/src/plugins/bearer/corewlan/corewlan.pro 2015-12-02 12:21:34.608585392 -0500
+@@ -3,11 +3,11 @@
+
+ QT = core network
+ LIBS += -framework Foundation -framework SystemConfiguration
+
+ contains(QT_CONFIG, corewlan) {
+- isEmpty(QMAKE_MAC_SDK)|contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10\.[67]\.sdk") {
++ isEmpty(QMAKE_MAC_SDK)|contains(QMAKE_MAC_SDK, ".*MacOSX10\.([6789]|1[01])\.sdk") {
+ LIBS += -framework CoreWLAN -framework Security
+ }
+ }
+
+ HEADERS += qcorewlanengine.h \
diff --git a/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch b/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch
new file mode 100644
index 0000000000..35f154d3b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch
@@ -0,0 +1,31 @@
+From 27aa46933bb32a88c310fe5918a49a3f34d65dfe Mon Sep 17 00:00:00 2001
+From: Mike McQuaid <mike@mikemcquaid.com>
+Date: Sun, 13 Sep 2015 11:55:59 +0100
+Subject: [PATCH] Fix El Capitan build.
+
+---
+ src/gui/painting/qpaintengine_mac.cpp | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/src/gui/painting/qpaintengine_mac.cpp b/src/gui/painting/qpaintengine_mac.cpp
+index 4aa0668..63b646d 100644
+--- a/src/gui/painting/qpaintengine_mac.cpp
++++ b/src/gui/painting/qpaintengine_mac.cpp
+@@ -340,13 +340,7 @@ CGColorSpaceRef QCoreGraphicsPaintEngine::macDisplayColorSpace(const QWidget *wi
+ }
+
+ // Get the color space from the display profile.
+- CGColorSpaceRef colorSpace = 0;
+- CMProfileRef displayProfile = 0;
+- CMError err = CMGetProfileByAVID((CMDisplayIDType)displayID, &displayProfile);
+- if (err == noErr) {
+- colorSpace = CGColorSpaceCreateWithPlatformColorSpace(displayProfile);
+- CMCloseProfile(displayProfile);
+- }
++ CGColorSpaceRef colorSpace = CGDisplayCopyColorSpace(displayID);
+
+ // Fallback: use generic DeviceRGB
+ if (colorSpace == 0)
+--
+2.3.8 (Apple Git-58)
+
diff --git a/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch b/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch
new file mode 100644
index 0000000000..854e564bfb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch
@@ -0,0 +1,16 @@
+diff -U5 -Nru qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h
+--- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h 2014-04-10 14:37:12.000000000 -0400
++++ qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h 2016-08-29 15:30:02.216546252 -0400
+@@ -32,11 +32,11 @@
+
+ #include "MacroAssembler.h"
+ #include "RegexPattern.h"
+ #include <UString.h>
+
+-#include <pcre.h>
++#include <pcre/pcre.h>
+ struct JSRegExp; // temporary, remove when fallback is removed.
+
+ #if CPU(X86) && !COMPILER(MSVC)
+ #define YARR_CALL __attribute__ ((regparm (3)))
+ #else
diff --git a/var/spack/repos/builtin/packages/qthreads/ldflags.patch b/var/spack/repos/builtin/packages/qthreads/ldflags.patch
deleted file mode 100644
index 0c15eab386..0000000000
--- a/var/spack/repos/builtin/packages/qthreads/ldflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -40456,7 +40456,7 @@
- hwloc_saved_LDFLAGS="$LDFLAGS"
- if test "x$with_hwloc" != x; then
- CPPFLAGS="-I$with_hwloc/include $CPPFLAGS"
-- LDFLAGS="-L$with_hwloc/lib $CPPFLAGS"
-+ LDFLAGS="-L$with_hwloc/lib $LDFLAGS"
- fi
-
-
diff --git a/var/spack/repos/builtin/packages/qthreads/package.py b/var/spack/repos/builtin/packages/qthreads/package.py
index 47b5706063..aa2f0ac67a 100644
--- a/var/spack/repos/builtin/packages/qthreads/package.py
+++ b/var/spack/repos/builtin/packages/qthreads/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Qthreads(Package):
"""The qthreads API is designed to make using large numbers of
threads convenient and easy, and to allow portable access to
@@ -36,16 +37,20 @@ class Qthreads(Package):
either full or empty, and a thread can wait for any word to
attain either state."""
homepage = "http://www.cs.sandia.gov/qthreads/"
- url = "https://qthreads.googlecode.com/files/qthread-1.10.tar.bz2"
- version('1.10', '5af8c8bbe88c2a6d45361643780d1671')
+ url = "https://github.com/Qthreads/qthreads/releases/download/1.10/qthread-1.10.tar.bz2"
+ version("1.11", "68b5f9a41cfd1a2ac112cc4db0612326")
+ version("1.10", "d1cf3cf3f30586921359f7840171e551")
+
+ patch("restrict.patch", when="@:1.10")
+ patch("trap.patch", when="@:1.10")
- patch("ldflags.patch")
- patch("restrict.patch")
- patch("trap.patch")
+ depends_on("hwloc")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
- "--enable-guard-pages")
+ "--enable-guard-pages",
+ "--with-topology=hwloc",
+ "--with-hwloc=%s" % spec["hwloc"].prefix)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/r-abind/package.py b/var/spack/repos/builtin/packages/r-abind/package.py
index 34a1eee79f..81fa319a90 100644
--- a/var/spack/repos/builtin/packages/r-abind/package.py
+++ b/var/spack/repos/builtin/packages/r-abind/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class RAbind(Package):
+
+class RAbind(RPackage):
"""Combine multidimensional arrays into a single array. This is a
generalization of 'cbind' and 'rbind'. Works with vectors, matrices, and
higher-dimensional arrays. Also provides functions 'adrop', 'asub', and
@@ -32,11 +33,6 @@ class RAbind(Package):
homepage = "https://cran.r-project.org/"
url = "https://cran.r-project.org/src/contrib/abind_1.4-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/abind"
- version('1.4-3', '10fcf80c677b991bf263d38be35a1fc5', expand=False)
-
- extends('R')
-
- def install(self, spec, prefix):
-
- R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
+ version('1.4-3', '10fcf80c677b991bf263d38be35a1fc5')
diff --git a/var/spack/repos/builtin/packages/r-assertthat/package.py b/var/spack/repos/builtin/packages/r-assertthat/package.py
new file mode 100644
index 0000000000..97c29b4a99
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertthat/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RAssertthat(RPackage):
+ """assertthat is an extension to stopifnot() that makes it easy to declare
+ the pre and post conditions that you code should satisfy, while also
+ producing friendly error messages so that your users know what they've done
+ wrong."""
+
+ homepage = "https://cran.r-project.org/web/packages/assertthat/index.html"
+ url = "https://cran.r-project.org/src/contrib/assertthat_0.1.tar.gz"
+
+ version('0.1', '59f9d7f7c00077ea54d763b78eeb5798')
diff --git a/var/spack/repos/builtin/packages/r-base64enc/package.py b/var/spack/repos/builtin/packages/r-base64enc/package.py
new file mode 100644
index 0000000000..698e27a29e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-base64enc/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RBase64enc(RPackage):
+ """This package provides tools for handling base64 encoding. It is more
+ flexible than the orphaned base64 package."""
+
+ homepage = "http://www.rforge.net/base64enc"
+ url = "https://cran.r-project.org/src/contrib/base64enc_0.1-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/base64enc"
+
+ version('0.1-3', '0f476dacdd11a3e0ad56d13f5bc2f190')
diff --git a/var/spack/repos/builtin/packages/r-bh/package.py b/var/spack/repos/builtin/packages/r-bh/package.py
new file mode 100644
index 0000000000..683ba24d86
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-bh/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RBh(RPackage):
+ """Boost provides free peer-reviewed portable C++ source libraries. A large
+ part of Boost is provided as C++ template code which is resolved entirely
+ at compile-time without linking. This package aims to provide the most
+ useful subset of Boost libraries for template use among CRAN package. By
+ placing these libraries in this package, we offer a more efficient
+ distribution system for CRAN as replication of this code in the sources of
+ other packages is avoided. As of release 1.60.0-2, the following Boost
+ libraries are included: 'algorithm' 'any' 'bimap' 'bind' 'circular_buffer'
+ 'concept' 'config' 'container' 'date'_'time' 'detail' 'dynamic_bitset'
+ 'exception' 'filesystem' 'flyweight' 'foreach' 'functional' 'fusion'
+ 'geometry' 'graph' 'heap' 'icl' 'integer' 'interprocess' 'intrusive' 'io'
+ 'iostreams' 'iterator' 'math' 'move' 'mpl' 'multiprcecision' 'numeric'
+ 'pending' 'phoenix' 'preprocessor' 'random' 'range' 'smart_ptr' 'spirit'
+ 'tuple' 'type_trains' 'typeof' 'unordered' 'utility' 'uuid'."""
+
+ homepage = "https://cran.r-project.org/web/packages/BH/index.html"
+ url = "https://cran.r-project.org/src/contrib/BH_1.60.0-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/BH"
+
+ version('1.60.0-2', 'b50fdc85285da05add4e9da664a2d551')
diff --git a/var/spack/repos/builtin/packages/r-BiocGenerics/package.py b/var/spack/repos/builtin/packages/r-biocgenerics/package.py
index 0d3b6a3e57..654e7f1b2a 100644
--- a/var/spack/repos/builtin/packages/r-BiocGenerics/package.py
+++ b/var/spack/repos/builtin/packages/r-biocgenerics/package.py
@@ -24,15 +24,17 @@
##############################################################################
from spack import *
-class RBiocgenerics(Package):
- """S4 generic functions needed by many Bioconductor packages."""
-
- homepage = 'https://www.bioconductor.org/packages/release/bioc/html/BiocGenerics.html'
- url = "https://www.bioconductor.org/packages/release/bioc/src/contrib/BiocGenerics_0.16.1.tar.gz"
- version('0.16.1', 'c2148ffd86fc6f1f819c7f68eb2c744f', expand=False)
+class RBiocgenerics(RPackage):
+ """S4 generic functions needed by many Bioconductor packages."""
- extends('R')
+ homepage = 'https://bioconductor.org/packages/BiocGenerics/'
+ version('3.3',
+ git='https://github.com/Bioconductor-mirror/BiocGenerics.git',
+ branch='release-3.3')
+ version('3.2',
+ git='https://github.com/Bioconductor-mirror/BiocGenerics.git',
+ branch='release-3.2')
- def install(self, spec, prefix):
- R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
+ depends_on('r@3.3.0:3.3.9', when='@3.3')
+ depends_on('r@3.2.0:3.2.9', when='@3.2')
diff --git a/var/spack/repos/builtin/packages/r-bitops/package.py b/var/spack/repos/builtin/packages/r-bitops/package.py
new file mode 100644
index 0000000000..67bb0fe777
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-bitops/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RBitops(RPackage):
+ """Functions for bitwise operations on integer vectors."""
+
+ homepage = "https://cran.r-project.org/package=bitops"
+ url = "https://cran.r-project.org/src/contrib/bitops_1.0-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/bitops"
+
+ version('1.0-6', 'fba16485a51b1ccd354abde5816b6bdd')
diff --git a/var/spack/repos/builtin/packages/r-boot/package.py b/var/spack/repos/builtin/packages/r-boot/package.py
new file mode 100644
index 0000000000..1361920673
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-boot/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RBoot(RPackage):
+ """Functions and datasets for bootstrapping from the book "Bootstrap
+ Methods and Their Application" by A. C. Davison and D. V. Hinkley (1997,
+ CUP), originally written by Angelo Canty for S."""
+
+ homepage = "https://cran.r-project.org/package=boot"
+ url = "https://cran.r-project.org/src/contrib/boot_1.3-18.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/boot"
+
+ version('1.3-18', '711dd58af14e1027eb8377d9202e9b6f')
diff --git a/var/spack/repos/builtin/packages/r-brew/package.py b/var/spack/repos/builtin/packages/r-brew/package.py
new file mode 100644
index 0000000000..558d830a2b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-brew/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RBrew(RPackage):
+ """brew implements a templating framework for mixing text and R code for
+ report generation. brew template syntax is similar to PHP, Ruby's erb
+ module, Java Server Pages, and Python's psp module."""
+
+ homepage = "https://cran.r-project.org/package=brew"
+ url = "https://cran.r-project.org/src/contrib/brew_1.0-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/brew"
+
+ version('1.0-6', '4aaca5e6ec145e0fc0fe6375ce1f3806')
diff --git a/var/spack/repos/builtin/packages/r-c50/package.py b/var/spack/repos/builtin/packages/r-c50/package.py
new file mode 100644
index 0000000000..571f8f461b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-c50/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RC50(RPackage):
+ """C5.0 decision trees and rule-based models for pattern recognition."""
+
+ homepage = "https://cran.r-project.org/package=C50"
+ url = "https://cran.r-project.org/src/contrib/C50_0.1.0-24.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/C50"
+
+ version('0.1.0-24', '42631e65c5c579532cc6edf5ea175949')
+
+ depends_on('r-partykit', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-car/package.py b/var/spack/repos/builtin/packages/r-car/package.py
new file mode 100644
index 0000000000..80a0206a8a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-car/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCar(RPackage):
+ """Functions and Datasets to Accompany J. Fox and S. Weisberg, An R
+ Companion to Applied Regression, Second Edition, Sage, 2011."""
+
+ homepage = "https://r-forge.r-project.org/projects/car/"
+ url = "https://cran.r-project.org/src/contrib/car_2.1-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/car"
+
+ version('2.1-2', '0f78ad74ef7130126d319acec23951a0')
+
+ depends_on('r-mass', type=('build','run'))
+ depends_on('r-mgcv', type=('build','run'))
+ depends_on('r-nnet', type=('build','run'))
+ depends_on('r-pbkrtest', type=('build','run'))
+ depends_on('r-quantreg', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-caret/package.py b/var/spack/repos/builtin/packages/r-caret/package.py
new file mode 100644
index 0000000000..d795cfa204
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-caret/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCaret(RPackage):
+ """Misc functions for training and plotting classification and regression
+ models."""
+
+ homepage = "https://github.com/topepo/caret/"
+ url = "https://cran.r-project.org/src/contrib/caret_6.0-70.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/caret"
+
+ version('6.0-70', '202d7abb6a679af716ea69fb2573f108')
+
+ depends_on('r-lattice', type=('build','run'))
+ depends_on('r-ggplot2', type=('build','run'))
+ depends_on('r-car', type=('build','run'))
+ depends_on('r-foreach', type=('build','run'))
+ depends_on('r-plyr', type=('build','run'))
+ depends_on('r-nlme', type=('build','run'))
+ depends_on('r-reshape2', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-catools/package.py b/var/spack/repos/builtin/packages/r-catools/package.py
new file mode 100644
index 0000000000..7b82a19c01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-catools/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RCatools(RPackage):
+ """Contains several basic utility functions including: moving (rolling,
+ running) window statistic functions, read/write for GIF and ENVI binary
+ files, fast calculation of AUC, LogitBoost classifier, base64
+ encoder/decoder, round-off-error-free sum and cumsum, etc."""
+
+ homepage = "https://cran.r-project.org/package=caTools"
+ url = "https://cran.r-project.org/src/contrib/caTools_1.17.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/caTools"
+
+ version('1.17.1', '5c872bbc78b177b306f36709deb44498')
+
+ depends_on('r-bitops', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-chron/package.py b/var/spack/repos/builtin/packages/r-chron/package.py
new file mode 100644
index 0000000000..e1731424b3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-chron/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RChron(RPackage):
+ """Chronological objects which can handle dates and times."""
+
+ homepage = "https://cran.r-project.org/package=chron"
+ url = "https://cran.r-project.org/src/contrib/chron_2.3-47.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/chron"
+
+ version('2.3-47', 'b8890cdc5f2337f8fd775b0becdcdd1f')
diff --git a/var/spack/repos/builtin/packages/r-class/package.py b/var/spack/repos/builtin/packages/r-class/package.py
new file mode 100644
index 0000000000..de81e7588e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-class/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RClass(RPackage):
+ """Various functions for classification, including k-nearest neighbour,
+ Learning Vector Quantization and Self-Organizing Maps."""
+
+ homepage = "http://www.stats.ox.ac.uk/pub/MASS4/"
+ url = "https://cran.r-project.org/src/contrib/class_7.3-14.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/class"
+
+ version('7.3-14', '6a21dd206fe4ea29c55faeb65fb2b71e')
+
+ depends_on('r-mass', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-cluster/package.py b/var/spack/repos/builtin/packages/r-cluster/package.py
new file mode 100644
index 0000000000..29e16c2271
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-cluster/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCluster(RPackage):
+ """Methods for Cluster analysis. Much extended the original from Peter
+ Rousseeuw, Anja Struyf and Mia Hubert, based on Kaufman and Rousseeuw
+ (1990) "Finding Groups in Data"."""
+
+ homepage = "https://cran.r-project.org/web/packages/cluster/index.html"
+ url = "https://cran.r-project.org/src/contrib/cluster_2.0.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/cluster"
+
+ version('2.0.4', 'bb4deceaafb1c42bb1278d5d0dc11e59')
diff --git a/var/spack/repos/builtin/packages/r-codetools/package.py b/var/spack/repos/builtin/packages/r-codetools/package.py
new file mode 100644
index 0000000000..39186bf54a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-codetools/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCodetools(RPackage):
+ """Code analysis tools for R."""
+
+ homepage = "https://cran.r-project.org/web/packages/codetools/index.html"
+ url = "https://cran.r-project.org/src/contrib/codetools_0.2-14.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/codetools"
+
+ version('0.2-14', '7ec41d4f8bd6ba85facc8c5e6adc1f4d')
diff --git a/var/spack/repos/builtin/packages/r-colorspace/package.py b/var/spack/repos/builtin/packages/r-colorspace/package.py
new file mode 100644
index 0000000000..b7561ea360
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-colorspace/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RColorspace(RPackage):
+ """Carries out mapping between assorted color spaces including RGB, HSV,
+ HLS, CIEXYZ, CIELUV, HCL (polar CIELUV), CIELAB and polar CIELAB.
+ Qualitative, sequential, and diverging color palettes based on HCL colors
+ are provided."""
+
+ homepage = "https://cran.r-project.org/web/packages/colorspace/index.html"
+ url = "https://cran.r-project.org/src/contrib/colorspace_1.2-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/colorspace"
+
+ version('1.2-6', 'a30191e9caf66f77ff4e99c062e9dce1')
diff --git a/var/spack/repos/builtin/packages/r-crayon/package.py b/var/spack/repos/builtin/packages/r-crayon/package.py
new file mode 100644
index 0000000000..2002ea5419
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-crayon/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCrayon(RPackage):
+ """Colored terminal output on terminals that support 'ANSI' color and
+ highlight codes. It also works in 'Emacs' 'ESS'. 'ANSI' color support is
+ automatically detected. Colors and highlighting can be combined and nested.
+ New styles can also be created easily. This package was inspired by the
+ 'chalk' 'JavaScript' project."""
+
+ homepage = "https://github.com/gaborcsardi/crayon"
+ url = "https://cran.r-project.org/src/contrib/crayon_1.3.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/crayon"
+
+ version('1.3.2', 'fe29c6204d2d6ff4c2f9d107a03d0cb9')
diff --git a/var/spack/repos/builtin/packages/r-cubature/package.py b/var/spack/repos/builtin/packages/r-cubature/package.py
new file mode 100644
index 0000000000..918f8e9e3d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-cubature/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCubature(RPackage):
+ """Adaptive multivariate integration over hypercubes"""
+
+ homepage = "https://cran.r-project.org/package=cubature"
+ url = "https://cran.r-project.org/src/contrib/cubature_1.1-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/cubature"
+
+ version('1.1-2', '5617e1d82baa803a3814d92461da45c9')
diff --git a/var/spack/repos/builtin/packages/r-curl/package.py b/var/spack/repos/builtin/packages/r-curl/package.py
new file mode 100644
index 0000000000..7b62d1be60
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-curl/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCurl(RPackage):
+ """The curl() and curl_download() functions provide highly configurable
+ drop-in replacements for base url() and download.file() with better
+ performance, support for encryption (https, ftps), gzip compression,
+ authentication, and other libcurl goodies. The core of the package
+ implements a framework for performing fully customized requests where data
+ can be processed either in memory, on disk, or streaming via the callback
+ or connection interfaces. Some knowledge of libcurl is recommended; for a
+ more-user-friendly web client see the 'httr' package which builds on this
+ package with http specific tools and logic."""
+
+ homepage = "https://github.com/jeroenooms/curl"
+ url = "https://cran.r-project.org/src/contrib/curl_0.9.7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/curl"
+
+ version('1.0', '93d34926d6071e1fba7e728b482f0dd9')
+ version('0.9.7', 'a101f7de948cb828fef571c730f39217')
+
+ depends_on('curl')
diff --git a/var/spack/repos/builtin/packages/r-datatable/package.py b/var/spack/repos/builtin/packages/r-datatable/package.py
new file mode 100644
index 0000000000..23802524e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-datatable/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDatatable(RPackage):
+ """Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins,
+ fast add/modify/delete of columns by group using no copies at all, list
+ columns and a fast file reader (fread). Offers a natural and flexible
+ syntax, for faster development."""
+
+ homepage = "https://github.com/Rdatatable/data.table/wiki"
+ url = "https://cran.r-project.org/src/contrib/data.table_1.9.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/data.table"
+
+ version('1.9.6', 'b1c0c7cce490bdf42ab288541cc55372')
+
+ depends_on('r-chron', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dbi/package.py b/var/spack/repos/builtin/packages/r-dbi/package.py
new file mode 100644
index 0000000000..f00100bdf0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dbi/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDbi(RPackage):
+ """A database interface definition for communication between R and
+ relational database management systems. All classes in this package are
+ virtual and need to be extended by the various R/DBMS implementations."""
+
+ homepage = "https://github.com/rstats-db/DBI"
+ url = "https://cran.r-project.org/src/contrib/DBI_0.4-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/DBI"
+
+ version('0.4-1', 'c7ee8f1c5037c2284e99c62698d0f087')
diff --git a/var/spack/repos/builtin/packages/r-deoptim/package.py b/var/spack/repos/builtin/packages/r-deoptim/package.py
new file mode 100644
index 0000000000..5334953d46
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-deoptim/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RDeoptim(RPackage):
+ """Implements the differential evolution algorithm for global optimization
+ of a real-valued function of a real-valued parameter vector."""
+
+ homepage = "https://cran.r-project.org/package=DEoptim"
+ url = "https://cran.r-project.org/src/contrib/DEoptim_2.2-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/DEoptim"
+
+ version('2.2-3', 'ed406e6790f8f1568aa9bec159f80326')
diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py
new file mode 100644
index 0000000000..9895a3b390
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-devtools/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDevtools(RPackage):
+ """Collection of package development tools."""
+
+ homepage = "https://github.com/hadley/devtools"
+ url = "https://cran.r-project.org/src/contrib/devtools_1.11.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/devtools"
+
+ version('1.11.1', '242672ee27d24dddcbdaac88c586b6c2')
+
+ depends_on('r-httr', type=('build', 'run'))
+ depends_on('r-memoise', type=('build', 'run'))
+ depends_on('r-whisker', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-rstudioapi', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-git2r', type=('build', 'run'))
+ depends_on('r-withr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-diagrammer/package.py b/var/spack/repos/builtin/packages/r-diagrammer/package.py
new file mode 100644
index 0000000000..5f8e27a102
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-diagrammer/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDiagrammer(RPackage):
+ """Create graph diagrams and flowcharts using R."""
+
+ homepage = "https://github.com/rich-iannone/DiagrammeR"
+ url = "https://cran.r-project.org/src/contrib/DiagrammeR_0.8.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/DiagrammeR"
+
+ version('0.8.4', '9ee295c744f5d4ba9a84289ca7bdaf1a')
+
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-influencer', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.6:', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-visnetwork', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dichromat/package.py b/var/spack/repos/builtin/packages/r-dichromat/package.py
new file mode 100644
index 0000000000..ea465e2d6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dichromat/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDichromat(RPackage):
+ """Collapse red-green or green-blue distinctions to simulate the effects of
+ different types of color-blindness."""
+
+ homepage = "https://cran.r-project.org/web/packages/dichromat/index.html"
+ url = "https://cran.r-project.org/src/contrib/dichromat_2.0-0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/dichromat"
+
+ version('2.0-0', '84e194ac95a69763d740947a7ee346a6')
diff --git a/var/spack/repos/builtin/packages/r-digest/package.py b/var/spack/repos/builtin/packages/r-digest/package.py
new file mode 100644
index 0000000000..7e077442f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-digest/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDigest(RPackage):
+ """Implementation of a function 'digest()' for the creation of hash digests
+ of arbitrary R objects (using the md5, sha-1, sha-256, crc32, xxhash and
+ murmurhash algorithms) permitting easy comparison of R language objects, as
+ well as a function 'hmac()' to create hash-based message authentication
+ code. The md5 algorithm by Ron Rivest is specified in RFC 1321, the sha-1
+ and sha-256 algorithms are specified in FIPS-180-1 and FIPS-180-2, and the
+ crc32 algorithm is described in
+ ftp://ftp.rocksoft.com/cliens/rocksoft/papers/crc_v3.txt. For md5, sha-1,
+ sha-256 and aes, this package uses small standalone implementations that
+ were provided by Christophe Devine. For crc32, code from the zlib library
+ is used. For sha-512, an implementation by Aaron D. Gifford is used. For
+ xxhash, the implementation by Yann Collet is used. For murmurhash, an
+ implementation by Shane Day is used. Please note that this package is not
+ meant to be deployed for cryptographic purposes for which more
+ comprehensive (and widely tested) libraries such as OpenSSL should be
+ used."""
+
+ homepage = "http://dirk.eddelbuettel.com/code/digest.html"
+ url = "https://cran.r-project.org/src/contrib/digest_0.6.9.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/digest"
+
+ version('0.6.9', '48048ce6c466bdb124716e45ba4a0e83')
diff --git a/var/spack/repos/builtin/packages/r-doparallel/package.py b/var/spack/repos/builtin/packages/r-doparallel/package.py
new file mode 100644
index 0000000000..fa039568c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-doparallel/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDoparallel(RPackage):
+ """Provides a parallel backend for the %dopar% function using the parallel
+ package."""
+
+ homepage = "https://cran.r-project.org/web/packages/doParallel/index.html"
+ url = "https://cran.r-project.org/src/contrib/doParallel_1.0.10.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/doParallel"
+
+ version('1.0.10', 'd9fbde8f315d98d055483ee3493c9b43')
+
+ depends_on('r-foreach', type=('build', 'run'))
+ depends_on('r-iterators', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dplyr/package.py b/var/spack/repos/builtin/packages/r-dplyr/package.py
new file mode 100644
index 0000000000..6ffa48adc8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dplyr/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDplyr(RPackage):
+ """A fast, consistent tool for working with data frame like objects, both
+ in memory and out of memory."""
+
+ homepage = "https://github.com/hadley/dplyr"
+ url = "https://cran.r-project.org/src/contrib/dplyr_0.5.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/dplyr"
+
+ version('0.5.0', '1fcafcacca70806eea2e6d465cdb94ef')
+
+ depends_on('r-assertthat', type=('build', 'run'))
+ depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-dbi', type=('build', 'run'))
+ depends_on('r-bh', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dt/package.py b/var/spack/repos/builtin/packages/r-dt/package.py
new file mode 100644
index 0000000000..ae92f5fd24
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dt/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDt(RPackage):
+ """Data objects in R can be rendered as HTML tables using the JavaScript
+ library 'DataTables' (typically via R Markdown or Shiny). The 'DataTables'
+ library has been included in this R package. The package name 'DT' is an
+ abbreviation of 'DataTables'."""
+
+ homepage = "http://rstudio.github.io/DT"
+ url = "https://cran.r-project.org/src/contrib/DT_0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/DT/"
+
+ version('0.1', '5c8df984921fa484784ec4b8a4fb6f3c')
+
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dygraphs/package.py b/var/spack/repos/builtin/packages/r-dygraphs/package.py
new file mode 100644
index 0000000000..323fb6d584
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dygraphs/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RDygraphs(RPackage):
+ """An R interface to the 'dygraphs' JavaScript charting library (a copy of
+ which is included in the package). Provides rich facilities for charting
+ time-series data in R, including highly configurable series- and
+ axis-display and interactive features like zoom/pan and series/point
+ highlighting."""
+
+ homepage = "https://cran.r-project.org/web/packages/dygraphs/index.html"
+ url = "https://cran.r-project.org/src/contrib/dygraphs_0.9.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/dygraphs"
+
+ version('0.9', '7f0ce4312bcd3f0a58b8c03b2772f833')
+
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-zoo', type=('build', 'run'))
+ depends_on('r-xts', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-e1071/package.py b/var/spack/repos/builtin/packages/r-e1071/package.py
new file mode 100644
index 0000000000..4d79fcccd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-e1071/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RE1071(RPackage):
+ """Functions for latent class analysis, short time Fourier transform, fuzzy
+ clustering, support vector machines, shortest path computation, bagged
+ clustering, naive Bayes classifier, ..."""
+
+ homepage = "https://cran.r-project.org/package=e1071"
+ url = "https://cran.r-project.org/src/contrib/e1071_1.6-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/e1071"
+
+ version('1.6-7', 'd109a7e3dd0c905d420e327a9a921f5a')
+
+ depends_on('r-class', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-evaluate/package.py b/var/spack/repos/builtin/packages/r-evaluate/package.py
new file mode 100644
index 0000000000..cf6c72dc62
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-evaluate/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+
+from spack import *
+
+
+class REvaluate(RPackage):
+ """Parsing and evaluation tools that make it easy to recreate the command
+ line behaviour of R."""
+
+ homepage = "https://github.com/hadley/evaluate"
+ url = "https://cran.rstudio.com/src/contrib/evaluate_0.9.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/evaluate"
+
+ version('0.9', '877d89ce8a9ef7f403b1089ca1021775')
+
+ depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-filehash/package.py b/var/spack/repos/builtin/packages/r-filehash/package.py
index fffae68019..b17335ed11 100644
--- a/var/spack/repos/builtin/packages/r-filehash/package.py
+++ b/var/spack/repos/builtin/packages/r-filehash/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class RFilehash(Package):
+
+class RFilehash(RPackage):
"""Implements a simple key-value style database where character string keys
are associated with data values that are stored on the disk. A simple
interface is provided for inserting, retrieving, and deleting data from the
@@ -37,10 +38,6 @@ class RFilehash(Package):
homepage = 'https://cran.r-project.org/'
url = "https://cran.r-project.org/src/contrib/filehash_2.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/filehash"
- version('2.3', '01fffafe09b148ccadc9814c103bdc2f', expand=False)
-
- extends('R')
-
- def install(self, spec, prefix):
- R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
+ version('2.3', '01fffafe09b148ccadc9814c103bdc2f')
diff --git a/var/spack/repos/builtin/packages/r-foreach/package.py b/var/spack/repos/builtin/packages/r-foreach/package.py
new file mode 100644
index 0000000000..78efe02188
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-foreach/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RForeach(RPackage):
+ """Support for the foreach looping construct. Foreach is an idiom that
+ allows for iterating over elements in a collection, without the use of an
+ explicit loop counter. This package in particular is intended to be used
+ for its return value, rather than for its side effects. In that sense, it
+ is similar to the standard lapply function, but doesn't require the
+ evaluation of a function. Using foreach without side effects also
+ facilitates executing the loop in parallel."""
+
+ homepage = "https://cran.r-project.org/web/packages/foreach/index.html"
+ url = "https://cran.r-project.org/src/contrib/foreach_1.4.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/foreach"
+
+ version('1.4.3', 'ef45768126661b259f9b8994462c49a0')
+
+ depends_on('r-codetools', type=('build', 'run'))
+ depends_on('r-iterators', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-foreign/package.py b/var/spack/repos/builtin/packages/r-foreign/package.py
new file mode 100644
index 0000000000..b293f091c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-foreign/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RForeign(RPackage):
+ """Functions for reading and writing data stored by some versions of Epi
+ Info, Minitab, S, SAS, SPSS, Stata, Systat and Weka and for reading and
+ writing some dBase files."""
+
+ homepage = "https://cran.r-project.org/web/packages/foreign/index.html"
+ url = "https://cran.r-project.org/src/contrib/foreign_0.8-66.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/foreign"
+
+ version('0.8-66', 'ff12190f4631dca31e30ca786c2c8f62')
diff --git a/var/spack/repos/builtin/packages/r-formatr/package.py b/var/spack/repos/builtin/packages/r-formatr/package.py
new file mode 100644
index 0000000000..011111af07
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-formatr/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RFormatr(RPackage):
+ """Provides a function tidy_source() to format R source code. Spaces and
+ indent will be added to the code automatically, and comments will be
+ preserved under certain conditions, so that R code will be more
+ human-readable and tidy. There is also a Shiny app as a user interface in
+ this package."""
+
+ homepage = "http://yihui.name/formatR"
+ url = "https://cran.r-project.org/src/contrib/formatR_1.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/formatR"
+
+ version('1.4', '98b9b64b2785b35f9df403e1aab6c73c')
+
+ depends_on('r-codetools', type=('build', 'run'))
+ depends_on('r-shiny', type=('build', 'run'))
+ depends_on('r-testit', type=('build', 'run'))
+ # depends_on('r-knitr', type=('build', 'run')) - mutual dependency
diff --git a/var/spack/repos/builtin/packages/r-formula/package.py b/var/spack/repos/builtin/packages/r-formula/package.py
new file mode 100644
index 0000000000..5515ca91a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-formula/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RFormula(RPackage):
+ """Infrastructure for extended formulas with multiple parts on the right-hand
+ side and/or multiple responses on the left-hand side."""
+
+ homepage = "https://cran.r-project.org/package=Formula"
+ url = "https://cran.r-project.org/src/contrib/Formula_1.2-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/Formula"
+
+ version('1.2-1', '2afb31e637cecd0c1106317aca1e4849')
diff --git a/var/spack/repos/builtin/packages/r-gdata/package.py b/var/spack/repos/builtin/packages/r-gdata/package.py
new file mode 100644
index 0000000000..ef001699bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gdata/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGdata(RPackage):
+ """Various R programming tools for data manipulation, including: - medical
+ unit conversions ('ConvertMedUnits', 'MedUnits'), - combining objects
+ ('bindData', 'cbindX', 'combine', 'interleave'), - character vector
+ operations ('centerText', 'startsWith', 'trim'), - factor manipulation
+ ('levels', 'reorder.factor', 'mapLevels'), - obtaining information about R
+ objects ('object.size', 'elem', 'env', 'humanReadable', 'is.what', 'll',
+ 'keep', 'ls.funs', 'Args','nPairs', 'nobs'), - manipulating MS-Excel
+ formatted files ('read.xls', 'installXLSXsupport', 'sheetCount',
+ 'xlsFormats'), - generating fixed-width format files ('write.fwf'), -
+ extricating components of date & time objects ('getYear', 'getMonth',
+ 'getDay', 'getHour', 'getMin', 'getSec'), - operations on columns of data
+ frames ('matchcols', 'rename.vars'), - matrix operations ('unmatrix',
+ 'upperTriangle', 'lowerTriangle'), - operations on vectors ('case',
+ 'unknownToNA', 'duplicated2', 'trimSum'), - operations on data frames
+ ('frameApply', 'wideByFactor'), - value of last evaluated expression
+ ('ans'), and - wrapper for 'sample' that ensures consistent behavior for
+ both scalar and vector arguments ('resample')."""
+
+ homepage = "https://cran.r-project.org/package=gdata"
+ url = "https://cran.r-project.org/src/contrib/gdata_2.17.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gdata"
+
+ version('2.17.0', 'c716b663b9dc16ad8cafe6acc781a75f')
+
+ depends_on('r-gtools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-geosphere/package.py b/var/spack/repos/builtin/packages/r-geosphere/package.py
new file mode 100644
index 0000000000..d90594a3e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-geosphere/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGeosphere(RPackage):
+ """Spherical trigonometry for geographic applications. That is, compute
+ distances and related measures for angular (longitude/latitude)
+ locations."""
+
+ homepage = "https://cran.r-project.org/package=geosphere"
+ url = "https://cran.r-project.org/src/contrib/geosphere_1.5-5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/geosphere"
+
+ version('1.5-5', '28efb7a8e266c7f076cdbcf642455f3e')
+
+ depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggmap/package.py b/var/spack/repos/builtin/packages/r-ggmap/package.py
new file mode 100644
index 0000000000..65a69553a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ggmap/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGgmap(RPackage):
+ """A collection of functions to visualize spatial data and models on top of
+ static maps from various online sources (e.g Google Maps and Stamen Maps).
+ It includes tools common to those tasks, including functions for
+ geolocation and routing."""
+
+ homepage = "https://github.com/dkahle/ggmap"
+ url = "https://cran.r-project.org/src/contrib/ggmap_2.6.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/ggmap"
+
+ version('2.6.1', '25ad414a3a1c6d59a227a9f22601211a')
+
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-proto', type=('build', 'run'))
+ depends_on('r-rgooglemaps', type=('build', 'run'))
+ depends_on('r-png', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-rjson', type=('build', 'run'))
+ depends_on('r-mapproj', type=('build', 'run'))
+ depends_on('r-jpeg', type=('build', 'run'))
+ depends_on('r-geosphere', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggplot2/package.py b/var/spack/repos/builtin/packages/r-ggplot2/package.py
new file mode 100644
index 0000000000..3b4c437f0c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ggplot2/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGgplot2(RPackage):
+ """An implementation of the grammar of graphics in R. It combines the
+ advantages of both base and lattice graphics: conditioning and shared axes
+ are handled automatically, and you can still build up a plot step by step
+ from multiple data sources. It also implements a sophisticated
+ multidimensional conditioning system and a consistent interface to map data
+ to aesthetic attributes. See http://ggplot2.org for more information,
+ documentation and examples."""
+
+ homepage = "http://ggplot2.org/"
+ url = "https://cran.r-project.org/src/contrib/ggplot2_2.1.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/ggplot2"
+
+ version('2.1.0', '771928cfb97c649c720423deb3ec7fd3')
+
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-gtable', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggvis/package.py b/var/spack/repos/builtin/packages/r-ggvis/package.py
new file mode 100644
index 0000000000..5acbff04b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ggvis/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGgvis(RPackage):
+ """An implementation of an interactive grammar of graphics, taking the best
+ parts of 'ggplot2', combining them with the reactive framework from 'shiny'
+ and web graphics from 'vega'."""
+
+ homepage = "http://ggvis.rstudio.com/"
+ url = "https://cran.r-project.org/src/contrib/ggvis_0.4.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/ggvis"
+
+ version('0.4.2', '039f45e5c7f1e0652779163d7d99f922')
+
+ depends_on('r-assertthat', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-shiny', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gistr/package.py b/var/spack/repos/builtin/packages/r-gistr/package.py
new file mode 100644
index 0000000000..67c34cfffc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gistr/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RGistr(RPackage):
+ """Work with 'GitHub' 'gists' from 'R'. This package allows the user to
+ create new 'gists', update 'gists' with new files, rename files, delete
+ files, get and delete 'gists', star and 'un-star' 'gists', fork 'gists',
+ open a 'gist' in your default browser, get embed code for a 'gist', list
+ 'gist' 'commits', and get rate limit information when 'authenticated'. Some
+ requests require authentication and some do not."""
+
+ homepage = "https://github.com/ropensci/gistr"
+ url = "https://cran.r-project.org/src/contrib/gistr_0.3.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gistr"
+
+ version('0.3.6', '49d548cb3eca0e66711aece37757a2c0')
+
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-httr', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-assertthat', type=('build', 'run'))
+ depends_on('r-knitr', type=('build', 'run'))
+ depends_on('r-rmarkdown', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-git2r/package.py b/var/spack/repos/builtin/packages/r-git2r/package.py
new file mode 100644
index 0000000000..7c4ff3144b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-git2r/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGit2r(RPackage):
+ """Interface to the 'libgit2' library, which is a pure C implementation of
+ the 'Git' core methods. Provides access to 'Git' repositories to extract
+ data and running some basic 'Git' commands."""
+
+ homepage = "https://github.com/ropensci/git2r"
+ url = "https://cran.r-project.org/src/contrib/git2r_0.15.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/git2r"
+
+ version('0.15.0', '57658b3298f9b9aadc0dd77b4ef6a1e1')
+
+ depends_on('zlib')
+ depends_on('openssl')
diff --git a/var/spack/repos/builtin/packages/r-glmnet/package.py b/var/spack/repos/builtin/packages/r-glmnet/package.py
new file mode 100644
index 0000000000..ac44d42c12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-glmnet/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGlmnet(RPackage):
+ """Extremely efficient procedures for fitting the entire lasso or
+ elastic-net regularization path for linear regression, logistic and
+ multinomial regression models, Poisson regression and the Cox model. Two
+ recent additions are the multiple-response Gaussian, and the grouped
+ multinomial. The algorithm uses cyclical coordinate descent in a path-wise
+ fashion, as described in the paper linked to via the URL below."""
+
+ homepage = "http://www.jstatsoft.org/v33/i01/"
+ url = "https://cran.r-project.org/src/contrib/glmnet_2.0-5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/glmnet"
+
+ version('2.0-5', '049b18caa29529614cd684db3beaec2a')
+
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-foreach', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-googlevis/package.py b/var/spack/repos/builtin/packages/r-googlevis/package.py
new file mode 100644
index 0000000000..29916965b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-googlevis/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGooglevis(RPackage):
+ """R interface to Google Charts API, allowing users to create interactive
+ charts based on data frames. Charts are displayed locally via the R HTTP
+ help server. A modern browser with an Internet connection is required and
+ for some charts a Flash player. The data remains local and is not uploaded
+ to Google."""
+
+ homepage = "https://github.com/mages/googleVis#googlevis"
+ url = "https://cran.r-project.org/src/contrib/googleVis_0.6.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/googleVis"
+
+ version('0.6.0', 'ec36fd2a6884ddc7baa894007d0d0468')
+
+ depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gridbase/package.py b/var/spack/repos/builtin/packages/r-gridbase/package.py
new file mode 100644
index 0000000000..73d87c7e49
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gridbase/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGridbase(RPackage):
+ """Integration of base and grid graphics."""
+
+ homepage = "https://cran.r-project.org/web/packages/gridBase/index.html"
+ url = "https://cran.r-project.org/src/contrib/gridBase_0.4-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gridBase"
+
+ version('0.4-7', '6d5064a85f5c966a92ee468ae44c5f1f')
diff --git a/var/spack/repos/builtin/packages/r-gridextra/package.py b/var/spack/repos/builtin/packages/r-gridextra/package.py
new file mode 100644
index 0000000000..304035dc06
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gridextra/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGridextra(RPackage):
+ """Provides a number of user-level functions to work with "grid" graphics,
+ notably to arrange multiple grid-based plots on a page, and draw tables."""
+
+ homepage = "https://github.com/baptiste/gridextra"
+ url = "https://cran.r-project.org/src/contrib/gridExtra_2.2.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gridExtra"
+
+ version('2.2.1', '7076c2122d387c7ef3add69a1c4fc1b2')
+
+ depends_on('r-gtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gtable/package.py b/var/spack/repos/builtin/packages/r-gtable/package.py
new file mode 100644
index 0000000000..236416755b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gtable/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGtable(RPackage):
+ """Tools to make it easier to work with "tables" of 'grobs'."""
+
+ homepage = "https://cran.r-project.org/web/packages/gtable/index.html"
+ url = "https://cran.r-project.org/src/contrib/gtable_0.2.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gtable"
+
+ version('0.2.0', '124090ae40b2dd3170ae11180e0d4cab')
diff --git a/var/spack/repos/builtin/packages/r-gtools/package.py b/var/spack/repos/builtin/packages/r-gtools/package.py
new file mode 100644
index 0000000000..632187b49e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gtools/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RGtools(RPackage):
+ """Functions to assist in R programming, including: - assist in developing,
+ updating, and maintaining R and R packages ('ask', 'checkRVersion',
+ 'getDependencies', 'keywords', 'scat'), - calculate the logit and inverse
+ logit transformations ('logit', 'inv.logit'), - test if a value is missing,
+ empty or contains only NA and NULL values ('invalid'), - manipulate R's
+ .Last function ('addLast'), - define macros ('defmacro'), - detect odd and
+ even integers ('odd', 'even'), - convert strings containing non-ASCII
+ characters (like single quotes) to plain ASCII ('ASCIIfy'), - perform a
+ binary search ('binsearch'), - sort strings containing both numeric and
+ character components ('mixedsort'), - create a factor variable from the
+ quantiles of a continuous variable ('quantcut'), - enumerate permutations
+ and combinations ('combinations', 'permutation'), - calculate and convert
+ between fold-change and log-ratio ('foldchange', 'logratio2foldchange',
+ 'foldchange2logratio'), - calculate probabilities and generate random
+ numbers from Dirichlet distributions ('rdirichlet', 'ddirichlet'), - apply
+ a function over adjacent subsets of a vector ('running'), - modify the
+ TCP\_NODELAY ('de-Nagle') flag for socket objects, - efficient 'rbind' of
+ data frames, even if the column names don't match ('smartbind'), - generate
+ significance stars from p-values ('stars.pval'), - convert characters
+ to/from ASCII codes."""
+
+ homepage = "https://cran.r-project.org/package=gtools"
+ url = "https://cran.r-project.org/src/contrib/gtools_3.5.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/gtools"
+
+ version('3.5.0', '45f8800c0336d35046641fbacc56bdbb')
diff --git a/var/spack/repos/builtin/packages/r-hexbin/package.py b/var/spack/repos/builtin/packages/r-hexbin/package.py
new file mode 100644
index 0000000000..0a5c66c1a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-hexbin/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RHexbin(RPackage):
+ """Binning and plotting functions for hexagonal bins. Now uses and relies
+ on grid graphics and formal (S4) classes and methods."""
+
+ homepage = "http://github.com/edzer/hexbin"
+ url = "https://cran.r-project.org/src/contrib/hexbin_1.27.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/hexbin"
+
+ version('1.27.1', '7f380390c6511e97df10a810a3b3bb7c')
+
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-highr/package.py b/var/spack/repos/builtin/packages/r-highr/package.py
new file mode 100644
index 0000000000..13164f9c60
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-highr/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RHighr(RPackage):
+ """Provides syntax highlighting for R source code. Currently it supports
+ LaTeX and HTML output. Source code of other languages is supported via
+ Andre Simon's highlight package."""
+
+ homepage = "https://github.com/yihui/highr"
+ url = "https://cran.r-project.org/src/contrib/highr_0.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/highr"
+
+ version('0.6', 'bf47388c5f57dc61962362fb7e1d8b16')
diff --git a/var/spack/repos/builtin/packages/r-htmltools/package.py b/var/spack/repos/builtin/packages/r-htmltools/package.py
new file mode 100644
index 0000000000..9374e1f9cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-htmltools/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RHtmltools(RPackage):
+ """Tools for HTML generation and output."""
+
+ homepage = "https://github.com/rstudio/htmltools"
+ url = "https://cran.r-project.org/src/contrib/htmltools_0.3.5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/htmltools"
+
+ version('0.3.5', '5f001aff4a39e329f7342dcec5139724')
+
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-htmlwidgets/package.py b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
new file mode 100644
index 0000000000..85ab593245
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RHtmlwidgets(RPackage):
+ """A framework for creating HTML widgets that render in various contexts
+ including the R console, 'R Markdown' documents, and 'Shiny' web
+ applications."""
+
+ homepage = "https://github.com/ramnathv/htmlwidgets"
+ url = "https://cran.r-project.org/src/contrib/htmlwidgets_0.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/htmlwidgets"
+
+ version('0.6', '7fa522d2eda97593978021bda9670c0e')
+
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-yaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-httpuv/package.py b/var/spack/repos/builtin/packages/r-httpuv/package.py
new file mode 100644
index 0000000000..e4b60893b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-httpuv/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RHttpuv(RPackage):
+ """Provides low-level socket and protocol support for handling HTTP and
+ WebSocket requests directly from within R. It is primarily intended as a
+ building block for other packages, rather than making it particularly easy
+ to create complete web applications using httpuv alone. httpuv is built on
+ top of the libuv and http-parser C libraries, both of which were developed
+ by Joyent, Inc. (See LICENSE file for libuv and http-parser license
+ information.)"""
+
+ homepage = "https://github.com/rstudio/httpuv"
+ url = "https://cran.r-project.org/src/contrib/httpuv_1.3.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/httpuv"
+
+ version('1.3.3', 'c78ae068cf59e949b9791be987bb4489')
+
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-httr/package.py b/var/spack/repos/builtin/packages/r-httr/package.py
new file mode 100644
index 0000000000..55a5b0efab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-httr/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RHttr(RPackage):
+ """Useful tools for working with HTTP organised by HTTP verbs (GET(),
+ POST(), etc). Configuration functions make it easy to control additional
+ request components (authenticate(), add_headers() and so on)."""
+
+ homepage = "https://github.com/hadley/httr"
+ url = "https://cran.r-project.org/src/contrib/httr_1.1.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/httr"
+
+ version('1.1.0', '5ffbbc5c2529e49f00aaa521a2b35600')
+
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-mime', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-openssl', type=('build', 'run'))
+ depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-igraph/package.py b/var/spack/repos/builtin/packages/r-igraph/package.py
new file mode 100644
index 0000000000..993a80ae1c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-igraph/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RIgraph(RPackage):
+ """Routines for simple graphs and network analysis. It can handle large
+ graphs very well and provides functions for generating random and regular
+ graphs, graph visualization, centrality methods and much more."""
+
+ homepage = "http://igraph.org/"
+ url = "https://cran.r-project.org/src/contrib/igraph_1.0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/igraph"
+
+ version('1.0.1', 'ea33495e49adf4a331e4ba60ba559065')
+
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-nmf', type=('build', 'run'))
+ depends_on('r-irlba', type=('build', 'run'))
+ depends_on('gmp')
+ depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/r-influencer/package.py b/var/spack/repos/builtin/packages/r-influencer/package.py
new file mode 100644
index 0000000000..bbfed54e25
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-influencer/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RInfluencer(RPackage):
+ """Provides functionality to compute various node centrality measures on
+ networks. Included are functions to compute betweenness centrality (by
+ utilizing Madduri and Bader's SNAP library), implementations of Burt's
+ constraint and effective network size (ENS) metrics, Borgatti's algorithm
+ to identify key players, and Valente's bridging metric. On Unix systems,
+ the betweenness, Key Players, and bridging implementations are parallelized
+ with OpenMP, which may run faster on systems which have OpenMP
+ configured."""
+
+ homepage = "https://github.com/rcc-uchicago/influenceR"
+ url = "https://cran.r-project.org/src/contrib/influenceR_0.1.0.tar.gz"
+
+ version('0.1.0', '6c8b6decd78c341364b5811fb3050ba5')
+
+ depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-inline/package.py b/var/spack/repos/builtin/packages/r-inline/package.py
new file mode 100644
index 0000000000..f30c87dc9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-inline/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RInline(RPackage):
+ """Functionality to dynamically define R functions and S4 methods with
+ inlined C, C++ or Fortran code supporting .C and .Call calling
+ conventions."""
+
+ homepage = "https://cran.r-project.org/web/packages/inline/index.html"
+ url = "https://cran.r-project.org/src/contrib/inline_0.3.14.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/inline"
+
+ version('0.3.14', '9fe304a6ebf0e3889c4c6a7ad1c50bca')
diff --git a/var/spack/repos/builtin/packages/r-irdisplay/package.py b/var/spack/repos/builtin/packages/r-irdisplay/package.py
new file mode 100644
index 0000000000..f02c00d8ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-irdisplay/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RIrdisplay(RPackage):
+ """An interface to the rich display capabilities of Jupyter front-ends
+ (e.g. 'Jupyter Notebook') Designed to be used from a running IRkernel
+ session"""
+
+ homepage = "https://irkernel.github.io"
+ url = "https://cran.rstudio.com/src/contrib/IRdisplay_0.4.4.tar.gz"
+
+ version('0.4.4', '5be672fb82185b90f23bd99ac1e1cdb6')
+
+ depends_on('r-repr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irkernel/package.py b/var/spack/repos/builtin/packages/r-irkernel/package.py
new file mode 100644
index 0000000000..e69b77f9f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-irkernel/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RIrkernel(RPackage):
+ """R kernel for Jupyter"""
+
+ homepage = "https://irkernel.github.io/"
+
+ # Git repository
+ version('master', git='https://github.com/IRkernel/IRkernel.git',
+ tag='0.7')
+
+ depends_on('r-repr', type=('build', 'run'))
+ depends_on('r-irdisplay', type=('build', 'run'))
+ depends_on('r-evaluate', type=('build', 'run'))
+ depends_on('r-crayon', type=('build', 'run'))
+ depends_on('r-pbdzmq', type=('build', 'run'))
+ depends_on('r-devtools', type=('build', 'run'))
+ depends_on('r-uuid', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irlba/package.py b/var/spack/repos/builtin/packages/r-irlba/package.py
new file mode 100644
index 0000000000..e0d1b32565
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-irlba/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RIrlba(RPackage):
+ """Fast and memory efficient methods for truncated singular and eigenvalue
+ decompositions and principal component analysis of large sparse or dense
+ matrices."""
+
+ homepage = "https://cran.r-project.org/web/packages/irlba/index.html"
+ url = "https://cran.r-project.org/src/contrib/irlba_2.0.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/irlba"
+
+ version('2.0.0', '557674cf8b68fea5b9f231058c324d26')
+
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-iterators/package.py b/var/spack/repos/builtin/packages/r-iterators/package.py
new file mode 100644
index 0000000000..38dff8f9ac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-iterators/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RIterators(RPackage):
+ """Support for iterators, which allow a programmer to traverse through all
+ the elements of a vector, list, or other collection of data."""
+
+ homepage = "https://cran.r-project.org/web/packages/iterators/index.html"
+ url = "https://cran.r-project.org/src/contrib/iterators_1.0.8.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/iterators"
+
+ version('1.0.8', '2ded7f82cddd8174f1ec98607946c6ee')
diff --git a/var/spack/repos/builtin/packages/r-jpeg/package.py b/var/spack/repos/builtin/packages/r-jpeg/package.py
new file mode 100644
index 0000000000..02c42b5ff1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-jpeg/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RJpeg(RPackage):
+ """This package provides an easy and simple way to read, write and display
+ bitmap images stored in the JPEG format. It can read and write both files
+ and in-memory raw vectors."""
+
+ homepage = "http://www.rforge.net/jpeg/"
+ url = "https://cran.r-project.org/src/contrib/jpeg_0.1-8.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/jpeg"
+
+ version('0.1-8', '696007451d14395b1ed1d0e9af667a57')
+
+ depends_on('jpeg')
diff --git a/var/spack/repos/builtin/packages/r-jsonlite/package.py b/var/spack/repos/builtin/packages/r-jsonlite/package.py
new file mode 100644
index 0000000000..7368187af5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-jsonlite/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RJsonlite(RPackage):
+ """A fast JSON parser and generator optimized for statistical data and the
+ web. Started out as a fork of 'RJSONIO', but has been completely rewritten
+ in recent versions. The package offers flexible, robust, high performance
+ tools for working with JSON in R and is particularly powerful for building
+ pipelines and interacting with a web API. The implementation is based on
+ the mapping described in the vignette (Ooms, 2014). In addition to
+ converting JSON data from/to R objects, 'jsonlite' contains functions to
+ stream, validate, and prettify JSON data. The unit tests included with the
+ package verify that all edge cases are encoded and decoded consistently for
+ use with dynamic data in systems and applications."""
+
+ homepage = "https://github.com/jeroenooms/jsonlite"
+ url = "https://cran.r-project.org/src/contrib/jsonlite_1.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/jsonlite"
+
+ version('1.0', 'c8524e086de22ab39b8ac8000220cc87')
+ version('0.9.21', '4fc382747f88a79ff0718a0d06bed45d')
diff --git a/var/spack/repos/builtin/packages/r-knitr/package.py b/var/spack/repos/builtin/packages/r-knitr/package.py
new file mode 100644
index 0000000000..dd92474944
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-knitr/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RKnitr(RPackage):
+ """Provides a general-purpose tool for dynamic report generation in R using
+ Literate Programming techniques."""
+
+ homepage = "http://yihui.name/knitr/"
+ url = "https://cran.rstudio.com/src/contrib/knitr_1.14.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/knitr"
+
+ version('1.14', 'ef0fbeaa9372f99ffbc57212a7781511')
+ version('0.6', 'c67d6db84cd55594a9e870c90651a3db')
+
+ depends_on('r-evaluate', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-formatr', type=('build', 'run'))
+ depends_on('r-highr', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-markdown', type=('build', 'run'))
+ depends_on('r-yaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-labeling/package.py b/var/spack/repos/builtin/packages/r-labeling/package.py
new file mode 100644
index 0000000000..7c288c63a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-labeling/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLabeling(RPackage):
+ """Provides a range of axis labeling algorithms."""
+
+ homepage = "https://cran.r-project.org/web/packages/labeling/index.html"
+ url = "https://cran.r-project.org/src/contrib/labeling_0.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/labeling"
+
+ version('0.3', 'ccd7082ec0b211aba8a89d85176bb534')
diff --git a/var/spack/repos/builtin/packages/r-lattice/package.py b/var/spack/repos/builtin/packages/r-lattice/package.py
new file mode 100644
index 0000000000..ed3c19f2e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lattice/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLattice(RPackage):
+ """A powerful and elegant high-level data visualization system inspired by
+ Trellis graphics, with an emphasis on multivariate data. Lattice is
+ sufficient for typical graphics needs, and is also flexible enough to
+ handle most nonstandard requirements. See ?Lattice for an introduction."""
+
+ homepage = "http://lattice.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/lattice_0.20-34.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/lattice"
+
+ version('0.20-34', 'c2a648b22d4206ae7526fb70b8e90fed')
diff --git a/var/spack/repos/builtin/packages/r-lazyeval/package.py b/var/spack/repos/builtin/packages/r-lazyeval/package.py
new file mode 100644
index 0000000000..ab41a39675
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lazyeval/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLazyeval(RPackage):
+ """An alternative approach to non-standard evaluation using formulas.
+ Provides a full implementation of LISP style 'quasiquotation', making it
+ easier to generate code with other code."""
+
+ homepage = "https://cran.r-project.org/web/packages/lazyeval/index.html"
+ url = "https://cran.r-project.org/src/contrib/lazyeval_0.2.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/lazyeval"
+
+ version('0.2.0', 'df1daac908dcf02ae7e12f4335b1b13b')
diff --git a/var/spack/repos/builtin/packages/r-leaflet/package.py b/var/spack/repos/builtin/packages/r-leaflet/package.py
new file mode 100644
index 0000000000..62c2cf3c7c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-leaflet/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLeaflet(RPackage):
+ """Create and customize interactive maps using the 'Leaflet' JavaScript
+ library and the 'htmlwidgets' package. These maps can be used directly from
+ the R console, from 'RStudio', in Shiny apps and R Markdown documents."""
+
+ homepage = "http://rstudio.github.io/leaflet/"
+ url = "https://cran.r-project.org/src/contrib/leaflet_1.0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/leaflet"
+
+ version('1.0.1', '7f3d8b17092604d87d4eeb579f73d5df')
+
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-markdown', type=('build', 'run'))
+ depends_on('r-png', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lme4/package.py b/var/spack/repos/builtin/packages/r-lme4/package.py
new file mode 100644
index 0000000000..0ca545ced9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lme4/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLme4(RPackage):
+ """Fit linear and generalized linear mixed-effects models. The models and
+ their components are represented using S4 classes and methods. The core
+ computational algorithms are implemented using the 'Eigen' C++ library for
+ numerical linear algebra and 'RcppEigen' "glue"."""
+
+ homepage = "https://github.com/lme4/lme4/"
+ url = "https://cran.r-project.org/src/contrib/lme4_1.1-12.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/lme4"
+
+ version('1.1-12', 'da8aaebb67477ecb5631851c46207804')
+
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-nlme', type=('build', 'run'))
+ depends_on('r-minqa', type=('build', 'run'))
+ depends_on('r-nloptr', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rcppeigen', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lmtest/package.py b/var/spack/repos/builtin/packages/r-lmtest/package.py
new file mode 100644
index 0000000000..3d17dd2a7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lmtest/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLmtest(RPackage):
+ """A collection of tests, data sets, and examples for diagnostic checking
+ in linear regression models. Furthermore, some generic tools for inference
+ in parametric models are provided."""
+
+ homepage = "https://cran.r-project.org/package=lmtest"
+ url = "https://cran.r-project.org/src/contrib/lmtest_0.9-34.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/lmtest"
+
+ version('0.9-34', 'fcdf7286bb5ccc2ca46be00bf25ac2fe')
+
+ depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lubridate/package.py b/var/spack/repos/builtin/packages/r-lubridate/package.py
new file mode 100644
index 0000000000..159e84e292
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lubridate/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RLubridate(RPackage):
+ """Functions to work with date-times and timespans: fast and user friendly
+ parsing of date-time data, extraction and updating of components of a
+ date-time (years, months, days, hours, minutes, and seconds), algebraic
+ manipulation on date-time and timespan objects. The 'lubridate' package has
+ a consistent and memorable syntax that makes working with dates easy and
+ fun."""
+
+ homepage = "https://cran.r-project.org/web/packages/lubridate/index.html"
+ url = "https://cran.r-project.org/src/contrib/lubridate_1.5.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/lubridate"
+
+ version('1.5.6', 'a5dc44817548ee219d26a10bae92e611')
+
+ depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-magic/package.py b/var/spack/repos/builtin/packages/r-magic/package.py
index f86917ec0c..b0987adcd7 100644
--- a/var/spack/repos/builtin/packages/r-magic/package.py
+++ b/var/spack/repos/builtin/packages/r-magic/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class RMagic(Package):
+
+class RMagic(RPackage):
"""A collection of efficient, vectorized algorithms for the creation and
investigation of magic squares and hypercubes, including a variety of
functions for the manipulation and analysis of arbitrarily dimensioned
@@ -32,12 +33,8 @@ class RMagic(Package):
homepage = "https://cran.r-project.org/"
url = "https://cran.r-project.org/src/contrib/magic_1.5-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/magic"
- version('1.5-6', 'a68e5ced253b2196af842e1fc84fd029', expand=False)
-
- extends('R')
-
- depends_on('r-abind')
+ version('1.5-6', 'a68e5ced253b2196af842e1fc84fd029')
- def install(self, spec, prefix):
- R('CMD', 'INSTALL', '--library=%s' % self.module.r_lib_dir, '%s' % self.stage.archive_file)
+ depends_on('r-abind', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-magrittr/package.py b/var/spack/repos/builtin/packages/r-magrittr/package.py
new file mode 100644
index 0000000000..915797e11d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-magrittr/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMagrittr(RPackage):
+ """Provides a mechanism for chaining commands with a new forward-pipe
+ operator, %>%. This operator will forward a value, or the result of an
+ expression, into the next function call/expression. There is flexible
+ support for the type of right-hand side expressions. For more information,
+ see package vignette."""
+
+ homepage = "https://cran.r-project.org/web/packages/magrittr/index.html"
+ url = "https://cran.r-project.org/src/contrib/magrittr_1.5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/magrittr"
+
+ version('1.5', 'e74ab7329f2b9833f0c3c1216f86d65a')
diff --git a/var/spack/repos/builtin/packages/r-mapproj/package.py b/var/spack/repos/builtin/packages/r-mapproj/package.py
new file mode 100644
index 0000000000..3475868abd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mapproj/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMapproj(RPackage):
+ """Converts latitude/longitude into projected coordinates."""
+
+ homepage = "https://cran.r-project.org/package=mapproj"
+ url = "https://cran.r-project.org/src/contrib/mapproj_1.2-4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/mapproj"
+
+ version('1.2-4', '10e22bde1c790e1540672f15ddcaee71')
+
+ depends_on('r-maps', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-maps/package.py b/var/spack/repos/builtin/packages/r-maps/package.py
new file mode 100644
index 0000000000..c399bc52f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-maps/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMaps(RPackage):
+ """Display of maps. Projection code and larger maps are in separate
+ packages ('mapproj' and 'mapdata')."""
+
+ homepage = "https://cran.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/maps_3.1.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/maps"
+
+ version('3.1.1', 'ff045eccb6d5a658db5a539116ddf764')
diff --git a/var/spack/repos/builtin/packages/r-maptools/package.py b/var/spack/repos/builtin/packages/r-maptools/package.py
new file mode 100644
index 0000000000..74d0673aea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-maptools/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMaptools(RPackage):
+ """Set of tools for manipulating and reading geographic data, in particular
+ ESRI shapefiles; C code used from shapelib. It includes binary access to
+ GSHHG shoreline files. The package also provides interface wrappers for
+ exchanging spatial objects with packages such as PBSmapping, spatstat,
+ maps, RArcInfo, Stata tmap, WinBUGS, Mondrian, and others."""
+
+ homepage = "http://r-forge.r-project.org/projects/maptools/"
+ url = "https://cran.r-project.org/src/contrib/maptools_0.8-39.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/maptools"
+
+ version('0.8-39', '3690d96afba8ef22c8e27ae540ffb836')
+
+ depends_on('r-sp', type=('build', 'run'))
+ depends_on('r-foreign', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-markdown/package.py b/var/spack/repos/builtin/packages/r-markdown/package.py
new file mode 100644
index 0000000000..c0e03fef0a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-markdown/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMarkdown(RPackage):
+ """Provides R bindings to the 'Sundown' 'Markdown' rendering library
+ (https://github.com/vmg/sundown). 'Markdown' is a plain-text formatting
+ syntax that can be converted to 'XHTML' or other formats. See
+ http://en.wikipedia.org/wiki/Markdown for more information about
+ 'Markdown'."""
+
+ homepage = "https://github.com/rstudio/markdown"
+ url = "https://cran.r-project.org/src/contrib/markdown_0.7.7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/markdown"
+
+ version('0.7.7', '72deca9c675c7cc9343048edbc29f7ff')
+
+ depends_on('r-mime', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mass/package.py b/var/spack/repos/builtin/packages/r-mass/package.py
new file mode 100644
index 0000000000..25d3b5869b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mass/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMass(RPackage):
+ """Functions and datasets to support Venables and Ripley, "Modern Applied
+ Statistics with S" (4th edition, 2002)."""
+
+ homepage = "http://www.stats.ox.ac.uk/pub/MASS4/"
+ url = "https://cran.r-project.org/src/contrib/MASS_7.3-45.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/MASS"
+
+ version('7.3-45', 'aba3d12fab30f1793bee168a1efea88b')
diff --git a/var/spack/repos/builtin/packages/r-matrix/package.py b/var/spack/repos/builtin/packages/r-matrix/package.py
new file mode 100644
index 0000000000..07c2eaf9da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-matrix/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMatrix(RPackage):
+ """Classes and methods for dense and sparse matrices and operations on them
+ using 'LAPACK' and 'SuiteSparse'."""
+
+ homepage = "http://matrix.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/Matrix_1.2-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/Matrix"
+
+ version('1.2-6', 'f545307fb1284861e9266c4e9712c55e')
+
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-matrixmodels/package.py b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
new file mode 100644
index 0000000000..0958de49a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMatrixmodels(RPackage):
+ """Modelling with sparse and dense 'Matrix' matrices, using modular
+ prediction and response module classes."""
+
+ homepage = "http://matrix.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/MatrixModels_0.4-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/MatrixModels"
+
+ version('0.4-1', '65b3ab56650c62bf1046a3eb1f1e19a0')
+
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-memoise/package.py b/var/spack/repos/builtin/packages/r-memoise/package.py
new file mode 100644
index 0000000000..76c207dc04
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-memoise/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMemoise(RPackage):
+ """Cache the results of a function so that when you call it again with the
+ same arguments it returns the pre-computed value."""
+
+ homepage = "https://github.com/hadley/memoise"
+ url = "https://cran.r-project.org/src/contrib/memoise_1.0.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/memoise"
+
+ version('1.0.0', 'd31145292e2a88ae9a504cab1602e4ac')
+
+ depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mgcv/package.py b/var/spack/repos/builtin/packages/r-mgcv/package.py
new file mode 100644
index 0000000000..c8cb067275
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mgcv/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMgcv(RPackage):
+ """GAMs, GAMMs and other generalized ridge regression with multiple
+ smoothing parameter estimation by GCV, REML or UBRE/AIC. Includes a gam()
+ function, a wide variety of smoothers, JAGS support and distributions
+ beyond the exponential family."""
+
+ homepage = "https://cran.r-project.org/package=mgcv"
+ url = "https://cran.r-project.org/src/contrib/mgcv_1.8-13.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/mgcv"
+
+ version('1.8-13', '30607be3aaf44b13bd8c81fc32e8c984')
+
+ depends_on('r-nlme', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mime/package.py b/var/spack/repos/builtin/packages/r-mime/package.py
new file mode 100644
index 0000000000..c4d2eb2b3e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mime/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMime(RPackage):
+ """Guesses the MIME type from a filename extension using the data derived
+ from /etc/mime.types in UNIX-type systems."""
+
+ homepage = "https://github.com/yihui/mime"
+ url = "https://cran.r-project.org/src/contrib/mime_0.5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/mime"
+
+ version('0.5', '87e00b6d57b581465c19ae869a723c4d')
+ version('0.4', '789cb33e41db2206c6fc7c3e9fbc2c02')
diff --git a/var/spack/repos/builtin/packages/r-minqa/package.py b/var/spack/repos/builtin/packages/r-minqa/package.py
new file mode 100644
index 0000000000..7a9032a546
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-minqa/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMinqa(RPackage):
+ """Derivative-free optimization by quadratic approximation based on an
+ interface to Fortran implementations by M. J. D. Powell."""
+
+ homepage = "http://optimizer.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/minqa_1.2.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/minqa"
+
+ version('1.2.4', 'bcaae4fdba60a33528f2116e2fd51105')
+
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-multcomp/package.py b/var/spack/repos/builtin/packages/r-multcomp/package.py
new file mode 100644
index 0000000000..70704a9c61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-multcomp/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMultcomp(RPackage):
+ """Simultaneous tests and confidence intervals for general linear
+ hypotheses in parametric models, including linear, generalized linear,
+ linear mixed effects, and survival models. The package includes demos
+ reproducing analyzes presented in the book "Multiple Comparisons Using R"
+ (Bretz, Hothorn, Westfall, 2010, CRC Press)."""
+
+ homepage = "http://multcomp.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/multcomp_1.4-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/multcomp"
+
+ version('1.4-6', 'f1353ede2ed78b23859a7f1f1f9ebe88')
+
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-thdata', type=('build', 'run'))
+ depends_on('r-sandwich', type=('build', 'run'))
+ depends_on('r-codetools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-munsell/package.py b/var/spack/repos/builtin/packages/r-munsell/package.py
new file mode 100644
index 0000000000..670fed41e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-munsell/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMunsell(RPackage):
+ """Provides easy access to, and manipulation of, the Munsell colours.
+ Provides a mapping between Munsell's original notation (e.g. "5R 5/10") and
+ hexadecimal strings suitable for use directly in R graphics. Also provides
+ utilities to explore slices through the Munsell colour tree, to transform
+ Munsell colours and display colour palettes."""
+
+ homepage = "https://cran.r-project.org/web/packages/munsell/index.html"
+ url = "https://cran.r-project.org/src/contrib/munsell_0.4.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/munsell"
+
+ version('0.4.3', 'ebd205323dc37c948f499ee08be9c476')
+
+ depends_on('r-colorspace', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mvtnorm/package.py b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
new file mode 100644
index 0000000000..01e3aea91d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RMvtnorm(RPackage):
+ """Computes multivariate normal and t probabilities, quantiles, random
+ deviates and densities."""
+
+ homepage = "http://mvtnorm.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/mvtnorm_1.0-5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/mvtnorm"
+
+ version('1.0-5', '5894dd3969bbfa26f4862c45f9a48a52')
diff --git a/var/spack/repos/builtin/packages/r-ncdf4/package.py b/var/spack/repos/builtin/packages/r-ncdf4/package.py
new file mode 100644
index 0000000000..597f4d903f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ncdf4/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNcdf4(RPackage):
+ """Provides a high-level R interface to data files written using Unidata's
+ netCDF library (version 4 or earlier), which are binary data files that are
+ portable across platforms and include metadata information in addition to
+ the data sets. Using this package, netCDF files (either version 4 or
+ "classic" version 3) can be opened and data sets read in easily. It is also
+ easy to create new netCDF dimensions, variables, and files, in either
+ version 3 or 4 format, and manipulate existing netCDF files. This package
+ replaces the former ncdf package, which only worked with netcdf version 3
+ files. For various reasons the names of the functions have had to be
+ changed from the names in the ncdf package. The old ncdf package is still
+ available at the URL given below, if you need to have backward
+ compatibility. It should be possible to have both the ncdf and ncdf4
+ packages installed simultaneously without a problem. However, the ncdf
+ package does not provide an interface for netcdf version 4 files."""
+
+ homepage = "http://cirrus.ucsd.edu/~pierce/ncdf"
+ url = "https://cran.r-project.org/src/contrib/ncdf4_1.15.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/ncdf4"
+
+ version('1.15', 'cd60dadbae3be31371e1ed40ddeb420a')
+
+ depends_on('netcdf')
diff --git a/var/spack/repos/builtin/packages/r-networkd3/package.py b/var/spack/repos/builtin/packages/r-networkd3/package.py
new file mode 100644
index 0000000000..e881394538
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-networkd3/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNetworkd3(RPackage):
+ """Creates 'D3' 'JavaScript' network, tree, dendrogram, and Sankey graphs
+ from 'R'."""
+
+ homepage = "http://cran.r-project.org/package=networkD3"
+ url = "https://cran.r-project.org/src/contrib/networkD3_0.2.12.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/networkD3"
+
+ version('0.2.12', '356fe4be59698e6fb052644bd9659d84')
+
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nlme/package.py b/var/spack/repos/builtin/packages/r-nlme/package.py
new file mode 100644
index 0000000000..869e03ab51
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nlme/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNlme(RPackage):
+ """Fit and compare Gaussian linear and nonlinear mixed-effects models."""
+
+ homepage = "https://cran.r-project.org/package=nlme"
+ url = "https://cran.r-project.org/src/contrib/nlme_3.1-128.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/nlme"
+
+ version('3.1-128', '3d75ae7380bf123761b95a073eb55008')
+
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nloptr/package.py b/var/spack/repos/builtin/packages/r-nloptr/package.py
new file mode 100644
index 0000000000..8da84c5814
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nloptr/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNloptr(RPackage):
+ """nloptr is an R interface to NLopt. NLopt is a free/open-source library
+ for nonlinear optimization, providing a common interface for a number of
+ different free optimization routines available online as well as original
+ implementations of various other algorithms. See
+ http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction for more
+ information on the available algorithms. During installation on Unix the
+ NLopt code is downloaded and compiled from the NLopt website."""
+
+ homepage = "https://cran.r-project.org/package=nloptr"
+ url = "https://cran.r-project.org/src/contrib/nloptr_1.0.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/nloptr"
+
+ version('1.0.4', '9af69a613349b236fd377d0a107f484c')
diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py
new file mode 100644
index 0000000000..78347ea615
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nmf/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNmf(RPackage):
+ """Provides a framework to perform Non-negative Matrix Factorization (NMF).
+ The package implements a set of already published algorithms and seeding
+ methods, and provides a framework to test, develop and plug new/custom
+ algorithms. Most of the built-in algorithms have been optimized in C++, and
+ the main interface function provides an easy way of performing parallel
+ computations on multicore machines.."""
+
+ homepage = "http://renozao.github.io/NMF"
+ url = "https://cran.r-project.org/src/contrib/NMF_0.20.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/NMF"
+
+ version('0.20.6', '81df07b3bf710a611db5af24730ff3d0')
+
+ depends_on('r-pkgmaker', type=('build', 'run'))
+ depends_on('r-registry', type=('build', 'run'))
+ depends_on('r-rngtools', type=('build', 'run'))
+ depends_on('r-cluster', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-gridbase', type=('build', 'run'))
+ depends_on('r-colorspace', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-foreach', type=('build', 'run'))
+ depends_on('r-doparallel', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nnet/package.py b/var/spack/repos/builtin/packages/r-nnet/package.py
new file mode 100644
index 0000000000..eeb6f91034
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nnet/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNnet(RPackage):
+ """Software for feed-forward neural networks with a single hidden layer,
+ and for multinomial log-linear models."""
+
+ homepage = "http://www.stats.ox.ac.uk/pub/MASS4/"
+ url = "https://cran.r-project.org/src/contrib/nnet_7.3-12.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/nnet"
+
+ version('7.3-12', 'dc7c6f0d0de53d8fc72b44554400a74e')
diff --git a/var/spack/repos/builtin/packages/r-np/package.py b/var/spack/repos/builtin/packages/r-np/package.py
new file mode 100644
index 0000000000..e15cb7efcb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-np/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RNp(RPackage):
+ """This package provides a variety of nonparametric (and semiparametric)
+ kernel methods that seamlessly handle a mix of continuous, unordered, and
+ ordered factor data types. We would like to gratefully acknowledge support
+ from the Natural Sciences and Engineering Research Council of Canada
+ (NSERC:www.nserc.ca), the Social Sciences and Humanities Research Council
+ of Canada (SSHRC:www.sshrc.ca), and the Shared Hierarchical Academic
+ Research Computing Network (SHARCNET:www.sharcnet.ca)."""
+
+ homepage = "https://github.com/JeffreyRacine/R-Package-np/"
+ url = "https://cran.r-project.org/src/contrib/np_0.60-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/np"
+
+ version('0.60-2', 'e094d52ddff7280272b41e6cb2c74389')
+
+ depends_on('r-boot', type=('build', 'run'))
+ depends_on('r-cubature', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-openssl/package.py b/var/spack/repos/builtin/packages/r-openssl/package.py
new file mode 100644
index 0000000000..bf9f38be72
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-openssl/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class ROpenssl(RPackage):
+ """Bindings to OpenSSL libssl and libcrypto, plus custom SSH pubkey
+ parsers. Supports RSA, DSA and EC curves P-256, P-384 and P-521.
+ Cryptographic signatures can either be created and verified manually or via
+ x509 certificates. AES can be used in cbc, ctr or gcm mode for symmetric
+ encryption; RSA for asymmetric (public key) encryption or EC for Diffie
+ Hellman. High-level envelope functions combine RSA and AES for encrypting
+ arbitrary sized data. Other utilities include key generators, hash
+ functions (md5, sha1, sha256, etc), base64 encoder, a secure random number
+ generator, and 'bignum' math methods for manually performing crypto
+ calculations on large multibyte integers."""
+
+ homepage = "https://github.com/jeroenooms/openssl#readme"
+ url = "https://cran.r-project.org/src/contrib/openssl_0.9.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/openssl"
+
+ version('0.9.4', '82a890e71ed0e74499878bedacfb8ccb')
+
+ depends_on('openssl')
diff --git a/var/spack/repos/builtin/packages/r-packrat/package.py b/var/spack/repos/builtin/packages/r-packrat/package.py
new file mode 100644
index 0000000000..726a6640e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-packrat/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPackrat(RPackage):
+ """Manage the R packages your project depends on in an isolated, portable,
+ and reproducible way."""
+
+ homepage = "https://github.com/rstudio/packrat/"
+ url = "https://cran.r-project.org/src/contrib/packrat_0.4.7-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/packrat"
+
+ version('0.4.7-1', '80c2413269b292ade163a70ba5053e84')
diff --git a/var/spack/repos/builtin/packages/r-partykit/package.py b/var/spack/repos/builtin/packages/r-partykit/package.py
new file mode 100644
index 0000000000..8773dace22
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-partykit/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RPartykit(RPackage):
+ """A toolkit with infrastructure for representing, summarizing, and
+ visualizing tree-structured regression and classification models. This
+ unified infrastructure can be used for reading/coercing tree models from
+ different sources ('rpart', 'RWeka', 'PMML') yielding objects that share
+ functionality for print()/plot()/predict() methods. Furthermore, new and
+ improved reimplementations of conditional inference trees (ctree()) and
+ model-based recursive partitioning (mob()) from the 'party' package are
+ provided based on the new infrastructure."""
+
+ homepage = "http://partykit.r-forge.r-project.org/partykit"
+ url = "https://cran.r-project.org/src/contrib/partykit_1.1-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/partykit"
+
+ version('1.1-1', '8fcb31d73ec1b8cd3bcd9789639a9277')
+
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-formula', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pbdzmq/package.py b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
new file mode 100644
index 0000000000..f602e50723
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RPbdzmq(RPackage):
+ """'ZeroMQ' is a well-known library for high-performance asynchronous
+ messaging in scalable, distributed applications. This package provides
+ high level R wrapper functions to easily utilize 'ZeroMQ'. We mainly focus
+ on interactive client/server programming frameworks. For convenience, a
+ minimal 'ZeroMQ' library (4.1.0 rc1) is shipped with 'pbdZMQ', which can
+ be used if no system installation of 'ZeroMQ' is available. A few wrapper
+ functions compatible with 'rzmq' are also provided."""
+
+ homepage = "http://r-pbd.org/"
+ url = "https://cran.r-project.org/src/contrib/pbdZMQ_0.2-4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/pbdZMQ"
+
+ version('0.2-4', 'e5afb70199aa54d737ee7a0e26bde060')
+
+ depends_on('r-r6', type=('build', 'run'))
+ depends_on('zeromq')
diff --git a/var/spack/repos/builtin/packages/r-pbkrtest/package.py b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
new file mode 100644
index 0000000000..2d51d2b958
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPbkrtest(RPackage):
+ """Test in mixed effects models. Attention is on mixed effects models as
+ implemented in the 'lme4' package. This package implements a parametric
+ bootstrap test and a Kenward Roger modification of F-tests for linear mixed
+ effects models and a parametric bootstrap test for generalized linear mixed
+ models."""
+
+ homepage = "http://people.math.aau.dk/~sorenh/software/pbkrtest/"
+ url = "https://cran.r-project.org/src/contrib/pbkrtest_0.4-6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/pbkrtest"
+
+ version('0.4-6', '0a7d9ff83b8d131af9b2335f35781ef9')
+
+ depends_on('r-lme4', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pkgmaker/package.py b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
new file mode 100644
index 0000000000..099cabd954
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPkgmaker(RPackage):
+ """This package provides some low-level utilities to use for package
+ development. It currently provides managers for multiple package specific
+ options and registries, vignette, unit test and bibtex related utilities.
+ It serves as a base package for packages like NMF, RcppOctave, doRNG, and
+ as an incubator package for other general purposes utilities, that will
+ eventually be packaged separately. It is still under heavy development and
+ changes in the interface(s) are more than likely to happen."""
+
+ homepage = "https://renozao.github.io/pkgmaker"
+ url = "https://cran.r-project.org/src/contrib/pkgmaker_0.22.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/pkgmaker"
+
+ version('0.22', '73a0c6d3e84c6dadf3de7582ef7e88a4')
+
+ depends_on('r-registry', type=('build', 'run'))
+ depends_on('r-codetools', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-xtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plotrix/package.py b/var/spack/repos/builtin/packages/r-plotrix/package.py
new file mode 100644
index 0000000000..8a17c72f91
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-plotrix/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPlotrix(RPackage):
+ """Lots of plots, various labeling, axis and color scaling functions."""
+
+ homepage = "https://cran.r-project.org/package=plotrix"
+ url = "https://cran.r-project.org/src/contrib/plotrix_3.6-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/plotrix"
+
+ version('3.6-3', '23e3e022a13a596e9b77b40afcb4a2ef')
diff --git a/var/spack/repos/builtin/packages/r-plyr/package.py b/var/spack/repos/builtin/packages/r-plyr/package.py
new file mode 100644
index 0000000000..6f48f5c38e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-plyr/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPlyr(RPackage):
+ """A set of tools that solves a common set of problems: you need to break a
+ big problem down into manageable pieces, operate on each piece and then put
+ all the pieces back together. For example, you might want to fit a model to
+ each spatial location or time point in your study, summarise data by panels
+ or collapse high-dimensional arrays to simpler summary statistics. The
+ development of 'plyr' has been generously supported by 'Becton
+ Dickinson'."""
+
+ homepage = "http://had.co.nz/plyr"
+ url = "https://cran.r-project.org/src/contrib/plyr_1.8.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/plyr"
+
+ version('1.8.4', 'ef455cf7fc06e34837692156b7b2587b')
+
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-png/package.py b/var/spack/repos/builtin/packages/r-png/package.py
new file mode 100644
index 0000000000..38b7ae5138
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-png/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPng(RPackage):
+ """This package provides an easy and simple way to read, write and display
+ bitmap images stored in the PNG format. It can read and write both files
+ and in-memory raw vectors."""
+
+ homepage = "http://www.rforge.net/png/"
+ url = "https://cran.r-project.org/src/contrib/png_0.1-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/png"
+
+ version('0.1-7', '1ebc8b8aa5979b12c5ec2384b30d649f')
+
+ depends_on('libpng')
diff --git a/var/spack/repos/builtin/packages/r-praise/package.py b/var/spack/repos/builtin/packages/r-praise/package.py
new file mode 100644
index 0000000000..ff23594af9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-praise/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RPraise(RPackage):
+ """Build friendly R packages that praise their users if they have done
+ something good, or they just need it to feel better."""
+
+ homepage = "https://github.com/gaborcsardi/praise"
+ url = "https://cran.r-project.org/src/contrib/praise_1.0.0.tar.gz"
+
+ version('1.0.0', '9318724cec0454884b5f762bee2da6a1')
diff --git a/var/spack/repos/builtin/packages/r-proto/package.py b/var/spack/repos/builtin/packages/r-proto/package.py
new file mode 100644
index 0000000000..2553e325f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-proto/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RProto(RPackage):
+ """An object oriented system using object-based, also called
+ prototype-based, rather than class-based object oriented ideas."""
+
+ homepage = "http://r-proto.googlecode.com/"
+ url = "https://cran.r-project.org/src/contrib/proto_0.3-10.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/proto"
+
+ version('0.3-10', 'd5523943a5be6ca2f0ab557c900f8212')
diff --git a/var/spack/repos/builtin/packages/r-pryr/package.py b/var/spack/repos/builtin/packages/r-pryr/package.py
new file mode 100644
index 0000000000..3a103e9855
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pryr/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RPryr(RPackage):
+ """Useful tools to pry back the covers of R and understand the language
+ at a deeper level."""
+
+ homepage = "https://github.com/hadley/pryr"
+ url = "https://cran.r-project.org/src/contrib/pryr_0.1.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/pryr"
+
+ version('0.1.2', '66b597a762aa15a3b7037779522983b6')
+
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quantmod/package.py b/var/spack/repos/builtin/packages/r-quantmod/package.py
new file mode 100644
index 0000000000..4cc53fcf69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-quantmod/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RQuantmod(RPackage):
+ """Specify, build, trade, and analyse quantitative financial trading
+ strategies."""
+
+ homepage = "http://www.quantmod.com/"
+ url = "https://cran.r-project.org/src/contrib/quantmod_0.4-5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/quantmod"
+
+ version('0.4-5', 'cab3c409e4de3df98a20f1ded60f3631')
+
+ depends_on('r-xts', type=('build', 'run'))
+ depends_on('r-zoo', type=('build', 'run'))
+ depends_on('r-ttr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quantreg/package.py b/var/spack/repos/builtin/packages/r-quantreg/package.py
new file mode 100644
index 0000000000..2d5091ccaf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-quantreg/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RQuantreg(RPackage):
+ """Estimation and inference methods for models of conditional quantiles:
+ Linear and nonlinear parametric and non-parametric (total variation
+ penalized) models for conditional quantiles of a univariate response
+ and several methods for handling censored survival data. Portfolio
+ selection methods based on expected shortfall risk are also
+ included."""
+
+ homepage = "https://cran.r-project.org/package=quantreg"
+ url = "https://cran.r-project.org/src/contrib/quantreg_5.26.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/quantreg"
+
+ version('5.26', '1d89ed932fb4d67ae2d5da0eb8c2989f')
+
+ depends_on('r-sparsem', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-matrixmodels', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-r6/package.py b/var/spack/repos/builtin/packages/r-r6/package.py
new file mode 100644
index 0000000000..e64a8a6532
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-r6/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RR6(RPackage):
+ """The R6 package allows the creation of classes with reference semantics,
+ similar to R's built-in reference classes. Compared to reference classes,
+ R6 classes are simpler and lighter-weight, and they are not built on S4
+ classes so they do not require the methods package. These classes allow
+ public and private members, and they support inheritance, even when the
+ classes are defined in different packages."""
+
+ homepage = "https://github.com/wch/R6/"
+ url = "https://cran.r-project.org/src/contrib/R6_2.1.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/R6"
+
+ version('2.1.2', 'b6afb9430e48707be87638675390e457')
diff --git a/var/spack/repos/builtin/packages/r-randomforest/package.py b/var/spack/repos/builtin/packages/r-randomforest/package.py
new file mode 100644
index 0000000000..bc7798695d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-randomforest/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRandomforest(RPackage):
+ """Classification and regression based on a forest of trees using random
+ inputs."""
+
+ homepage = "https://www.stat.berkeley.edu/~breiman/RandomForests/"
+ url = "https://cran.r-project.org/src/contrib/randomForest_4.6-12.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/randomForest"
+
+ version('4.6-12', '071c03af974198e861f1475c5bab9e7a')
diff --git a/var/spack/repos/builtin/packages/r-raster/package.py b/var/spack/repos/builtin/packages/r-raster/package.py
new file mode 100644
index 0000000000..daa42793ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-raster/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRaster(RPackage):
+ """Reading, writing, manipulating, analyzing and modeling of gridded
+ spatial data. The package implements basic and high-level functions.
+ Processing of very large files is supported."""
+
+ homepage = "http://cran.r-project.org/package=raster"
+ url = "https://cran.r-project.org/src/contrib/raster_2.5-8.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/raster"
+
+ version('2.5-8', '2a7db931c74d50516e82d04687c0a577')
+
+ depends_on('r-sp', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rbokeh/package.py b/var/spack/repos/builtin/packages/r-rbokeh/package.py
new file mode 100644
index 0000000000..00f15891b2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rbokeh/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRbokeh(RPackage):
+ """R interface for creating plots in Bokeh. Bokeh by Continuum
+ Analytics."""
+
+ homepage = "https://hafen.github.io/rbokeh"
+ url = "https://cran.r-project.org/src/contrib/rbokeh_0.5.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rbokeh"
+
+ version('0.5.0', '4e14778c3fbd9286460ca28c68f57d10')
+
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-maps', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-hexbin', type=('build', 'run'))
+ depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-pryr', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-gistr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py
new file mode 100644
index 0000000000..59f134caad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRcolorbrewer(RPackage):
+ """Provides color schemes for maps (and other graphics) designed by Cynthia
+ Brewer as described at http://colorbrewer2.org"""
+
+ homepage = "http://colorbrewer2.org"
+ url = "https://cran.r-project.org/src/contrib/RColorBrewer_1.1-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RColorBrewer"
+
+ version('1.1-2', '66054d83eade4dff8a43ad4732691182')
diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py
new file mode 100644
index 0000000000..b447dea8bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rcpp/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRcpp(RPackage):
+ """The 'Rcpp' package provides R functions as well as C++ classes which
+ offer a seamless integration of R and C++. Many R data types and objects
+ can be mapped back and forth to C++ equivalents which facilitates both
+ writing of new code as well as easier integration of third-party libraries.
+ Documentation about 'Rcpp' is provided by several vignettes included in
+ this package, via the 'Rcpp Gallery' site at <http://gallery.rcpp.org>, the
+ paper by Eddelbuettel and Francois (2011, JSS), and the book by
+ Eddelbuettel (2013, Springer); see 'citation("Rcpp")' for details on these
+ last two."""
+
+ homepage = "http://dirk.eddelbuettel.com/code/rcpp.html"
+ url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/Rcpp"
+
+ version('0.12.6', 'db4280fb0a79cd19be73a662c33b0a8b')
+ version('0.12.5', 'f03ec05b4e391cc46e7ce330e82ff5e2')
diff --git a/var/spack/repos/builtin/packages/r-rcppeigen/package.py b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
new file mode 100644
index 0000000000..23ec0bc27b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRcppeigen(RPackage):
+ """R and 'Eigen' integration using 'Rcpp'. 'Eigen' is a C++ template
+ library for linear algebra: matrices, vectors, numerical solvers and
+ related algorithms. It supports dense and sparse matrices on integer,
+ floating point and complex numbers, decompositions of such matrices, and
+ solutions of linear systems. Its performance on many algorithms is
+ comparable with some of the best implementations based on 'Lapack' and
+ level-3 'BLAS'. The 'RcppEigen' package includes the header files from the
+ 'Eigen' C++ template library (currently version 3.2.8). Thus users do not
+ need to install 'Eigen' itself in order to use 'RcppEigen'. Since version
+ 3.1.1, 'Eigen' is licensed under the Mozilla Public License (version 2);
+ earlier version were licensed under the GNU LGPL version 3 or later.
+ 'RcppEigen' (the 'Rcpp' bindings/bridge to 'Eigen') is licensed under the
+ GNU GPL version 2 or later, as is the rest of 'Rcpp'."""
+
+ homepage = "http://eigen.tuxfamily.org/"
+ url = "https://cran.r-project.org/src/contrib/RcppEigen_0.3.2.8.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RcppEigen"
+
+ version('0.3.2.8.1', '4146e06e4fdf7f4d08db7839069d479f')
+
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-registry/package.py b/var/spack/repos/builtin/packages/r-registry/package.py
new file mode 100644
index 0000000000..479250cac6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-registry/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRegistry(RPackage):
+ """Provides a generic infrastructure for creating and using registries."""
+
+ homepage = "https://cran.r-project.org/web/packages/registry/index.html"
+ url = "https://cran.r-project.org/src/contrib/registry_0.3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/registry"
+
+ version('0.3', '85345b334ec81eb3da6edcbb27c5f421')
diff --git a/var/spack/repos/builtin/packages/r-repr/package.py b/var/spack/repos/builtin/packages/r-repr/package.py
new file mode 100644
index 0000000000..47720327de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-repr/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRepr(RPackage):
+ """String and binary representations of objects for several formats and
+ mime types."""
+
+ homepage = "https://github.com/IRkernel/repr"
+ url = "https://cran.r-project.org/src/contrib/repr_0.9.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/repr"
+
+ version('0.9', 'db5ff74893063b492f684e42283070bd')
diff --git a/var/spack/repos/builtin/packages/r-reshape2/package.py b/var/spack/repos/builtin/packages/r-reshape2/package.py
new file mode 100644
index 0000000000..d27231e139
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-reshape2/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RReshape2(RPackage):
+ """Flexibly restructure and aggregate data using just two functions: melt
+ and dcast (or acast)."""
+
+ homepage = "https://github.com/hadley/reshape"
+ url = "https://cran.r-project.org/src/contrib/reshape2_1.4.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/reshape2"
+
+ version('1.4.1', '41e9dffdf5c6fa830321ac9c8ebffe00')
+
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rgooglemaps/package.py b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
new file mode 100644
index 0000000000..87672a35e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRgooglemaps(RPackage):
+ """This package serves two purposes: (i) Provide a comfortable R interface
+ to query the Google server for static maps, and (ii) Use the map as a
+ background image to overlay plots within R. This requires proper coordinate
+ scaling."""
+
+ homepage = "https://cran.r-project.org/package=RgoogleMaps"
+ url = "https://cran.r-project.org/src/contrib/RgoogleMaps_1.2.0.7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RgoogleMaps"
+
+ version('1.2.0.7', '2e1df804f0331b4122d841105f0c7ea5')
+
+ depends_on('r-png', type=('build', 'run'))
+ depends_on('r-rjsonio', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rinside/package.py b/var/spack/repos/builtin/packages/r-rinside/package.py
new file mode 100644
index 0000000000..d8e7c28e23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rinside/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRinside(RPackage):
+ """C++ classes to embed R in C++ applications The 'RInside' packages makes
+ it easier to have "R inside" your C++ application by providing a C++
+ wrapperclass providing the R interpreter. As R itself is embedded into
+ your application, a shared library build of R is required. This works on
+ Linux, OS X and even on Windows provided you use the same tools used to
+ build R itself. Numerous examples are provided in the eight subdirectories
+ of the examples/ directory of the installed package: standard, mpi (for
+ parallel computing) qt (showing how to embed 'RInside' inside a Qt GUI
+ application), wt (showing how to build a "web-application" using the Wt
+ toolkit), armadillo (for 'RInside' use with 'RcppArmadillo') and eigen (for
+ 'RInside' use with 'RcppEigen'). The example use GNUmakefile(s) with GNU
+ extensions, so a GNU make is required (and will use the GNUmakefile
+ automatically). Doxygen-generated documentation of the C++ classes is
+ available at the 'RInside' website as well."""
+
+ homepage = "http://dirk.eddelbuettel.com/code/rinside.html"
+ url = "https://cran.r-project.org/src/contrib/RInside_0.2.13.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RInside"
+
+ version('0.2.13', '2e3c35a7bd648e9bef98d0afcc02cf88')
+
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rjava/package.py b/var/spack/repos/builtin/packages/r-rjava/package.py
new file mode 100644
index 0000000000..440b93ff1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rjava/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRjava(RPackage):
+ """Low-level interface to Java VM very much like .C/.Call and friends.
+ Allows creation of objects, calling methods and accessing fields."""
+
+ homepage = "http://www.rforge.net/rJava/"
+ url = "https://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rJava"
+
+ version('0.9-8', '51ae0d690ceed056ebe7c4be71fc6c7a')
+
+ depends_on('jdk')
diff --git a/var/spack/repos/builtin/packages/r-rjson/package.py b/var/spack/repos/builtin/packages/r-rjson/package.py
new file mode 100644
index 0000000000..f37b574323
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rjson/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRjson(RPackage):
+ """Converts R object into JSON objects and vice-versa."""
+
+ homepage = "https://cran.r-project.org/package=rjson"
+ url = "https://cran.r-project.org/src/contrib/rjson_0.2.15.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rjson"
+
+ version('0.2.15', '87d0e29bc179c6aeaf312b138089f8e9')
diff --git a/var/spack/repos/builtin/packages/r-rjsonio/package.py b/var/spack/repos/builtin/packages/r-rjsonio/package.py
new file mode 100644
index 0000000000..4d5ffa6ddf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rjsonio/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRjsonio(RPackage):
+ """This is a package that allows conversion to and from data in Javascript
+ object notation (JSON) format. This allows R objects to be inserted into
+ Javascript/ECMAScript/ActionScript code and allows R programmers to read
+ and convert JSON content to R objects. This is an alternative to rjson
+ package. Originally, that was too slow for converting large R objects to
+ JSON and was not extensible. rjson's performance is now similar to this
+ package, and perhaps slightly faster in some cases. This package uses
+ methods and is readily extensible by defining methods for different
+ classes, vectorized operations, and C code and callbacks to R functions for
+ deserializing JSON objects to R. The two packages intentionally share the
+ same basic interface. This package (RJSONIO) has many additional options to
+ allow customizing the generation and processing of JSON content. This
+ package uses libjson rather than implementing yet another JSON parser. The
+ aim is to support other general projects by building on their work,
+ providing feedback and benefit from their ongoing development."""
+
+ homepage = "https://cran.r-project.org/package=RJSONIO"
+ url = "https://cran.r-project.org/src/contrib/RJSONIO_1.3-0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RJSONIO"
+
+ version('1.3-0', '72c395622ba8d1435ec43849fd32c830')
diff --git a/var/spack/repos/builtin/packages/r-rmarkdown/package.py b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
new file mode 100644
index 0000000000..31a7695923
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRmarkdown(RPackage):
+ """Convert R Markdown documents into a variety of formats."""
+
+ homepage = "http://rmarkdown.rstudio.com/"
+ url = "https://cran.r-project.org/src/contrib/rmarkdown_1.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rmarkdown"
+
+ version('1.0', '264aa6a59e9680109e38df8270e14c58')
+
+ depends_on('r-knitr', type=('build', 'run'))
+ depends_on('r-yaml', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-catools', type=('build', 'run'))
+ depends_on('r-evaluate', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmysql/package.py b/var/spack/repos/builtin/packages/r-rmysql/package.py
new file mode 100644
index 0000000000..4946b071fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rmysql/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRmysql(RPackage):
+ """Implements 'DBI' Interface to 'MySQL' and 'MariaDB' Databases."""
+
+ homepage = "https://github.com/rstats-db/rmysql"
+ url = "https://cran.r-project.org/src/contrib/RMySQL_0.10.9.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RMySQL"
+
+ version('0.10.9', '3628200a1864ac3005cfd55cc7cde17a')
+
+ depends_on('r-dbi', type=('build', 'run'))
+ depends_on('mariadb')
diff --git a/var/spack/repos/builtin/packages/r-rngtools/package.py b/var/spack/repos/builtin/packages/r-rngtools/package.py
new file mode 100644
index 0000000000..f9edc93a2c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rngtools/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRngtools(RPackage):
+ """This package contains a set of functions for working with Random Number
+ Generators (RNGs). In particular, it defines a generic S4 framework for
+ getting/setting the current RNG, or RNG data that are embedded into objects
+ for reproducibility. Notably, convenient default methods greatly facilitate
+ the way current RNG settings can be changed."""
+
+ homepage = "https://renozao.github.io/rngtools"
+ url = "https://cran.r-project.org/src/contrib/rngtools_1.2.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rngtools"
+
+ version('1.2.4', '715967f8b3af2848a76593a7c718c1cd')
+
+ depends_on('r-pkgmaker', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rodbc/package.py b/var/spack/repos/builtin/packages/r-rodbc/package.py
new file mode 100644
index 0000000000..70e477bcb1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rodbc/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRodbc(RPackage):
+ """An ODBC database interface."""
+
+ homepage = "https://cran.rstudio.com/web/packages/RODBC/"
+ url = "https://cran.rstudio.com/src/contrib/RODBC_1.3-13.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/RODBC"
+
+ version('1.3-13', 'c52ef9139c2ed85adc53ad6effa7d68e')
+
+ depends_on('unixodbc')
diff --git a/var/spack/repos/builtin/packages/r-roxygen2/package.py b/var/spack/repos/builtin/packages/r-roxygen2/package.py
new file mode 100644
index 0000000000..1bbfeb2e87
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-roxygen2/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRoxygen2(RPackage):
+ """A 'Doxygen'-like in-source documentation system for Rd, collation, and
+ 'NAMESPACE' files."""
+
+ homepage = "https://github.com/klutometis/roxygen"
+ url = "https://cran.r-project.org/src/contrib/roxygen2_5.0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/roxygen2"
+
+ version('5.0.1', 'df5bdbc12fda372e427710ef1cd92ed7')
+
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-stringi', type=('build', 'run'))
+ depends_on('r-brew', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rpostgresql/package.py b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
new file mode 100644
index 0000000000..b204c53828
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRpostgresql(RPackage):
+ """Database interface and PostgreSQL driver for R This package provides a
+ Database Interface (DBI) compliant driver for R to access PostgreSQL
+ database systems. In order to build and install this package from source,
+ PostgreSQL itself must be present your system to provide PostgreSQL
+ functionality via its libraries and header files. These files are provided
+ as postgresql-devel package under some Linux distributions. On Microsoft
+ Windows system the attached libpq library source will be used. A wiki and
+ issue tracking system for the package are available at Google Code at
+ https://code.google.com/p/rpostgresql/."""
+
+ homepage = "https://code.google.com/p/rpostgresql/"
+ url = "https://cran.r-project.org/src/contrib/RPostgreSQL_0.4-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RPostgreSQL"
+
+ version('0.4-1', 'e7b22e212afbb2cbb88bab937f93e55a')
+
+ depends_on('r-dbi', type=('build', 'run'))
+ depends_on('postgresql')
diff --git a/var/spack/repos/builtin/packages/r-rsnns/package.py b/var/spack/repos/builtin/packages/r-rsnns/package.py
new file mode 100644
index 0000000000..1a0978363a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rsnns/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRsnns(RPackage):
+ """The Stuttgart Neural Network Simulator (SNNS) is a library containing
+ many standard implementations of neural networks. This package wraps the
+ SNNS functionality to make it available from within R. Using the RSNNS
+ low-level interface, all of the algorithmic functionality and flexibility
+ of SNNS can be accessed. Furthermore, the package contains a convenient
+ high-level interface, so that the most common neural network topologies
+ and learning algorithms integrate seamlessly into R."""
+
+ homepage = "http://sci2s.ugr.es/dicits/software/RSNNS"
+ url = "https://cran.r-project.org/src/contrib/RSNNS_0.4-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RSNNS"
+
+ version('0.4-7', 'ade7736611c456effb5f72e0ce0a1e6f')
+
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rsqlite/package.py b/var/spack/repos/builtin/packages/r-rsqlite/package.py
new file mode 100644
index 0000000000..c08fcac20c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rsqlite/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRsqlite(RPackage):
+ """This package embeds the SQLite database engine in R and provides an
+ interface compliant with the DBI package. The source for the SQLite engine
+ (version 3.8.6) is included."""
+
+ homepage = "https://github.com/rstats-db/RSQLite"
+ url = "https://cran.r-project.org/src/contrib/RSQLite_1.0.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/RSQLite"
+
+ version('1.0.0', 'e6cbe2709612b687c13a10d30c7bad45')
+
+ depends_on('r-dbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rstan/package.py b/var/spack/repos/builtin/packages/r-rstan/package.py
new file mode 100644
index 0000000000..e616f0a7dd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rstan/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRstan(RPackage):
+ """User-facing R functions are provided to parse, compile, test, estimate,
+ and analyze Stan models by accessing the header-only Stan library provided
+ by the 'StanHeaders' package. The Stan project develops a probabilistic
+ programming language that implements full Bayesian statistical inference
+ via Markov Chain Monte Carlo, rough Bayesian inference via variational
+ approximation, and (optionally penalized) maximum likelihood estimation via
+ optimization. In all three cases, automatic differentiation is used to
+ quickly and accurately evaluate gradients without burdening the user with
+ the need to derive the partial derivatives."""
+
+ homepage = "http://mc-stan.org/"
+ url = "https://cran.r-project.org/src/contrib/rstan_2.10.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rstan"
+
+ version('2.10.1', 'f5d212f6f8551bdb91fe713d05d4052a')
+
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-stanheaders', type=('build', 'run'))
+ depends_on('r-inline', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rcppeigen', type=('build', 'run'))
+ depends_on('r-bh', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rstudioapi/package.py b/var/spack/repos/builtin/packages/r-rstudioapi/package.py
new file mode 100644
index 0000000000..2558a5c3f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rstudioapi/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RRstudioapi(RPackage):
+ """Access the RStudio API (if available) and provide informative error
+ messages when it's not."""
+
+ homepage = "https://cran.r-project.org/web/packages/rstudioapi/index.html"
+ url = "https://cran.r-project.org/src/contrib/rstudioapi_0.5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rstudioapi"
+
+ version('0.6', 'fdb13bf46aab02421557e713fceab66b')
+ version('0.5', '6ce1191da74e7bcbf06b61339486b3ba')
diff --git a/var/spack/repos/builtin/packages/r-rzmq/package.py b/var/spack/repos/builtin/packages/r-rzmq/package.py
new file mode 100644
index 0000000000..f385a13901
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rzmq/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RRzmq(RPackage):
+ """Interface to the ZeroMQ lightweight messaging kernel."""
+
+ homepage = "http://github.com/armstrtw/rzmq"
+ url = "https://cran.r-project.org/src/contrib/rzmq_0.7.7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rzmq"
+
+ version('0.7.7', '8ba18fd1c222d1eb25bb622ccd2897e0')
+
+ depends_on('zeromq')
diff --git a/var/spack/repos/builtin/packages/r-sandwich/package.py b/var/spack/repos/builtin/packages/r-sandwich/package.py
new file mode 100644
index 0000000000..62bd2880e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-sandwich/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RSandwich(RPackage):
+ """Model-robust standard error estimators for cross-sectional, time series,
+ and longitudinal data."""
+
+ homepage = "https://cran.r-project.org/package=sandwich"
+ url = "https://cran.r-project.org/src/contrib/sandwich_2.3-4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/sandwich"
+
+ version('2.3-4', 'a621dbd8a57b6e1e036496642aadc2e5')
+
+ depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scales/package.py b/var/spack/repos/builtin/packages/r-scales/package.py
new file mode 100644
index 0000000000..e3832f78e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-scales/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RScales(RPackage):
+ """Graphical scales map data to aesthetics, and provide methods for
+ automatically determining breaks and labels for axes and legends."""
+
+ homepage = "https://github.com/hadley/scales"
+ url = "https://cran.r-project.org/src/contrib/scales_0.4.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/scales"
+
+ version('0.4.0', '7b5602d9c55595901192248bca25c099')
+
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-dichromat', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-munsell', type=('build', 'run'))
+ depends_on('r-labeling', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shiny/package.py b/var/spack/repos/builtin/packages/r-shiny/package.py
new file mode 100644
index 0000000000..b1d21c7e7c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-shiny/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RShiny(RPackage):
+ """Makes it incredibly easy to build interactive web applications with R.
+ Automatic "reactive" binding between inputs and outputs and extensive
+ pre-built widgets make it possible to build beautiful, responsive, and
+ powerful applications with minimal effort."""
+
+ homepage = "http://shiny.rstudio.com/"
+ url = "https://cran.r-project.org/src/contrib/shiny_0.13.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/shiny"
+
+ version('0.13.2', 'cb5bff7a28ad59ec2883cd0912ca9611')
+
+ depends_on('r-httpuv', type=('build', 'run'))
+ depends_on('r-mime', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-xtable', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sp/package.py b/var/spack/repos/builtin/packages/r-sp/package.py
new file mode 100644
index 0000000000..2917f0b6b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-sp/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RSp(RPackage):
+ """Classes and methods for spatial data; the classes document where the
+ spatial location information resides, for 2D or 3D data. Utility functions
+ are provided, e.g. for plotting data as maps, spatial selection, as well as
+ methods for retrieving coordinates, for subsetting, print, summary, etc."""
+
+ homepage = "https://github.com/edzer/sp/"
+ url = "https://cran.r-project.org/src/contrib/sp_1.2-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/sp"
+
+ version('1.2-3', 'f0e24d993dec128642ee66b6b47b10c1')
+
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sparsem/package.py b/var/spack/repos/builtin/packages/r-sparsem/package.py
new file mode 100644
index 0000000000..370497e395
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-sparsem/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RSparsem(RPackage):
+ """Some basic linear algebra functionality for sparse matrices is provided:
+ including Cholesky decomposition and backsolving as well as standard R
+ subsetting and Kronecker products."""
+
+ homepage = "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html"
+ url = "https://cran.r-project.org/src/contrib/SparseM_1.7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/SparseM"
+
+ version('1.7', '7b5b0ab166a0929ef6dcfe1d97643601')
diff --git a/var/spack/repos/builtin/packages/r-stanheaders/package.py b/var/spack/repos/builtin/packages/r-stanheaders/package.py
new file mode 100644
index 0000000000..322356e347
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-stanheaders/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RStanheaders(RPackage):
+ """The C++ header files of the Stan project are provided by this package,
+ but it contains no R code, vignettes, or function documentation. There is a
+ shared object containing part of the CVODES library, but it is not
+ accessible from R. StanHeaders is only useful for developers who want to
+ utilize the LinkingTo directive of their package's DESCRIPTION file to
+ build on the Stan library without incurring unnecessary dependencies. The
+ Stan project develops a probabilistic programming language that implements
+ full or approximate Bayesian statistical inference via Markov Chain Monte
+ Carlo or variational methods and implements (optionally penalized) maximum
+ likelihood estimation via optimization. The Stan library includes an
+ advanced automatic differentiation scheme, templated statistical and linear
+ algebra functions that can handle the automatically differentiable scalar
+ types (and doubles, ints, etc.), and a parser for the Stan language. The
+ 'rstan' package provides user-facing R functions to parse, compile, test,
+ estimate, and analyze Stan models."""
+
+ homepage = "http://mc-stan.org/"
+ url = "https://cran.r-project.org/src/contrib/StanHeaders_2.10.0-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/StanHeaders"
+
+ version('2.10.0-2', '9d09b1e9278f08768f7a988ad9082d57')
diff --git a/var/spack/repos/builtin/packages/r-stringi/package.py b/var/spack/repos/builtin/packages/r-stringi/package.py
new file mode 100644
index 0000000000..d89238f3d7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-stringi/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RStringi(RPackage):
+ """Allows for fast, correct, consistent, portable, as well as convenient
+ character string/text processing in every locale and any native encoding.
+ Owing to the use of the ICU library, the package provides R users with
+ platform-independent functions known to Java, Perl, Python, PHP, and Ruby
+ programmers. Among available features there are: pattern searching (e.g.,
+ with ICU Java-like regular expressions or the Unicode Collation Algorithm),
+ random string generation, case mapping, string transliteration,
+ concatenation, Unicode normalization, date-time formatting and parsing,
+ etc."""
+
+ homepage = "http://www.gagolewski.com/software/stringi/"
+ url = "https://cran.r-project.org/src/contrib/stringi_1.1.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/stringi"
+
+ version('1.1.1', '32b919ee3fa8474530c4942962a6d8d9')
+
+ depends_on('icu4c')
diff --git a/var/spack/repos/builtin/packages/r-stringr/package.py b/var/spack/repos/builtin/packages/r-stringr/package.py
new file mode 100644
index 0000000000..de8d83b500
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-stringr/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RStringr(RPackage):
+ """A consistent, simple and easy to use set of wrappers around the
+ fantastic 'stringi' package. All function and argument names (and
+ positions) are consistent, all functions deal with "NA"'s and zero length
+ vectors in the same way, and the output from one function is easy to feed
+ into the input of another."""
+
+ homepage = "https://cran.r-project.org/web/packages/stringr/index.html"
+ url = "https://cran.r-project.org/src/contrib/stringr_1.0.0.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/stringr"
+
+ version('1.0.0', '5ca977c90351f78b1b888b379114a7b4')
+
+ depends_on('r-stringi', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-survey/package.py b/var/spack/repos/builtin/packages/r-survey/package.py
new file mode 100644
index 0000000000..249cad8178
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-survey/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RSurvey(RPackage):
+ """Summary statistics, two-sample tests, rank tests, generalised linear
+ models, cumulative link models, Cox models, loglinear models, and general
+ maximum pseudolikelihood estimation for multistage stratified,
+ cluster-sampled, unequally weighted survey samples. Variances by Taylor
+ series linearisation or replicate weights. Post-stratification,
+ calibration, and raking. Two-phase subsampling designs. Graphics. PPS
+ sampling without replacement. Principal components, factor analysis."""
+
+ homepage = "http://r-survey.r-forge.r-project.org/survey/"
+ url = "https://cran.r-project.org/src/contrib/survey_3.30-3.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/survey"
+
+ version('3.30-3', 'c70cdae9cb43d35abddd11173d64cad0')
diff --git a/var/spack/repos/builtin/packages/r-survival/package.py b/var/spack/repos/builtin/packages/r-survival/package.py
new file mode 100644
index 0000000000..1df00f0c93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-survival/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RSurvival(RPackage):
+ """Contains the core survival analysis routines, including definition of
+ Surv objects, Kaplan-Meier and Aalen-Johansen (multi-state) curves, Cox
+ models, and parametric accelerated failure time models."""
+
+ homepage = "https://cran.r-project.org/package=survival"
+ url = "https://cran.r-project.org/src/contrib/survival_2.39-5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/survival"
+
+ version('2.39-5', 'a3cc6b5762e8c5c0bb9e64a276710be2')
+
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tarifx/package.py b/var/spack/repos/builtin/packages/r-tarifx/package.py
new file mode 100644
index 0000000000..1fb2d35b1d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tarifx/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RTarifx(RPackage):
+ """A collection of various utility and convenience functions."""
+
+ homepage = "https://cran.r-project.org/package=taRifx"
+ url = "https://cran.r-project.org/src/contrib/taRifx_1.0.6.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/taRifx"
+
+ version('1.0.6', '7e782e04bd69d929b29f91553382e6a2')
+
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-testit/package.py b/var/spack/repos/builtin/packages/r-testit/package.py
new file mode 100644
index 0000000000..4d99c388e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-testit/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RTestit(RPackage):
+ """Provides two convenience functions assert() and test_pkg() to facilitate
+ testing R packages."""
+
+ homepage = "https://github.com/yihui/testit"
+ url = "https://cran.r-project.org/src/contrib/testit_0.5.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/testit"
+
+ version('0.5', 'f206d3cbdc5174e353d2d05ba6a12e59')
diff --git a/var/spack/repos/builtin/packages/r-testthat/package.py b/var/spack/repos/builtin/packages/r-testthat/package.py
new file mode 100644
index 0000000000..62409912f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-testthat/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RTestthat(RPackage):
+ """A unit testing system designed to be fun, flexible and easy to set
+ up."""
+
+ homepage = "https://github.com/hadley/testthat"
+ url = "https://cran.r-project.org/src/contrib/testthat_1.0.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/testthat"
+
+ version('1.0.2', '6c6a90c8db860292df5784a70e07b8dc')
+
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-crayon', type=('build', 'run'))
+ depends_on('r-praise', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-thdata/package.py b/var/spack/repos/builtin/packages/r-thdata/package.py
new file mode 100644
index 0000000000..cf2b01e6e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-thdata/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RThdata(RPackage):
+ """Contains data sets used in other packages Torsten Hothorn maintains."""
+
+ homepage = "https://cran.r-project.org/package=TH.data"
+ url = "https://cran.r-project.org/src/contrib/TH.data_1.0-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/TH.data"
+
+ version('1.0-7', '3e8b6b1a4699544f175215aed7039a94')
+
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-threejs/package.py b/var/spack/repos/builtin/packages/r-threejs/package.py
new file mode 100644
index 0000000000..50b484dc25
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-threejs/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RThreejs(RPackage):
+ """Create interactive 3D scatter plots, network plots, and globes using the
+ 'three.js' visualization library ("http://threejs.org")."""
+
+ homepage = "http://bwlewis.github.io/rthreejs"
+ url = "https://cran.r-project.org/src/contrib/threejs_0.2.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/threejs"
+
+ version('0.2.2', '35c179b10813c5e4bd3e7827fae6627b')
+
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tibble/package.py b/var/spack/repos/builtin/packages/r-tibble/package.py
new file mode 100644
index 0000000000..39dfc3893b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tibble/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RTibble(RPackage):
+ """Provides a 'tbl_df' class that offers better checking and printing
+ capabilities than traditional data frames."""
+
+ homepage = "https://github.com/hadley/tibble"
+ url = "https://cran.r-project.org/src/contrib/tibble_1.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/tibble"
+
+ version('1.1', '2fe9f806109d0b7fadafb1ffafea4cb8')
+
+ depends_on('r-assertthat', type=('build', 'run'))
+ depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidyr/package.py b/var/spack/repos/builtin/packages/r-tidyr/package.py
new file mode 100644
index 0000000000..1285e5e9ae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tidyr/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RTidyr(RPackage):
+ """An evolution of 'reshape2'. It's designed specifically for data tidying
+ (not general reshaping or aggregating) and works well with 'dplyr' data
+ pipelines."""
+
+ homepage = "https://github.com/hadley/tidyr"
+ url = "https://cran.r-project.org/src/contrib/tidyr_0.5.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/tidyr"
+
+ version('0.5.1', '3cadc869510c054ed93d374ab44120bd')
+
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-stringi', type=('build', 'run'))
+ depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ttr/package.py b/var/spack/repos/builtin/packages/r-ttr/package.py
new file mode 100644
index 0000000000..79429f5286
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ttr/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RTtr(RPackage):
+ """Functions and data to construct technical trading rules with R."""
+
+ homepage = "https://github.com/joshuaulrich/TTR"
+ url = "https://cran.r-project.org/src/contrib/TTR_0.23-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/TTR"
+
+ version('0.23-1', '35f693ac0d97e8ec742ebea2da222986')
+
+ depends_on('r-xts', type=('build', 'run'))
+ depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-uuid/package.py b/var/spack/repos/builtin/packages/r-uuid/package.py
new file mode 100644
index 0000000000..b9dcc12629
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-uuid/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RUuid(RPackage):
+ """Tools for generating and handling of UUIDs (Universally Unique
+ Identifiers)."""
+
+ homepage = "http://www.rforge.net/uuid"
+ url = "https://cran.rstudio.com/src/contrib/uuid_0.1-2.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/uuid"
+
+ version('0.1-2', 'f97d000c0b16bca455fb5bf2cd668ddf')
diff --git a/var/spack/repos/builtin/packages/r-vcd/package.py b/var/spack/repos/builtin/packages/r-vcd/package.py
new file mode 100644
index 0000000000..56a2ebdfa7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-vcd/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RVcd(RPackage):
+ """Visualization techniques, data sets, summary and inference procedures
+ aimed particularly at categorical data. Special emphasis is given to highly
+ extensible grid graphics. The package was package was originally inspired
+ by the book "Visualizing Categorical Data" by Michael Friendly and is now
+ the main support package for a new book, "Discrete Data Analysis with R" by
+ Michael Friendly and David Meyer (2015)."""
+
+ homepage = "https://cran.r-project.org/package=vcd"
+ url = "https://cran.r-project.org/src/contrib/vcd_1.4-1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/vcd"
+
+ version('1.4-1', '7db150a77f173f85b69a1f86f73f8f02')
+
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-colorspace', type=('build', 'run'))
+ depends_on('r-lmtest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-visnetwork/package.py b/var/spack/repos/builtin/packages/r-visnetwork/package.py
new file mode 100644
index 0000000000..ea0b972bf1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-visnetwork/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RVisnetwork(RPackage):
+ """Provides an R interface to the 'vis.js' JavaScript charting library. It
+ allows an interactive visualization of networks."""
+
+ homepage = "https://github.com/datastorm-open/visNetwork"
+ url = "https://cran.r-project.org/src/contrib/visNetwork_1.0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/visNetwork"
+
+ version('1.0.1', 'dfc9664a5165134d8dbdcd949ad73cf7')
+
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-whisker/package.py b/var/spack/repos/builtin/packages/r-whisker/package.py
new file mode 100644
index 0000000000..17f904f5c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-whisker/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RWhisker(RPackage):
+ """logicless templating, reuse templates in many programming languages
+ including R"""
+
+ homepage = "http://github.com/edwindj/whisker"
+ url = "https://cran.r-project.org/src/contrib/whisker_0.3-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/whisker"
+
+ version('0.3-2', 'c4b9bf9a22e69ce003fe68663ab5e8e6')
diff --git a/var/spack/repos/builtin/packages/r-withr/package.py b/var/spack/repos/builtin/packages/r-withr/package.py
new file mode 100644
index 0000000000..785050ed87
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-withr/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RWithr(RPackage):
+ """A set of functions to run code 'with' safely and temporarily modified
+ global state. Many of these functions were originally a part of the
+ 'devtools' package, this provides a simple package with limited
+ dependencies to provide access to these functions."""
+
+ homepage = "http://github.com/jimhester/withr"
+ url = "https://cran.r-project.org/src/contrib/withr_1.0.1.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/withr"
+
+ version('1.0.1', 'ac38af2c6f74027c9592dd8f0acb7598')
diff --git a/var/spack/repos/builtin/packages/r-xgboost/package.py b/var/spack/repos/builtin/packages/r-xgboost/package.py
new file mode 100644
index 0000000000..766191dcc1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xgboost/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class RXgboost(RPackage):
+ """Extreme Gradient Boosting, which is an efficient implementation of
+ gradient boosting framework. This package is its R interface. The package
+ includes efficient linear model solver and tree learning algorithms. The
+ package can automatically do parallel computation on a single machine which
+ could be more than 10 times faster than existing gradient boosting
+ packages. It supports various objective functions, including regression,
+ classification and ranking. The package is made to be extensible, so that
+ users are also allowed to define their own objectives easily."""
+
+ homepage = "https://github.com/dmlc/xgboost"
+ url = "https://cran.r-project.org/src/contrib/xgboost_0.4-4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/xgboost"
+
+ version('0.4-4', 'c24d3076058101a71de4b8af8806697c')
+
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-datatable', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlconnect/package.py b/var/spack/repos/builtin/packages/r-xlconnect/package.py
new file mode 100644
index 0000000000..1863997ad7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xlconnect/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXlconnect(RPackage):
+ """Provides comprehensive functionality to read, write and format Excel
+ data."""
+
+ homepage = "http://miraisolutions.wordpress.com/"
+ url = "https://cran.r-project.org/src/contrib/XLConnect_0.2-11.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/XLConnect"
+
+ version('0.2-12', '3340d05d259f0a41262eab4ed32617ad')
+ version('0.2-11', '9d1769a103cda05665df399cc335017d')
+
+ depends_on('r-xlconnectjars', type=('build', 'run'))
+ depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
new file mode 100644
index 0000000000..0200b00a0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXlconnectjars(RPackage):
+ """Provides external JAR dependencies for the XLConnect package."""
+
+ homepage = "http://miraisolutions.wordpress.com/"
+ url = "https://cran.r-project.org/src/contrib/XLConnectJars_0.2-9.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/XLConnectJars"
+
+ version('0.2-12', '6984e5140cd1c887c017ef6f88cbba81')
+ version('0.2-9', 'e6d6b1acfede26acaa616ee421bd30fb')
+
+ depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py
new file mode 100644
index 0000000000..e16a582306
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xlsx/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXlsx(RPackage):
+ """Provide R functions to read/write/format Excel 2007 and Excel
+ 97/2000/XP/2003 file formats."""
+
+ homepage = "http://code.google.com/p/rexcel/"
+ url = "https://cran.rstudio.com/src/contrib/xlsx_0.5.7.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/xlsx"
+
+ version('0.5.7', '36b1b16f29c54b6089b1dae923180dd5')
+
+ depends_on('r-rjava', type=('build', 'run'))
+ depends_on('r-xlsxjars', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlsxjars/package.py b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
new file mode 100644
index 0000000000..1c16c75a9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXlsxjars(RPackage):
+ """The xlsxjars package collects all the external jars required for the
+ xlxs package. This release corresponds to POI 3.10.1."""
+
+ homepage = "https://cran.rstudio.com/web/packages/xlsxjars/index.html"
+ url = "https://cran.rstudio.com/src/contrib/xlsxjars_0.6.1.tar.gz"
+ list_url = "https://cran.rstudio.com/src/contrib/Archive/xlsxjars"
+
+ version('0.6.1', '5a1721d5733cb42f3a29e3f353e39166')
+
+ depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xml/package.py b/var/spack/repos/builtin/packages/r-xml/package.py
new file mode 100644
index 0000000000..2fe2a8a05b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xml/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXml(RPackage):
+ """Many approaches for both reading and creating XML (and HTML) documents
+ (including DTDs), both local and accessible via HTTP or FTP. Also offers
+ access to an 'XPath' "interpreter"."""
+
+ homepage = "http://www.omegahat.net/RSXML"
+ url = "https://cran.r-project.org/src/contrib/XML_3.98-1.4.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/XML"
+
+ version('3.98-1.5', 'd1cfcd56f7aec96a84ffca91aea507ee')
+ version('3.98-1.4', '1a7f3ce6f264eeb109bfa57bedb26c14')
+
+ depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/r-xtable/package.py b/var/spack/repos/builtin/packages/r-xtable/package.py
new file mode 100644
index 0000000000..66d8687b6d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xtable/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXtable(RPackage):
+ """Coerce data to LaTeX and HTML tables."""
+
+ homepage = "http://xtable.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/xtable_1.8-2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/xtable"
+
+ version('1.8-2', '239e4825cd046156a67efae3aac01d86')
diff --git a/var/spack/repos/builtin/packages/r-xts/package.py b/var/spack/repos/builtin/packages/r-xts/package.py
new file mode 100644
index 0000000000..1cedec1d42
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-xts/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RXts(RPackage):
+ """Provide for uniform handling of R's different time-based data classes by
+ extending zoo, maximizing native format information preservation and
+ allowing for user level customization and extension, while simplifying
+ cross-class interoperability."""
+
+ homepage = "http://r-forge.r-project.org/projects/xts/"
+ url = "https://cran.r-project.org/src/contrib/xts_0.9-7.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/xts"
+
+ version('0.9-7', 'a232e94aebfa654653a7d88a0503537b')
+
+ depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-yaml/package.py b/var/spack/repos/builtin/packages/r-yaml/package.py
new file mode 100644
index 0000000000..c812ea8ca2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-yaml/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RYaml(RPackage):
+ """This package implements the libyaml YAML 1.1 parser and emitter
+ (http://pyyaml.org/wiki/LibYAML) for R."""
+
+ homepage = "https://cran.r-project.org/web/packages/yaml/index.html"
+ url = "https://cran.r-project.org/src/contrib/yaml_2.1.13.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/yaml"
+
+ version('2.1.13', 'f2203ea395adaff6bd09134666191d9a')
diff --git a/var/spack/repos/builtin/packages/r-zoo/package.py b/var/spack/repos/builtin/packages/r-zoo/package.py
new file mode 100644
index 0000000000..230c78a61a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-zoo/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RZoo(RPackage):
+ """An S3 class with methods for totally ordered indexed observations. It is
+ particularly aimed at irregular time series of numeric vectors/matrices and
+ factors. zoo's key design goals are independence of a particular
+ index/date/time class and consistency with ts and base R by providing
+ methods to extend standard generics."""
+
+ homepage = "http://zoo.r-forge.r-project.org/"
+ url = "https://cran.r-project.org/src/contrib/zoo_1.7-13.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/zoo"
+
+ version('1.7-13', '99521dfa4c668e692720cefcc5a1bf30')
+
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py
new file mode 100644
index 0000000000..3fed62d1fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r/package.py
@@ -0,0 +1,185 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+from spack.util.environment import *
+import shutil
+
+
+class R(Package):
+ """R is 'GNU S', a freely available language and environment for
+ statistical computing and graphics which provides a wide variety of
+ statistical and graphical techniques: linear and nonlinear modelling,
+ statistical tests, time series analysis, classification, clustering, etc.
+ Please consult the R project homepage for further information."""
+
+ homepage = "https://www.r-project.org"
+ url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
+
+ extendable = True
+
+ version('3.3.1', 'f50a659738b73036e2f5635adbd229c5')
+ version('3.3.0', '5a7506c8813432d1621c9725e86baf7a')
+ version('3.2.3', '1ba3dac113efab69e706902810cc2970')
+ version('3.2.2', '57cef5c2e210a5454da1979562a10e5b')
+ version('3.2.1', 'c2aac8b40f84e08e7f8c9068de9239a3')
+ version('3.2.0', '66fa17ad457d7e618191aa0f52fc402e')
+ version('3.1.3', '53a85b884925aa6b5811dfc361d73fc4')
+ version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
+
+ variant('external-lapack', default=False,
+ description='Links to externally installed BLAS/LAPACK')
+ variant('X', default=False,
+ description='Enable X11 support (call configure --with-x)')
+
+ # Virtual dependencies
+ depends_on('blas', when='+external-lapack')
+ depends_on('lapack', when='+external-lapack')
+
+ # Concrete dependencies
+ depends_on('readline')
+ depends_on('ncurses')
+ depends_on('icu4c')
+ depends_on('glib')
+ depends_on('zlib@:1.2.8')
+ depends_on('bzip2')
+ depends_on('libtiff')
+ depends_on('jpeg')
+ depends_on('cairo')
+ depends_on('cairo+X', when='+X')
+ depends_on('cairo~X', when='~X')
+ depends_on('pango')
+ depends_on('freetype')
+ depends_on('tcl')
+ depends_on('tk')
+ depends_on('tk+X', when='+X')
+ depends_on('tk~X', when='~X')
+ depends_on('libx11', when='+X')
+ depends_on('libxt', when='+X')
+ depends_on('curl')
+ depends_on('pcre')
+ depends_on('jdk')
+
+ @property
+ def etcdir(self):
+ return join_path(prefix, 'rlib', 'R', 'etc')
+
+ def install(self, spec, prefix):
+ rlibdir = join_path(prefix, 'rlib')
+ configure_args = ['--prefix=%s' % prefix,
+ '--libdir=%s' % rlibdir,
+ '--enable-R-shlib',
+ '--enable-BLAS-shlib',
+ '--enable-R-framework=no']
+ if '+external-lapack' in spec:
+ configure_args.extend(['--with-blas', '--with-lapack'])
+
+ configure(*configure_args)
+ make()
+ make('install')
+
+ # Make a copy of Makeconf because it will be needed to properly build R
+ # dependencies in Spack.
+ src_makeconf = join_path(self.etcdir, 'Makeconf')
+ dst_makeconf = join_path(self.etcdir, 'Makeconf.spack')
+ shutil.copy(src_makeconf, dst_makeconf)
+
+ self.filter_compilers(spec, prefix)
+
+ def filter_compilers(self, spec, prefix):
+ """Run after install to tell the configuration files and Makefiles
+ to use the compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC and CXX set to Spack's generic
+ cc and c++. We want them to be bound to whatever compiler
+ they were built with."""
+
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+
+ filter_file(env['CC'], self.compiler.cc,
+ join_path(self.etcdir, 'Makeconf'), **kwargs)
+ filter_file(env['CXX'], self.compiler.cxx,
+ join_path(self.etcdir, 'Makeconf'), **kwargs)
+ filter_file(env['F77'], self.compiler.f77,
+ join_path(self.etcdir, 'Makeconf'), **kwargs)
+ filter_file(env['FC'], self.compiler.fc,
+ join_path(self.etcdir, 'Makeconf'), **kwargs)
+
+ # ========================================================================
+ # Set up environment to make install easy for R extensions.
+ # ========================================================================
+
+ @property
+ def r_lib_dir(self):
+ return join_path('rlib', 'R', 'library')
+
+ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
+ # Set R_LIBS to include the library dir for the
+ # extension and any other R extensions it depends on.
+ r_libs_path = []
+ for d in extension_spec.traverse(
+ deptype=('build', 'run'), deptype_query='run'):
+ if d.package.extends(self.spec):
+ r_libs_path.append(join_path(d.prefix, self.r_lib_dir))
+
+ r_libs_path = ':'.join(r_libs_path)
+ spack_env.set('R_LIBS', r_libs_path)
+ spack_env.set('R_MAKEVARS_SITE',
+ join_path(self.etcdir, 'Makeconf.spack'))
+
+ # Use the number of make_jobs set in spack. The make program will
+ # determine how many jobs can actually be started.
+ spack_env.set('MAKEFLAGS', '-j{0}'.format(make_jobs))
+
+ # For run time environment set only the path for extension_spec and
+ # prepend it to R_LIBS
+ if extension_spec.package.extends(self.spec):
+ run_env.prepend_path('R_LIBS', join_path(
+ extension_spec.prefix, self.r_lib_dir))
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('LIBRARY_PATH',
+ join_path(self.prefix, 'rlib', 'R', 'lib'))
+ run_env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'rlib', 'R', 'lib'))
+ run_env.prepend_path('CPATH',
+ join_path(self.prefix, 'rlib', 'R', 'include'))
+
+ def setup_dependent_package(self, module, ext_spec):
+ """Called before R modules' install() methods. In most cases,
+ extensions will only need to have one line:
+ R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),
+ self.stage.source_path)"""
+
+ # R extension builds can have a global R executable function
+ module.R = Executable(join_path(self.spec.prefix.bin, 'R'))
+
+ # Add variable for library directry
+ module.r_lib_dir = join_path(ext_spec.prefix, self.r_lib_dir)
+
+ # Make the site packages directory for extensions, if it does not exist
+ # already.
+ if ext_spec.package.is_extension:
+ mkdirp(module.r_lib_dir)
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index b6300a1dfa..dccf9a581c 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Raja(Package):
"""RAJA Parallel Framework."""
homepage = "http://software.llnl.gov/RAJA/"
@@ -31,6 +32,7 @@ class Raja(Package):
version('git', git='https://github.com/LLNL/RAJA.git', branch="master")
def install(self, spec, prefix):
- cmake('.',*std_cmake_args)
+ with working_dir('build', create=True):
+ cmake('..', *std_cmake_args)
make()
make('install')
diff --git a/var/spack/repos/builtin/packages/randrproto/package.py b/var/spack/repos/builtin/packages/randrproto/package.py
new file mode 100644
index 0000000000..ecff886a3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/randrproto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Randrproto(Package):
+ """X Resize and Rotate Extension (RandR).
+
+ This extension defines a protocol for clients to dynamically change X
+ screens, so as to resize, rotate and reflect the root window of a screen.
+ """
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/randrproto"
+ url = "https://www.x.org/archive/individual/proto/randrproto-1.5.0.tar.gz"
+
+ version('1.5.0', '863d6ee3e0b2708f75d968470ed31eb9')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/ravel/package.py b/var/spack/repos/builtin/packages/ravel/package.py
index 763ec1b9a2..4f4f2b2e10 100644
--- a/var/spack/repos/builtin/packages/ravel/package.py
+++ b/var/spack/repos/builtin/packages/ravel/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Ravel(Package):
"""Ravel is a parallel communication trace visualization tool that
orders events according to logical time."""
@@ -33,8 +34,7 @@ class Ravel(Package):
version('1.0.0', 'b25fece58331c2adfcce76c5036485c2')
- # TODO: make this a build dependency
- depends_on('cmake@2.8.9:')
+ depends_on('cmake@2.8.9:', type='build')
depends_on('muster@1.0.1:')
depends_on('otf')
diff --git a/var/spack/repos/builtin/packages/readline/package.py b/var/spack/repos/builtin/packages/readline/package.py
index 039bf725eb..abb6ba04ce 100644
--- a/var/spack/repos/builtin/packages/readline/package.py
+++ b/var/spack/repos/builtin/packages/readline/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Readline(Package):
"""The GNU Readline library provides a set of functions for use by
applications that allow users to edit command lines as they
diff --git a/var/spack/repos/builtin/packages/recordproto/package.py b/var/spack/repos/builtin/packages/recordproto/package.py
new file mode 100644
index 0000000000..02018a76ff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/recordproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Recordproto(Package):
+ """X Record Extension.
+
+ This extension defines a protocol for the recording and playback of user
+ actions in the X Window System."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/recordproto"
+ url = "https://www.x.org/archive/individual/proto/recordproto-1.14.2.tar.gz"
+
+ version('1.14.2', '868235e1e150e68916d5a316ebc4ccc4')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/rename/package.py b/var/spack/repos/builtin/packages/rename/package.py
new file mode 100644
index 0000000000..3538fd21cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rename/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rename(Package):
+ """Perl-powered file rename script with many helpful built-ins."""
+
+ homepage = "http://plasmasturm.org/code/rename"
+ url = "https://github.com/ap/rename/archive/v1.600.tar.gz"
+
+ version('1.600', '91beb555c93d407420b5dad191069bb3')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ Executable('pod2man')('rename', 'rename.1')
+ bdir = join_path(prefix, 'bin')
+ mkdirp(bdir)
+ install('rename', bdir)
+ mdir = join_path(prefix, 'share', 'man', 'man1')
+ mkdirp(mdir)
+ install('rename.1', mdir)
diff --git a/var/spack/repos/builtin/packages/rendercheck/package.py b/var/spack/repos/builtin/packages/rendercheck/package.py
new file mode 100644
index 0000000000..07cc809e9a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rendercheck/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rendercheck(Package):
+ """rendercheck is a program to test a Render extension implementation
+ against separate calculations of expected output."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/rendercheck"
+ url = "https://www.x.org/archive/individual/app/rendercheck-1.5.tar.gz"
+
+ version('1.5', '92ddef6d01f02529521af103f9b9bf60')
+
+ depends_on('libxrender')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/renderproto/package.py b/var/spack/repos/builtin/packages/renderproto/package.py
new file mode 100644
index 0000000000..10be4c941c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/renderproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Renderproto(Package):
+ """X Rendering Extension.
+
+ This extension defines the protcol for a digital image composition as
+ the foundation of a new rendering model within the X Window System."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/renderproto"
+ url = "https://www.x.org/archive/individual/proto/renderproto-0.11.1.tar.gz"
+
+ version('0.11.1', '9b103359123e375bb7760f7dbae3dece')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/resourceproto/package.py b/var/spack/repos/builtin/packages/resourceproto/package.py
new file mode 100644
index 0000000000..4e0a495d83
--- /dev/null
+++ b/var/spack/repos/builtin/packages/resourceproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Resourceproto(Package):
+ """X Resource Extension.
+
+ This extension defines a protocol that allows a client to query the
+ X server about its usage of various resources."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/resourceproto"
+ url = "https://www.x.org/archive/individual/proto/resourceproto-1.2.0.tar.gz"
+
+ version('1.2.0', '33091d5358ec32dd7562a1aa225a70aa')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/rgb/package.py b/var/spack/repos/builtin/packages/rgb/package.py
new file mode 100644
index 0000000000..ddc5419305
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rgb/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rgb(Package):
+ """X color name database.
+
+ This package includes both the list mapping X color names to RGB values
+ (rgb.txt) and, if configured to use a database for color lookup, the
+ rgb program to convert the text file into the binary database format.
+
+ The "others" subdirectory contains some alternate color databases."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/rgb"
+ url = "https://www.x.org/archive/individual/app/rgb-1.0.6.tar.gz"
+
+ version('1.0.6', '9759d058108f39066bbdf1d5d6de048c')
+
+ depends_on('xorg-server')
+
+ depends_on('xproto', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/root/math_uint.patch b/var/spack/repos/builtin/packages/root/math_uint.patch
new file mode 100644
index 0000000000..ff4a38b91c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/math_uint.patch
@@ -0,0 +1,115 @@
+From 5f3faffdd869bce5e254ae70f69290e4651a061d Mon Sep 17 00:00:00 2001
+From: Lorenzo Moneta <Lorenzo.Moneta@cern.ch>
+Date: Mon, 4 Jan 2016 15:38:23 +0100
+Subject: [PATCH] Fix ROOT-7886. Use unsigned int instead of uint
+
+---
+ math/mathcore/inc/Math/Delaunay2D.h | 2 +-
+ math/mathcore/src/Delaunay2D.cxx | 30 +++++++++++++++---------------
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/math/mathcore/inc/Math/Delaunay2D.h b/math/mathcore/inc/Math/Delaunay2D.h
+index 6255e78..472bded 100644
+--- a/math/mathcore/inc/Math/Delaunay2D.h
++++ b/math/mathcore/inc/Math/Delaunay2D.h
+@@ -273,7 +273,7 @@ class Delaunay2D {
+ double fYCellStep; //! inverse denominator to calculate X cell = fNCells / (fYNmax - fYNmin)
+ std::set<UInt_t> fCells[(fNCells+1)*(fNCells+1)]; //! grid cells with containing triangles
+
+- inline unsigned int Cell(uint x, uint y) const {
++ inline unsigned int Cell(UInt_t x, UInt_t y) const {
+ return x*(fNCells+1) + y;
+ }
+
+diff --git a/math/mathcore/src/Delaunay2D.cxx b/math/mathcore/src/Delaunay2D.cxx
+index c4d4680..9a82858 100644
+--- a/math/mathcore/src/Delaunay2D.cxx
++++ b/math/mathcore/src/Delaunay2D.cxx
+@@ -190,7 +190,7 @@ void Delaunay2D::DoFindTriangles() {
+
+ Triangle tri;
+
+- auto transform = [&] (const uint i) {
++ auto transform = [&] (const unsigned int i) {
+ tri.x[i] = face.vertex(i)->point().x();
+ tri.y[i] = face.vertex(i)->point().y();
+ tri.idx[i] = face.vertex(i)->info();
+@@ -326,7 +326,7 @@ void Delaunay2D::DoFindTriangles() {
+ for(int t = 0; t < out.numberoftriangles; ++t){
+ Triangle tri;
+
+- auto transform = [&] (const uint v) {
++ auto transform = [&] (const unsigned int v) {
+ //each triangle as numberofcorners vertices ( = 3)
+ tri.idx[v] = out.trianglelist[t*out.numberofcorners + v];
+
+@@ -354,14 +354,14 @@ void Delaunay2D::DoFindTriangles() {
+ auto bx = std::minmax({tri.x[0], tri.x[1], tri.x[2]});
+ auto by = std::minmax({tri.y[0], tri.y[1], tri.y[2]});
+
+- uint cellXmin = CellX(bx.first);
+- uint cellXmax = CellX(bx.second);
++ unsigned int cellXmin = CellX(bx.first);
++ unsigned int cellXmax = CellX(bx.second);
+
+- uint cellYmin = CellY(by.first);
+- uint cellYmax = CellY(by.second);
++ unsigned int cellYmin = CellY(by.first);
++ unsigned int cellYmax = CellY(by.second);
+
+- for(uint i = cellXmin; i <= cellXmax; ++i)
+- for(uint j = cellYmin; j <= cellYmax; ++j){
++ for(unsigned int i = cellXmin; i <= cellXmax; ++i)
++ for(unsigned int j = cellYmin; j <= cellYmax; ++j){
+ //printf("(%u,%u) = %u\n", i, j, Cell(i,j));
+ fCells[Cell(i,j)].insert(t);
+ }
+@@ -382,7 +382,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+ /// FindAllTriangles();
+
+ //see comment in header for CGAL fallback section
+- auto bayCoords = [&] (const uint t) -> std::tuple<double, double, double> {
++ auto bayCoords = [&] (const unsigned int t) -> std::tuple<double, double, double> {
+ double la = ( (fTriangles[t].y[1] - fTriangles[t].y[2])*(xx - fTriangles[t].x[2])
+ + (fTriangles[t].x[2] - fTriangles[t].x[1])*(yy - fTriangles[t].y[2]) ) * fTriangles[t].invDenom;
+ double lb = ( (fTriangles[t].y[2] - fTriangles[t].y[0])*(xx - fTriangles[t].x[2])
+@@ -401,7 +401,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+ if(cX < 0 || cX > fNCells || cY < 0 || cY > fNCells)
+ return fZout; //TODO some more fancy interpolation here
+
+- for(uint t : fCells[Cell(cX, cY)]){
++ for(unsigned int t : fCells[Cell(cX, cY)]){
+ auto coords = bayCoords(t);
+
+ if(inTriangle(coords)){
+@@ -415,7 +415,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+
+ //debugging
+
+- /*for(uint t = 0; t < fNdt; ++t){
++ /*for(unsigned int t = 0; t < fNdt; ++t){
+ auto coords = bayCoords(t);
+
+ if(inTriangle(coords)){
+@@ -423,17 +423,17 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy)
+ //brute force found a triangle -> grid not
+ printf("Found triangle %u for (%f,%f) -> (%u,%u)\n", t, xx,yy, cX, cY);
+ printf("Triangles in grid cell: ");
+- for(uint x : fCells[Cell(cX, cY)])
++ for(unsigned int x : fCells[Cell(cX, cY)])
+ printf("%u ", x);
+ printf("\n");
+
+ printf("Triangle %u is in cells: ", t);
+- for(uint i = 0; i <= fNCells; ++i)
+- for(uint j = 0; j <= fNCells; ++j)
++ for(unsigned int i = 0; i <= fNCells; ++i)
++ for(unsigned int j = 0; j <= fNCells; ++j)
+ if(fCells[Cell(i,j)].count(t))
+ printf("(%u,%u) ", i, j);
+ printf("\n");
+- for(uint i = 0; i < 3; ++i)
++ for(unsigned int i = 0; i < 3; ++i)
+ printf("\tpoint %u (%u): (%f,%f) -> (%u,%u)\n", i, fTriangles[t].idx[i], fTriangles[t].x[i], fTriangles[t].y[i], CellX(fTriangles[t].x[i]), CellY(fTriangles[t].y[i]));
+
+ //we found the triangle -> interpolate using the barycentric interpolation
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
new file mode 100644
index 0000000000..0f66dcebaa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -0,0 +1,89 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+import sys
+
+
+class Root(Package):
+ """ROOT is a data analysis framework."""
+ homepage = "https://root.cern.ch"
+ url = "https://root.cern.ch/download/root_v6.07.02.source.tar.gz"
+
+ version('6.06.06', '4308449892210c8d36e36924261fea26')
+ version('6.06.04', '55a2f98dd4cea79c9c4e32407c2d6d17')
+ version('6.06.02', 'e9b8b86838f65b0a78d8d02c66c2ec55')
+
+ if sys.platform == 'darwin':
+ patch('math_uint.patch', when='@6.06.02')
+ patch('root6-60606-mathmore.patch', when='@6.06.06')
+
+ variant('graphviz', default=False, description='Enable graphviz support')
+
+ depends_on("cmake", type='build')
+ depends_on("pcre")
+ depends_on("fftw")
+ depends_on("graphviz", when="+graphviz")
+ depends_on("python")
+ depends_on("gsl")
+ depends_on("libxml2+python")
+ depends_on("jpeg")
+ if sys.platform != 'darwin':
+ depends_on("libpng")
+ depends_on("openssl")
+ depends_on("freetype")
+
+ def install(self, spec, prefix):
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+ options = [source_directory]
+ if '+debug' in spec:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+ else:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
+ options.append('-Dcxx14=on')
+ options.append('-Dcocoa=off')
+ options.append('-Dbonjour=off')
+ options.append('-Dx11=on')
+ options.extend(std_cmake_args)
+ if sys.platform == 'darwin':
+ darwin_options = [
+ '-Dcastor=OFF',
+ '-Drfio=OFF',
+ '-Ddcache=OFF']
+ options.extend(darwin_options)
+ with working_dir(build_directory, create=True):
+ cmake(*options)
+ make()
+ make("install")
+
+ def setup_dependent_environment(self, spack_env, run_env, dspec):
+ spack_env.set('ROOTSYS', self.prefix)
+ spack_env.set('ROOT_VERSION', 'v6')
+ spack_env.prepend_path('PYTHONPATH', self.prefix.lib)
+
+ def url_for_version(self, version):
+ """Handle ROOT's unusual version string."""
+ return "https://root.cern.ch/download/root_v%s.source.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch
new file mode 100644
index 0000000000..d009a5af0d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch
@@ -0,0 +1,29 @@
+diff --git a/math/mathmore/inc/Math/QuantFuncMathMore.h b/math/mathmore/inc/Math/QuantFuncMathMore.h
+index fd6679c..03ccc03 100644
+--- a/math/mathmore/inc/Math/QuantFuncMathMore.h
++++ b/math/mathmore/inc/Math/QuantFuncMathMore.h
+@@ -25,17 +25,6 @@
+ **********************************************************************/
+
+
+-#if defined(__CINT__) && !defined(__MAKECINT__)
+-// avoid to include header file when using CINT
+-#ifndef _WIN32
+-#include "../lib/libMathMore.so"
+-#else
+-#include "../bin/libMathMore.dll"
+-#endif
+-
+-#else
+-
+-
+ #ifndef ROOT_Math_QuantFuncMathMore
+ #define ROOT_Math_QuantFuncMathMore
+
+@@ -190,5 +179,3 @@ namespace MathMore {
+
+
+ #endif // ROOT_Math_QuantFuncMathMore
+-
+-#endif // if defined (__CINT__) && !defined(__MAKECINT__)
+
diff --git a/var/spack/repos/builtin/packages/rose/package.py b/var/spack/repos/builtin/packages/rose/package.py
index b8a65e8574..02b09f0126 100644
--- a/var/spack/repos/builtin/packages/rose/package.py
+++ b/var/spack/repos/builtin/packages/rose/package.py
@@ -22,12 +22,13 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-#------------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
# Author: Justin Too <too1@llnl.gov>
-#------------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
from spack import *
+
class Rose(Package):
"""A compiler infrastructure to build source-to-source program
transformation and analysis tools.
@@ -36,13 +37,14 @@ class Rose(Package):
homepage = "http://rosecompiler.org/"
url = "https://github.com/rose-compiler/edg4x-rose"
- version('master', branch='master', git='https://github.com/rose-compiler/edg4x-rose.git')
+ version('master', branch='master',
+ git='https://github.com/rose-compiler/edg4x-rose.git')
patch('add_spack_compiler_recognition.patch')
- depends_on("autoconf@2.69")
- depends_on("automake@1.14")
- depends_on("libtool@2.4")
+ depends_on("autoconf@2.69", type='build')
+ depends_on("automake@1.14", type='build')
+ depends_on("libtool@2.4", type='build')
depends_on("boost@1.54.0")
depends_on("jdk@8u25-linux-x64")
@@ -60,4 +62,3 @@ class Rose(Package):
"--with-boost=" + boost.prefix,
"--disable-boost-version-check")
make("install-core")
-
diff --git a/var/spack/repos/builtin/packages/rstart/package.py b/var/spack/repos/builtin/packages/rstart/package.py
new file mode 100644
index 0000000000..7b80e88ae7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rstart/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rstart(Package):
+ """This package includes both the client and server sides implementing
+ the protocol described in the "A Flexible Remote Execution Protocol
+ Based on rsh" paper found in the specs/ subdirectory.
+
+ This software has been deprecated in favor of the X11 forwarding
+ provided in common ssh implementations."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/rstart"
+ url = "https://www.x.org/archive/individual/app/rstart-1.0.5.tar.gz"
+
+ version('1.0.5', '32db3625cb5e841e17d6bc696f21edfb')
+
+ depends_on('xproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py
index a9f8d4cfda..4e741b255f 100644
--- a/var/spack/repos/builtin/packages/rsync/package.py
+++ b/var/spack/repos/builtin/packages/rsync/package.py
@@ -24,8 +24,9 @@
##############################################################################
from spack import *
+
class Rsync(Package):
- """rsync is an open source utility that provides fast incremental file transfer."""
+ """An open source utility that provides fast incremental file transfer."""
homepage = "https://rsync.samba.org"
url = "https://download.samba.org/pub/rsync/rsync-3.1.1.tar.gz"
diff --git a/var/spack/repos/builtin/packages/ruby/package.py b/var/spack/repos/builtin/packages/ruby/package.py
index dd71913fc9..8dc314c171 100644
--- a/var/spack/repos/builtin/packages/ruby/package.py
+++ b/var/spack/repos/builtin/packages/ruby/package.py
@@ -35,9 +35,20 @@ class Ruby(Package):
extendable = True
version('2.2.0', 'cd03b28fd0b555970f5c4fd481700852')
+ depends_on('libffi')
+ depends_on('zlib')
+ variant('openssl', default=False, description="Enable OpenSSL support")
+ depends_on('openssl', when='+openssl')
+ variant('readline', default=False, description="Enable Readline support")
+ depends_on('readline', when='+readline')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ options = ["--prefix=%s" % prefix]
+ if '+openssl' in spec:
+ options.append("--with-openssl-dir=%s" % spec['openssl'].prefix)
+ if '+readline' in spec:
+ options.append("--with-readline-dir=%s" % spec['readline'].prefix)
+ configure(*options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/rust-bindgen/package.py b/var/spack/repos/builtin/packages/rust-bindgen/package.py
new file mode 100644
index 0000000000..c411bc15d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rust-bindgen/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class RustBindgen(Package):
+ """The rust programming language toolchain"""
+ homepage = "http://www.rust-lang.org"
+ url = "https://github.com/crabtw/rust-bindgen"
+
+ version('0.16', tag='0.16', git='https://github.com/crabtw/rust-bindgen')
+
+ extends("rust")
+ depends_on("llvm")
+
+ def install(self, spec, prefix):
+ env = dict(os.environ)
+ env['LIBCLANG_PATH'] = os.path.join(spec['llvm'].prefix, 'lib')
+ cargo('install', '--root', prefix, env=env)
diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py
new file mode 100644
index 0000000000..8a92fca634
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rust/package.py
@@ -0,0 +1,88 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+def get_submodules():
+ git = which('git')
+ git('submodule', 'update', '--init', '--recursive')
+
+
+class Rust(Package):
+ """The rust programming language toolchain"""
+ homepage = "http://www.rust-lang.org"
+ url = "https://github.com/rust-lang/rust"
+
+ version('1.8.0', tag='1.8.0', git="https://github.com/rust-lang/rust")
+
+ resource(name='cargo',
+ git="https://github.com/rust-lang/cargo.git",
+ tag='0.10.0',
+ destination='cargo')
+
+ extendable = True
+
+ # Rust
+ depends_on("llvm")
+ depends_on("curl")
+ depends_on("git")
+ depends_on("cmake")
+ depends_on("python@:2.8")
+
+ # Cargo
+ depends_on("openssl")
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix,
+ '--llvm-root=' + spec['llvm'].prefix)
+
+ make()
+ make("install")
+
+ # Install cargo, rust package manager
+ with working_dir(os.path.join('cargo', 'cargo')):
+ get_submodules()
+ configure('--prefix=' + prefix,
+ '--local-rust-root=' + prefix)
+
+ make()
+ make("install")
+
+ def setup_dependent_package(self, module, ext_spec):
+ """
+ Called before python modules' install() methods.
+
+ In most cases, extensions will only need to have one or two lines::
+
+ cargo('build')
+ cargo('install', '--root', prefix)
+
+ or
+
+ cargo('install', '--root', prefix)
+ """
+ # Rust extension builds can have a global cargo executable function
+ module.cargo = Executable(join_path(self.spec.prefix.bin, 'cargo'))
diff --git a/var/spack/repos/builtin/packages/SAMRAI/no-tool-build.patch b/var/spack/repos/builtin/packages/samrai/no-tool-build.patch
index 1adf0cf721..1adf0cf721 100644
--- a/var/spack/repos/builtin/packages/SAMRAI/no-tool-build.patch
+++ b/var/spack/repos/builtin/packages/samrai/no-tool-build.patch
diff --git a/var/spack/repos/builtin/packages/SAMRAI/package.py b/var/spack/repos/builtin/packages/samrai/package.py
index 73c51ced23..e0648290d6 100644
--- a/var/spack/repos/builtin/packages/SAMRAI/package.py
+++ b/var/spack/repos/builtin/packages/samrai/package.py
@@ -24,12 +24,14 @@
##############################################################################
from spack import *
+
class Samrai(Package):
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
- is an object-oriented C++ software library enables exploration of numerical,
- algorithmic, parallel computing, and software issues associated with applying
- structured adaptive mesh refinement (SAMR) technology in large-scale parallel
- application development.
+ is an object-oriented C++ software library enables exploration of
+ numerical, algorithmic, parallel computing, and software issues
+ associated with applying structured adaptive mesh refinement
+ (SAMR) technology in large-scale parallel application development.
+
"""
homepage = "https://computation.llnl.gov/project/SAMRAI/"
url = "https://computation.llnl.gov/project/SAMRAI/download/SAMRAI-v3.9.1.tar.gz"
diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py
index f5c7f4431f..b82a7e55d6 100644
--- a/var/spack/repos/builtin/packages/samtools/package.py
+++ b/var/spack/repos/builtin/packages/samtools/package.py
@@ -24,19 +24,28 @@
##############################################################################
from spack import *
+
class Samtools(Package):
- """SAM Tools provide various utilities for manipulating alignments in the SAM format,
- including sorting, merging, indexing and generating
+ """SAM Tools provide various utilities for manipulating alignments in
+ the SAM format, including sorting, merging, indexing and generating
alignments in a per-position format"""
homepage = "www.htslib.org"
- version('1.2','988ec4c3058a6ceda36503eebecd4122',url = "https://github.com/samtools/samtools/releases/download/1.2/samtools-1.2.tar.bz2")
+ url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2"
- depends_on("zlib")
- depends_on("mpc")
- parallel=False
- patch("samtools1.2.patch",level=0)
+ version('1.3.1', 'a7471aa5a1eb7fc9cc4c6491d73c2d88')
+ version('1.2', '988ec4c3058a6ceda36503eebecd4122')
- def install(self, spec, prefix):
- make("prefix=%s" % prefix, "install")
+ depends_on("ncurses")
+ depends_on("htslib", when='@1.3.1:') # htslib became standalone
+ depends_on('zlib', when='@1.2') # needed for builtin htslib
+ def install(self, spec, prefix):
+ if self.spec.version >= Version('1.3.1'):
+ configure('--prefix={0}'.format(prefix), '--with-ncurses',
+ 'CURSES_LIB=-lncurses')
+ make()
+ make('install')
+ else:
+ make("prefix=%s" % prefix)
+ make("prefix=%s" % prefix, "install")
diff --git a/var/spack/repos/builtin/packages/samtools/samtools1.2.patch b/var/spack/repos/builtin/packages/samtools/samtools1.2.patch
deleted file mode 100644
index ead3ab4e2c..0000000000
--- a/var/spack/repos/builtin/packages/samtools/samtools1.2.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- Makefile 2015-02-03 08:27:34.000000000 -0800
-+++ Makefile.new 2015-07-21 10:38:27.881406892 -0700
-@@ -26,7 +26,7 @@
- CFLAGS = -g -Wall -O2
- LDFLAGS =
- LDLIBS =
--DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_CURSES_LIB=1
-+DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_CURSES_LIB=0
- LOBJS= bam_aux.o bam.o bam_import.o sam.o \
- sam_header.o bam_plbuf.o
- AOBJS= bam_index.o bam_plcmd.o sam_view.o \
-@@ -37,7 +37,7 @@
- faidx.o stats.o stats_isize.o bam_flags.o bam_split.o \
- bam_tview.o bam_tview_curses.o bam_tview_html.o bam_lpileup.o
- INCLUDES= -I. -I$(HTSDIR)
--LIBCURSES= -lcurses # -lXCurses
-+#LIBCURSES= -lcurses # -lXCurses
-
- prefix = /usr/local
- exec_prefix = $(prefix)
diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py
new file mode 100644
index 0000000000..977939c9df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sbt/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import shutil
+
+
+class Sbt(Package):
+ """Scala Build Tool"""
+
+ homepage = "http://www.scala-sbt.org"
+ url = "https://dl.bintray.com/sbt/native-packages/sbt/0.13.12/sbt-0.13.12.tgz"
+
+ version('0.13.12', 'cec3071d46ef13334c8097cc3467ff28')
+
+ depends_on('jdk')
+
+ def install(self, spec, prefix):
+ shutil.copytree('bin', join_path(prefix, 'bin'), symlinks=True)
+ shutil.copytree('conf', join_path(prefix, 'conf'), symlinks=True)
diff --git a/var/spack/repos/builtin/packages/scalasca/package.py b/var/spack/repos/builtin/packages/scalasca/package.py
index 98e43ee75a..228d814aed 100644
--- a/var/spack/repos/builtin/packages/scalasca/package.py
+++ b/var/spack/repos/builtin/packages/scalasca/package.py
@@ -27,10 +27,12 @@ from spack import *
class Scalasca(Package):
- """
- Scalasca is a software tool that supports the performance optimization of parallel programs by measuring and
- analyzing their runtime behavior. The analysis identifies potential performance bottlenecks - in particular those
- concerning communication and synchronization - and offers guidance in exploring their causes.
+ """Scalasca is a software tool that supports the performance optimization
+ of parallel programs by measuring and analyzing their runtime
+ behavior. The analysis identifies potential performance
+ bottlenecks - in particular those concerning communication and
+ synchronization - and offers guidance in exploring their causes.
+
"""
homepage = "http://www.scalasca.org"
@@ -44,7 +46,8 @@ class Scalasca(Package):
depends_on("mpi")
##########
- # Hard-code dependencies for Scalasca according to what stated in the release page
+ # Hard-code dependencies for Scalasca according to what stated in the
+ # release page
# The OTF2 library path should be detected automatically from SCOREP
# SCALASCA 2.2.2
depends_on("scorep@1.4:", when='@2.2.2')
@@ -60,4 +63,4 @@ class Scalasca(Package):
"--enable-shared"]
configure(*configure_args)
make()
- make("install") \ No newline at end of file
+ make("install")
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index 40ae4176dd..54f894da6f 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -24,14 +24,10 @@
##############################################################################
from spack import *
-class Scons(Package):
+
+class Scons(PythonPackage):
"""SCons is a software construction tool"""
homepage = "http://scons.org"
url = "http://downloads.sourceforge.net/project/scons/scons/2.5.0/scons-2.5.0.tar.gz"
version('2.5.0', '9e00fa0df8f5ca5c5f5975b40e0ed354')
-
- extends('python')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py
index 633511a15a..e0f7972304 100644
--- a/var/spack/repos/builtin/packages/scorep/package.py
+++ b/var/spack/repos/builtin/packages/scorep/package.py
@@ -22,26 +22,32 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
class Scorep(Package):
- """
- The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling, event
- tracing, and online analysis of HPC applications.
+ """The Score-P measurement infrastructure is a highly scalable and
+ easy-to-use tool suite for profiling, event tracing, and online analysis
+ of HPC applications.
"""
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz"
+ version('2.0.2', '8f00e79e1b5b96e511c5ebecd10b2888',
+ url='http://www.vi-hps.org/upload/packages/scorep/scorep-2.0.2.tar.gz')
version('1.4.2', '3b9a042b13bdd5836452354e6567f71e',
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.4.2.tar.gz')
version('1.3', '9db6f957b7f51fa01377a9537867a55c',
url='http://www.vi-hps.org/upload/packages/scorep/scorep-1.3.tar.gz')
##########
- # Dependencies for SCORE-P are quite tight. See the homepage for more information.
+ # Dependencies for SCORE-P are quite tight. See the homepage for more
+ # information.
+ # SCOREP 2.0.2
+ depends_on('otf2@2.0', when='@2.0.2')
+ depends_on('opari2@2.0', when='@2.0.2')
+ depends_on('cube@4.3:4.4', when='@2.0.2')
# SCOREP 1.4.2
depends_on('otf2@1.5:1.6', when='@1.4.2')
depends_on('opari2@1.1.4', when='@1.4.2')
@@ -56,17 +62,18 @@ class Scorep(Package):
depends_on("papi")
def install(self, spec, prefix):
- configure = Executable( join_path(self.stage.source_path, 'configure') )
+ configure = Executable(join_path(self.stage.source_path, 'configure'))
with working_dir('spack-build', create=True):
- configure_args = ["--prefix=%s" % prefix,
- "--with-otf2=%s" % spec['otf2'].prefix.bin,
- "--with-opari2=%s" % spec['opari2'].prefix.bin,
- "--with-cube=%s" % spec['cube'].prefix.bin,
- "--with-papi-header=%s" % spec['papi'].prefix.include,
- "--with-papi-lib=%s" % spec['papi'].prefix.lib,
- "--enable-shared",
- "CFLAGS=-fPIC",
- "CXXFLAGS=-fPIC"]
+ configure_args = [
+ "--prefix=%s" % prefix,
+ "--with-otf2=%s" % spec['otf2'].prefix.bin,
+ "--with-opari2=%s" % spec['opari2'].prefix.bin,
+ "--with-cube=%s" % spec['cube'].prefix.bin,
+ "--with-papi-header=%s" % spec['papi'].prefix.include,
+ "--with-papi-lib=%s" % spec['papi'].prefix.lib,
+ "--enable-shared",
+ "CFLAGS=-fPIC",
+ "CXXFLAGS=-fPIC"]
configure(*configure_args)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/scotch/Makefile.esmumps b/var/spack/repos/builtin/packages/scotch/Makefile.esmumps
deleted file mode 100644
index 4bfc760197..0000000000
--- a/var/spack/repos/builtin/packages/scotch/Makefile.esmumps
+++ /dev/null
@@ -1,5 +0,0 @@
-esmumps : scotch
- (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
-
-ptesmumps : ptscotch
- (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py
index e82c3acd42..ca8e3e3fa0 100644
--- a/var/spack/repos/builtin/packages/scotch/package.py
+++ b/var/spack/repos/builtin/packages/scotch/package.py
@@ -22,72 +22,60 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+import os
from spack import *
-import os, re
+
class Scotch(Package):
"""Scotch is a software package for graph and mesh/hypergraph
partitioning, graph clustering, and sparse matrix ordering."""
homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
- url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz"
+ url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.3.tar.gz"
base_url = "http://gforge.inria.fr/frs/download.php/latestfile/298"
list_url = "http://gforge.inria.fr/frs/?group_id=248"
+ version('6.0.4', 'd58b825eb95e1db77efe8c6ff42d329f')
version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
version('6.0.0', 'c50d6187462ba801f9a82133ee666e8e')
version('5.1.10b', 'f587201d6cf5cf63527182fbfba70753')
- variant('mpi', default=False, description='Activate the compilation of PT-Scotch')
- variant('compression', default=True, description='Activate the posibility to use compressed files')
- variant('esmumps', default=False, description='Activate the compilation of the lib esmumps needed by mumps')
- variant('shared', default=True, description='Build shared libraries')
-
- depends_on('flex')
- depends_on('bison')
+ variant('mpi', default=True,
+ description='Activate the compilation of parallel libraries')
+ variant('compression', default=True,
+ description='Activate the posibility to use compressed files')
+ variant('esmumps', default=False,
+ description='Activate the compilation of esmumps needed by mumps')
+ variant('shared', default=True,
+ description='Build a shared version of the library')
+ variant('metis', default=True,
+ description='Build metis and parmetis wrapper libraries')
+
+ depends_on('flex@:2.6.1', type='build')
+ depends_on('bison', type='build')
depends_on('mpi', when='+mpi')
depends_on('zlib', when='+compression')
# NOTE: Versions of Scotch up to version 6.0.0 don't include support for
# building with 'esmumps' in their default packages. In order to enable
# support for this feature, we must grab the 'esmumps' enabled archives
- # from the Scotch hosting site. These alternative archives include a strict
+ # from the Scotch hosting site. These alternative archives include a
# superset of the behavior in their default counterparts, so we choose to
# always grab these versions for older Scotch versions for simplicity.
- @when('@:6.0.0')
- def url_for_version(self, version):
- return '%s/scotch_%s_esmumps.tar.gz' % (Scotch.base_url, version)
-
- @when('@6.0.1:')
def url_for_version(self, version):
return super(Scotch, self).url_for_version(version)
- # NOTE: Several of the 'esmumps' enabled Scotch releases up to version 6.0.0
- # have broken build scripts that don't properly build 'esmumps' as a separate
- # target, so we need a patch procedure to remove 'esmumps' from existing targets
- # and to add it as a standalone target.
@when('@:6.0.0')
- def patch(self):
- makefile_path = os.path.join('src', 'Makefile')
- with open(makefile_path, 'r') as makefile:
- esmumps_enabled = any(re.search(r'^esmumps(\s*):(.*)$', line) for line in makefile.readlines())
-
- if not esmumps_enabled:
- mff = FileFilter(makefile_path)
- mff.filter(r'^.*((esmumps)|(ptesmumps)).*(install).*$', '')
-
- makefile_esmumps_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Makefile.esmumps')
- with open(makefile_path, 'a') as makefile:
- makefile.write('\ninclude %s\n' % makefile_esmumps_path)
+ def url_for_version(self, version):
+ return '%s/scotch_%s_esmumps.tar.gz' % (Scotch.base_url, version)
- @when('@6.0.1:')
def patch(self):
- pass
+ self.configure()
- # NOTE: Configuration of Scotch is achieved by writing a 'Makefile.inc' file
- # that contains all of the configuration variables and their desired values
- # for the installation. This function writes this file based on the given
- # installation variants.
+ # NOTE: Configuration of Scotch is achieved by writing a 'Makefile.inc'
+ # file that contains all of the configuration variables and their desired
+ # values for the installation. This function writes this file based on
+ # the given installation variants.
def configure(self):
makefile_inc = []
cflags = [
@@ -96,17 +84,30 @@ class Scotch(Package):
'-DSCOTCH_DETERMINISTIC',
'-DSCOTCH_RENAME',
'-DIDXSIZE64'
- ]
+ ]
- ## Library Build Type ##
+ if self.spec.satisfies('platform=darwin'):
+ cflags.extend([
+ '-Drestrict=__restrict'
+ ])
+ # Library Build Type #
if '+shared' in self.spec:
- makefile_inc.extend([
- 'LIB = .so',
- 'CLIBFLAGS = -shared -fPIC',
- 'RANLIB = echo',
- 'AR = $(CC)',
- 'ARFLAGS = -shared $(LDFLAGS) -o'
+ if self.spec.satisfies('platform=darwin'):
+ makefile_inc.extend([
+ 'LIB = .dylib',
+ 'CLIBFLAGS = -dynamiclib -fPIC',
+ 'RANLIB = echo',
+ 'AR = $(CC)',
+ 'ARFLAGS = -dynamiclib $(LDFLAGS) -Wl,-install_name -Wl,%s/$(notdir $@) -undefined dynamic_lookup -o ' % prefix.lib # noqa
+ ])
+ else:
+ makefile_inc.extend([
+ 'LIB = .so',
+ 'CLIBFLAGS = -shared -fPIC',
+ 'RANLIB = echo',
+ 'AR = $(CC)',
+ 'ARFLAGS = -shared $(LDFLAGS) -o'
])
cflags.append('-fPIC')
else:
@@ -114,23 +115,23 @@ class Scotch(Package):
'LIB = .a',
'CLIBFLAGS = ',
'RANLIB = ranlib',
- 'AR = ar',
+ 'AR = ar',
'ARFLAGS = -ruv '
- ])
+ ])
- ## Compiler-Specific Options ##
+ # Compiler-Specific Options #
if self.compiler.name == 'gcc':
cflags.append('-Drestrict=__restrict')
elif self.compiler.name == 'intel':
cflags.append('-restrict')
+ mpicc_path = self.spec['mpi'].mpicc if '+mpi' in self.spec else 'mpicc'
makefile_inc.append('CCS = $(CC)')
- makefile_inc.append('CCP = %s' %
- (self.spec['mpi'].mpicc if '+mpi' in self.spec else 'mpicc'))
+ makefile_inc.append('CCP = %s' % mpicc_path)
makefile_inc.append('CCD = $(CCS)')
- ## Extra Features ##
+ # Extra Features #
ldflags = []
@@ -139,12 +140,18 @@ class Scotch(Package):
ldflags.append('-L%s -lz' % (self.spec['zlib'].prefix.lib))
cflags.append('-DCOMMON_PTHREAD')
- ldflags.append('-lm -lrt -pthread')
+ if self.spec.satisfies('platform=darwin'):
+ cflags.append('-DCOMMON_PTHREAD_BARRIER')
+ ldflags.append('-lm -pthread')
+ else:
+ ldflags.append('-lm -lrt -pthread')
makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags))
- ## General Features ##
+ # General Features #
+ flex_path = os.path.join(self.spec['flex'].prefix.bin, 'flex')
+ bison_path = os.path.join(self.spec['bison'].prefix.bin, 'bison')
makefile_inc.extend([
'EXE =',
'OBJ = .o',
@@ -155,30 +162,57 @@ class Scotch(Package):
'MV = mv',
'CP = cp',
'CFLAGS = %s' % ' '.join(cflags),
- 'LEX = %s -Pscotchyy -olex.yy.c' % os.path.join(self.spec['flex'].prefix.bin , 'flex'),
- 'YACC = %s -pscotchyy -y -b y' % os.path.join(self.spec['bison'].prefix.bin, 'bison'),
+ 'LEX = %s -Pscotchyy -olex.yy.c' % flex_path,
+ 'YACC = %s -pscotchyy -y -b y' % bison_path,
'prefix = %s' % self.prefix
- ])
+ ])
with working_dir('src'):
with open('Makefile.inc', 'w') as fh:
fh.write('\n'.join(makefile_inc))
def install(self, spec, prefix):
- self.configure()
-
targets = ['scotch']
if '+mpi' in self.spec:
targets.append('ptscotch')
- if '+esmumps' in self.spec:
- targets.append('esmumps')
- if '+mpi' in self.spec:
- targets.append('ptesmumps')
+ if self.spec.version >= Version('6.0.0'):
+ if '+esmumps' in self.spec:
+ targets.append('esmumps')
+ if '+mpi' in self.spec:
+ targets.append('ptesmumps')
with working_dir('src'):
for target in targets:
- make(target, parallel=(target!='ptesmumps'))
+ # It seams that building ptesmumps in parallel fails, for
+ # version prior to 6.0.0 there is no separated targets force
+ # ptesmumps, this library is built by the ptscotch target. This
+ # should explain the test for the can_make_parallel variable
+ can_make_parallel = \
+ not (target == 'ptesmumps' or
+ (self.spec.version < Version('6.0.0') and
+ target == 'ptscotch'))
+ make(target, parallel=can_make_parallel)
+
+ lib_ext = dso_suffix if '+shared' in self.spec else 'a'
+ # It seams easier to remove metis wrappers from the folder that will be
+ # installed than to tweak the Makefiles
+ if '+metis' not in self.spec:
+ with working_dir('lib'):
+ force_remove('libscotchmetis.{0}'.format(lib_ext))
+ force_remove('libptscotchparmetis.{0}'.format(lib_ext))
+
+ with working_dir('include'):
+ force_remove('metis.h')
+ force_remove('parmetis.h')
+
+ if '~esmumps' in self.spec and self.spec.version < Version('6.0.0'):
+ with working_dir('lib'):
+ force_remove('libesmumps.{0}'.format(lib_ext))
+ force_remove('libptesmumps.{0}'.format(lib_ext))
+
+ with working_dir('include'):
+ force_remove('esmumps.h')
install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py
index b638688e7b..2b01c60b3e 100644
--- a/var/spack/repos/builtin/packages/scr/package.py
+++ b/var/spack/repos/builtin/packages/scr/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Scr(Package):
"""SCR caches checkpoint data in storage on the compute nodes of a
Linux cluster to provide a fast, scalable checkpoint/restart
@@ -34,8 +35,10 @@ class Scr(Package):
depends_on("mpi")
# depends_on("dtcmp")
- version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd', url='http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz')
- version('1.1.8', '6a0f11ad18e27fcfc00a271ff587b06e', url='https://github.com/hpc/scr/releases/download/v1.1.8/scr-1.1.8.tar.gz')
+ version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd',
+ url='http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz')
+ version('1.1.8', '6a0f11ad18e27fcfc00a271ff587b06e',
+ url='https://github.com/hpc/scr/releases/download/v1.1.8/scr-1.1.8.tar.gz')
def install(self, spec, prefix):
configure("--prefix=" + prefix,
diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py
new file mode 100644
index 0000000000..7edfb44a4d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/screen/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Screen(Package):
+ """Screen is a full-screen window manager that multiplexes a physical
+ terminal between several processes, typically interactive shells.
+ """
+
+ homepage = "https://www.gnu.org/software/screen/"
+ url = "http://ftp.gnu.org/gnu/screen/screen-4.3.1.tar.gz"
+
+ version('4.3.1', '5bb3b0ff2674e29378c31ad3411170ad')
+ version('4.3.0', 'f76d28eadc4caaf6cdff00685ae6ad46')
+ version('4.2.1', '419a0594e2b25039239af8b90eda7d92')
+ version('4.2.0', 'e5199156a8ac863bbf92495a7638b612')
+ version('4.0.3', '8506fd205028a96c741e4037de6e3c42')
+ version('4.0.2', 'ed68ea9b43d9fba0972cb017a24940a1')
+ version('3.9.15', '0dff6fdc3fbbceabf25a43710fbfe75f')
+ version('3.9.11', '19572f92404995e7b2dea8117204dd67')
+ version('3.9.10', 'bbe271715d1dee038b3cd72d6d2f05fb')
+ version('3.9.9', '9a8b1d6c7438c64b884c4f7d7662afdc')
+ version('3.9.8', '8ddfebe32c2d45410ce89ea9779bb1cf')
+ version('3.9.4', '7de72cd18f7adcdf993ecc6764d0478a')
+ version('3.7.6', '9a353b828d79c3c143109265cae663a7')
+ version('3.7.4', 'c5ab40b068968075e41e25607dfce543')
+ version('3.7.2', '2d6db5de7fb0cf849cc5a6f94203f029')
+ version('3.7.1', '27cdd29318446561ef7c966041cbd2c9')
+
+ depends_on('ncurses')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/scripts/package.py b/var/spack/repos/builtin/packages/scripts/package.py
new file mode 100644
index 0000000000..7086cfd6fe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scripts/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Scripts(Package):
+ """Various X related scripts."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/scripts"
+ url = "https://www.x.org/archive/individual/app/scripts-1.0.1.tar.gz"
+
+ version('1.0.1', '1e8294a126a2a7556b21025a8d933e8b')
+
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/scrnsaverproto/package.py b/var/spack/repos/builtin/packages/scrnsaverproto/package.py
new file mode 100644
index 0000000000..3675fd0eff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scrnsaverproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Scrnsaverproto(Package):
+ """MIT Screen Saver Extension.
+
+ This extension defines a protocol to control screensaver features
+ and also to query screensaver info on specific windows."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/scrnsaverproto"
+ url = "https://www.x.org/archive/individual/proto/scrnsaverproto-1.2.2.tar.gz"
+
+ version('1.2.2', '21704f1bad472d94abd22fea5704bb48')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/sdl2-image/package.py b/var/spack/repos/builtin/packages/sdl2-image/package.py
new file mode 100644
index 0000000000..5df207ac55
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sdl2-image/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sdl2Image(Package):
+ """SDL is designed to provide the bare bones of creating a graphical
+ program. """
+
+ homepage = "http://sdl.beuc.net/sdl.wiki/SDL_image"
+ url = "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz"
+
+ version('2.0.1', 'd94b94555ba022fa249a53a021dc3606')
+
+ depends_on('sdl2')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py
new file mode 100644
index 0000000000..98f8861fed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sdl2/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sdl2(Package):
+ """Simple DirectMedia Layer is a cross-platform development library designed
+ to provide low level access to audio, keyboard, mouse, joystick, and
+ graphics hardware via OpenGL and Direct3D."""
+
+ homepage = "https://wiki.libsdl.org/FrontPage"
+ url = "https://libsdl.org/release/SDL2-2.0.5.tar.gz"
+
+ version('2.0.5', 'd4055424d556b4a908aa76fad63abd3c')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('..', *std_cmake_args)
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/seqtk/package.py b/var/spack/repos/builtin/packages/seqtk/package.py
new file mode 100644
index 0000000000..ca168c176c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/seqtk/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Seqtk(Package):
+ """Toolkit for processing sequences in FASTA/Q formats."""
+
+ homepage = "https://github.com/lh3/seqtk"
+ url = "https://github.com/lh3/seqtk/archive/v1.1.tar.gz"
+
+ version('1.2', '255ffe05bf2f073dc57abcff97f11a37')
+ version('1.1', 'ebf5cc57698a217150c2250494e039a2')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ make()
+ mkdirp(prefix.bin)
+ install('seqtk', prefix.bin)
+ set_executable(join_path(prefix.bin, 'seqtk'))
diff --git a/var/spack/repos/builtin/packages/serf/package.py b/var/spack/repos/builtin/packages/serf/package.py
index 3b1d08889c..ebca74a3ab 100644
--- a/var/spack/repos/builtin/packages/serf/package.py
+++ b/var/spack/repos/builtin/packages/serf/package.py
@@ -24,28 +24,32 @@
##############################################################################
from spack import *
+
class Serf(Package):
- """Apache Serf - a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library"""
+ """Apache Serf - a high performance C-based HTTP client library
+ built upon the Apache Portable Runtime (APR) library"""
+
homepage = 'https://serf.apache.org/'
url = 'https://archive.apache.org/dist/serf/serf-1.3.8.tar.bz2'
- version('1.3.8', '1d45425ca324336ce2f4ae7d7b4cfbc5567c5446')
+ version('1.3.8', '1d45425ca324336ce2f4ae7d7b4cfbc5567c5446')
depends_on('apr')
depends_on('apr-util')
- depends_on('scons')
+ depends_on('scons', type='build')
depends_on('expat')
depends_on('openssl')
+ depends_on('zlib')
def install(self, spec, prefix):
- scons = which("scons")
-
options = ['PREFIX=%s' % prefix]
options.append('APR=%s' % spec['apr'].prefix)
options.append('APU=%s' % spec['apr-util'].prefix)
options.append('OPENSSL=%s' % spec['openssl'].prefix)
- options.append('LINKFLAGS=-L%s/lib' % spec['expat'].prefix)
- options.append('CPPFLAGS=-I%s/include' % spec['expat'].prefix)
+ options.append('LINKFLAGS=-L%s/lib -L%s/lib' %
+ (spec['expat'].prefix, spec['zlib'].prefix))
+ options.append('CPPFLAGS=-I%s/include -I%s/include' %
+ (spec['expat'].prefix, spec['zlib'].prefix))
scons(*options)
scons('install')
diff --git a/var/spack/repos/builtin/packages/sessreg/package.py b/var/spack/repos/builtin/packages/sessreg/package.py
new file mode 100644
index 0000000000..2ab505cc7a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sessreg/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sessreg(Package):
+ """Sessreg is a simple program for managing utmp/wtmp entries for X
+ sessions. It was originally written for use with xdm, but may also be
+ used with other display managers such as gdm or kdm."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/sessreg"
+ url = "https://www.x.org/archive/individual/app/sessreg-1.1.0.tar.gz"
+
+ version('1.1.0', '5d7eb499043c7fdd8d53c5ba43660312')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def patch(self):
+ kwargs = {'string': True}
+ filter_file('$(CPP) $(DEFS)', '$(CPP) -P $(DEFS)',
+ 'man/Makefile.in', **kwargs)
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/setxkbmap/package.py b/var/spack/repos/builtin/packages/setxkbmap/package.py
new file mode 100644
index 0000000000..db365530c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/setxkbmap/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Setxkbmap(Package):
+ """setxkbmap is an X11 client to change the keymaps in the X server for a
+ specified keyboard to use the layout determined by the options listed
+ on the command line."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/setxkbmap"
+ url = "https://www.x.org/archive/individual/app/setxkbmap-1.3.1.tar.gz"
+
+ version('1.3.1', 'fdfc0fc643a50fb0b5fa7546e4d28868')
+
+ depends_on('libxkbfile')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/showfont/package.py b/var/spack/repos/builtin/packages/showfont/package.py
new file mode 100644
index 0000000000..232988193b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/showfont/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Showfont(Package):
+ """showfont displays data about a font from an X font server.
+ The information shown includes font information, font properties,
+ character metrics, and character bitmaps."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/showfont"
+ url = "https://www.x.org/archive/individual/app/showfont-1.0.5.tar.gz"
+
+ version('1.0.5', 'cea973363df01fb27a87e939600137fd')
+
+ depends_on('libfs')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py
index 017a09977a..691d53a9f1 100644
--- a/var/spack/repos/builtin/packages/silo/package.py
+++ b/var/spack/repos/builtin/packages/silo/package.py
@@ -38,9 +38,11 @@ class Silo(Package):
variant('fortran', default=True, description='Enable Fortran support')
variant('shared', default=True, description='Build shared libraries')
- variant('silex', default=False, description='Builds Silex, a GUI for viewing Silo files')
+ variant('silex', default=False,
+ description='Builds Silex, a GUI for viewing Silo files')
- depends_on('hdf5')
+ # silo uses the obsolete function H5Pset_fapl_mpiposix:
+ depends_on("hdf5 @:1.8.12")
depends_on('qt', when='+silex')
def install(self, spec, prefix):
@@ -55,8 +57,10 @@ class Silo(Package):
configure(
'--prefix=%s' % prefix,
- '--with-hdf5=%s,%s' % (spec['hdf5'].prefix.include, spec['hdf5'].prefix.lib),
- '--with-zlib=%s,%s' % (spec['zlib'].prefix.include, spec['zlib'].prefix.lib),
+ '--with-hdf5=%s,%s' % (spec['hdf5'].prefix.include,
+ spec['hdf5'].prefix.lib),
+ '--with-zlib=%s,%s' % (spec['zlib'].prefix.include,
+ spec['zlib'].prefix.lib),
'--enable-install-lite-headers',
*config_args)
diff --git a/var/spack/repos/builtin/packages/slepc/install_name_371.patch b/var/spack/repos/builtin/packages/slepc/install_name_371.patch
new file mode 100644
index 0000000000..d02ca88657
--- /dev/null
+++ b/var/spack/repos/builtin/packages/slepc/install_name_371.patch
@@ -0,0 +1,32 @@
+From 7489a3f3d569e2fbf5513ac9dcd769017d9f7eb7 Mon Sep 17 00:00:00 2001
+From: Lisandro Dalcin <dalcinl@gmail.com>
+Date: Thu, 2 Jun 2016 21:57:38 +0300
+Subject: [PATCH] OS X: Fix library path in invocation of install_name_tool
+
+---
+ config/install.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/config/install.py b/config/install.py
+index 09acd03..6ce98ae 100755
+--- a/config/install.py
++++ b/config/install.py
+@@ -25,6 +25,7 @@ class Installer:
+
+ def setupDirectories(self):
+ self.installDir = self.destDir
++ self.archDir = os.path.join(self.rootDir, self.arch)
+ self.rootIncludeDir = os.path.join(self.rootDir, 'include')
+ self.archIncludeDir = os.path.join(self.rootDir, self.arch, 'include')
+ self.rootConfDir = os.path.join(self.rootDir, 'lib','slepc','conf')
+@@ -220,7 +221,7 @@ for dir in dirs:
+ if os.path.splitext(dst)[1] == '.dylib' and os.path.isfile('/usr/bin/install_name_tool'):
+ (result, output) = commands.getstatusoutput('otool -D '+src)
+ oldname = output[output.find("\n")+1:]
+- installName = oldname.replace(self.destDir, self.installDir)
++ installName = oldname.replace(self.archDir, self.installDir)
+ (result, output) = commands.getstatusoutput('/usr/bin/install_name_tool -id ' + installName + ' ' + dst)
+ # preserve the original timestamps - so that the .a vs .so time order is preserved
+ shutil.copystat(src,dst)
+--
+2.7.4.1.g5468f9e
diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py
index c148a579ec..17c512119c 100644
--- a/var/spack/repos/builtin/packages/slepc/package.py
+++ b/var/spack/repos/builtin/packages/slepc/package.py
@@ -28,23 +28,33 @@ from spack import *
class Slepc(Package):
"""
- Scalable Library for Eigenvalue Computations.
+ Scalable Library for Eigenvalue Problem Computations.
"""
homepage = "http://www.grycap.upv.es/slepc"
url = "http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz"
+ version('3.7.3', '3ef9bcc645a10c1779d56b3500472ceb66df692e389d635087d30e7c46424df9')
+ version('3.7.1', '670216f263e3074b21e0623c01bc0f562fdc0bffcd7bd42dd5d8edbe73a532c2')
+ version('3.6.3', '384939d009546db37bc05ed81260c8b5ba451093bf891391d32eb7109ccff876')
version('3.6.2', '2ab4311bed26ccf7771818665991b2ea3a9b15f97e29fd13911ab1293e8e65df')
- variant('arpack', default=False, description='Enables Arpack wrappers')
+ variant('arpack', default=True, description='Enables Arpack wrappers')
- depends_on('petsc')
- depends_on('arpack-ng~mpi',when='+arpack^petsc~mpi')
- depends_on('arpack-ng+mpi',when='+arpack^petsc+mpi')
+ # NOTE: make sure PETSc and SLEPc use the same python.
+ depends_on('python@2.6:2.7', type='build')
+ depends_on('petsc@3.7:', when='@3.7.1:')
+ depends_on('petsc@3.6.3:3.6.4', when='@3.6.2:3.6.3')
+ depends_on('arpack-ng~mpi', when='+arpack^petsc~mpi')
+ depends_on('arpack-ng+mpi', when='+arpack^petsc+mpi')
+
+ patch('install_name_371.patch', when='@3.7.1')
def install(self, spec, prefix):
# set SLEPC_DIR for installation
- os.environ['SLEPC_DIR'] = self.stage.source_path
+ # Note that one should set the current (temporary) directory instead
+ # its symlink in spack/stage/ !
+ os.environ['SLEPC_DIR'] = os.getcwd()
options = []
@@ -64,9 +74,10 @@ class Slepc(Package):
configure('--prefix=%s' % prefix, *options)
make('MAKE_NP=%s' % make_jobs, parallel=False)
- #FIXME:
- # make('test')
- make('install')
+ if self.run_tests:
+ make('test', parallel=False)
+
+ make('install', parallel=False)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up SLEPC_DIR for everyone using SLEPc package
diff --git a/var/spack/repos/builtin/packages/smproxy/package.py b/var/spack/repos/builtin/packages/smproxy/package.py
new file mode 100644
index 0000000000..5bdde800d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/smproxy/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Smproxy(Package):
+ """smproxy allows X applications that do not support X11R6 session
+ management to participate in an X11R6 session."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/smproxy"
+ url = "https://www.x.org/archive/individual/app/smproxy-1.0.6.tar.gz"
+
+ version('1.0.6', '012c259f5a89e5c636037446d44eb354')
+
+ depends_on('libsm')
+ depends_on('libice')
+ depends_on('libxt')
+ depends_on('libxmu')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/snappy/package.py b/var/spack/repos/builtin/packages/snappy/package.py
index 836063f933..1e94980c92 100644
--- a/var/spack/repos/builtin/packages/snappy/package.py
+++ b/var/spack/repos/builtin/packages/snappy/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
+
class Snappy(Package):
"""A fast compressor/decompressor: https://code.google.com/p/snappy"""
diff --git a/var/spack/repos/builtin/packages/sowing/package.py b/var/spack/repos/builtin/packages/sowing/package.py
new file mode 100644
index 0000000000..f7f6297488
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sowing/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Sowing(Package):
+ """Sowing generates Fortran interfaces and documentation for PETSc
+ and MPICH.
+ """
+
+ homepage = "http://www.mcs.anl.gov/petsc/index.html"
+ url = "http://ftp.mcs.anl.gov/pub/petsc/externalpackages/sowing-1.1.23-p1.tar.gz"
+
+ version('1.1.23-p1', '65aaf3ae2a4c0f30d532fec291702e16')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+ make('ALL', parallel=False)
+ make("install")
diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py
new file mode 100644
index 0000000000..84b63fa87f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spark/package.py
@@ -0,0 +1,74 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+import shutil
+
+
+class Spark(Package):
+ """Apache Spark is a fast and general engine
+ for large-scale data processing.
+ """
+
+ homepage = "http://spark.apache.org"
+ url = "http://mirrors.ocf.berkeley.edu/apache/spark/spark-2.0.0/spark-2.0.0-bin-without-hadoop.tgz"
+
+ variant('hadoop', default=False,
+ description='Build with Hadoop')
+
+ depends_on('jdk', type=('build', 'run'))
+ depends_on('hadoop', when='+hadoop', type=('build', 'run'))
+
+ version('2.0.0', '8a5307d973da6949a385aefb6ff747bb')
+ version('1.6.2', '304394fbe2899211217f0cd9e9b2b5d9')
+ version('1.6.1', 'fcf4961649f15af1fea78c882e65b001')
+
+ def install(self, spec, prefix):
+
+ def install_dir(dirname):
+ install_tree(dirname, join_path(prefix, dirname))
+
+ install_dir('bin')
+ install_dir('conf')
+ install_dir('jars')
+ install_dir('python')
+ install_dir('R')
+ install_dir('sbin')
+ install_dir('yarn')
+
+ # required for spark to recognize binary distribution
+ shutil.copy('RELEASE', prefix)
+
+ @when('+hadoop')
+ def setup_environment(self, spack_env, run_env):
+
+ env['JAVA_HOME'] = self.spec['jdk'].prefix
+ # spack_env.set('JAVA_HOME', self.spec['jdk'].prefix)
+
+ hadoop_bin_path = join_path(self.spec['hadoop'].prefix.bin, 'hadoop')
+ hadoop_bin = Executable(hadoop_bin_path)
+ hadoop_classpath = hadoop_bin('classpath', return_output=True)
+
+ run_env.set('SPARK_DIST_CLASSPATH', hadoop_classpath)
diff --git a/var/spack/repos/builtin/packages/sparsehash/package.py b/var/spack/repos/builtin/packages/sparsehash/package.py
index a72a5ce105..e5abd42ae6 100644
--- a/var/spack/repos/builtin/packages/sparsehash/package.py
+++ b/var/spack/repos/builtin/packages/sparsehash/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Sparsehash(Package):
"""Sparse and dense hash-tables for C++ by Google"""
homepage = "https://github.com/sparsehash/sparsehash"
diff --git a/var/spack/repos/builtin/packages/spdlog/package.py b/var/spack/repos/builtin/packages/spdlog/package.py
new file mode 100644
index 0000000000..f9520219a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spdlog/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Spdlog(CMakePackage):
+ """Very fast, header only, C++ logging library"""
+
+ homepage = "https://github.com/gabime/spdlog"
+ url = "https://github.com/gabime/spdlog/archive/v0.9.0.tar.gz"
+
+ version('0.11.0', '08232203f18a6f9ff47e083cc7a141a050805d3b')
+ version('0.10.0', '57b471ef97a23cc29c38b62e00e89a411a87ea7f')
+ version('0.9.0', 'dda741ef8e12d57d91f778d85e95a27d84a82ac4')
diff --git a/var/spack/repos/builtin/packages/spindle/package.py b/var/spack/repos/builtin/packages/spindle/package.py
index bcdc7543a3..213d41e970 100644
--- a/var/spack/repos/builtin/packages/spindle/package.py
+++ b/var/spack/repos/builtin/packages/spindle/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Spindle(Package):
"""Spindle improves the library-loading performance of dynamically
linked HPC applications. Without Spindle large MPI jobs can
diff --git a/var/spack/repos/builtin/packages/spot/package.py b/var/spack/repos/builtin/packages/spot/package.py
index 59535dcc4c..096aa24c02 100644
--- a/var/spack/repos/builtin/packages/spot/package.py
+++ b/var/spack/repos/builtin/packages/spot/package.py
@@ -23,16 +23,17 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class Spot(Package):
- """Spot is a C++11 library for omega-automata manipulation and model checking."""
+ """Spot is a C++11 library for omega-automata manipulation and model
+ checking."""
homepage = "https://spot.lrde.epita.fr/index.html"
url = "http://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz"
version('1.99.3', 'd53adcb2d0fe7c69f45d4e595a58254e')
- #depends_on("gcc@4.8:")
+ # depends_on("gcc@4.8:", type='build')
depends_on("python@3.2:")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index 5e7ae4fb8b..c57ee72323 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -23,6 +23,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+from spack import architecture
+
class Sqlite(Package):
"""SQLite3 is an SQL database engine in a C library. Programs that
@@ -32,9 +34,17 @@ class Sqlite(Package):
homepage = "www.sqlite.org"
version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed',
- url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz')
+ url='https://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz')
+
+ def get_arch(self):
+ arch = architecture.Arch()
+ arch.platform = architecture.platform()
+ return str(arch.platform.target('default_target'))
def install(self, spec, prefix):
- configure("--prefix=" + prefix)
+ config = ["--prefix=" + prefix]
+ if self.get_arch() == 'ppc64le':
+ config.append("--build=powerpc64le-redhat-linux-gnu")
+ configure(*config)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/star-ccm-plus/package.py b/var/spack/repos/builtin/packages/star-ccm-plus/package.py
new file mode 100644
index 0000000000..ba1516b62a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/star-ccm-plus/package.py
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+
+
+class StarCcmPlus(Package):
+ """STAR-CCM+ (Computational Continuum Mechanics) CFD solver."""
+
+ homepage = "http://mdx.plm.automation.siemens.com/star-ccm-plus"
+
+ version('11.06.010_02', 'd349c6ac8293d8e6e7a53533d695588f')
+
+ variant('docs', default=False, description='Install the documentation')
+
+ # Licensing
+ license_required = True
+ license_vars = ['CDLMD_LICENSE_FILE', 'LM_LICENSE_FILE']
+
+ def url_for_version(self, version):
+ return "file://{0}/STAR-CCM+{1}_linux-x86_64.tar.gz".format(
+ os.getcwd(), version)
+
+ def install(self, spec, prefix):
+ # There is a known issue with the LaunchAnywhere application.
+ # Specifically, it cannot handle long prompts or prompts
+ # containing special characters and backslashes. It results in
+ # the following error message:
+ #
+ # An internal LaunchAnywhere application error has occured and this
+ # application cannot proceed. (LAX)
+ #
+ # Stack Trace:
+ # java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
+ # at java.util.Properties.loadConvert(Unknown Source)
+ # at java.util.Properties.load0(Unknown Source)
+ # at java.util.Properties.load(Unknown Source)
+ # at com.zerog.common.java.util.PropertiesUtil.loadProperties(
+ # Unknown Source)
+ # at com.zerog.lax.LAX.<init>(Unknown Source)
+ # at com.zerog.lax.LAX.main(Unknown Source)
+ #
+ # https://www.maplesoft.com/support/faqs/detail.aspx?sid=35272
+ env['PS1'] = '>'
+ env['PROMPT_COMMAND'] = ''
+
+ installer = Executable(glob.glob('*.bin')[0])
+
+ installer(
+ '-i', 'silent',
+ '-DINSTALLDIR={0}'.format(prefix),
+ '-DINSTALLFLEX=false',
+ '-DADDSYSTEMPATH=false',
+ '-DNODOC={0}'.format('false' if '+docs' in spec else 'true')
+ )
diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py
index 80d27e149f..c511fcee70 100644
--- a/var/spack/repos/builtin/packages/stat/package.py
+++ b/var/spack/repos/builtin/packages/stat/package.py
@@ -24,24 +24,39 @@
##############################################################################
from spack import *
+
class Stat(Package):
"""Library to create, manipulate, and export graphs Graphlib."""
+
homepage = "http://paradyn.org/STAT/STAT.html"
url = "https://github.com/lee218llnl/stat/archive/v2.0.0.tar.gz"
version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc')
version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91')
version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b')
+ version('3.0.0', 'a97cb235c266371c4a26329112de48a2',
+ url='https://github.com/LLNL/STAT/releases/download/v3.0.0/STAT-3.0.0.tar.gz')
+ # TODO: dysect requires Dyninst patch for version 3.0.0b
variant('dysect', default=False, description="enable DySectAPI")
+ variant('examples', default=False, description="enable examples")
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
depends_on('libelf')
depends_on('libdwarf')
- depends_on('dyninst')
- depends_on('graphlib')
- depends_on('graphviz')
+ depends_on('dyninst', when='~dysect')
+ depends_on('dyninst@8.2.1+stat_dysect', when='+dysect')
+ depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0')
+ depends_on('graphlib@3.0.0', when='@3:')
+ depends_on('graphviz', type=('build', 'link', 'run'))
depends_on('launchmon')
depends_on('mrnet')
+ depends_on('python')
+ depends_on('py-pygtk')
+ depends_on('swig')
+ depends_on('mpi', when='+examples')
patch('configure_mpicxx.patch', when='@2.1.0')
@@ -49,16 +64,16 @@ class Stat(Package):
configure_args = [
"--enable-gui",
"--prefix=%s" % prefix,
- "--disable-examples", # Examples require MPI: avoid this dependency.
"--with-launchmon=%s" % spec['launchmon'].prefix,
"--with-mrnet=%s" % spec['mrnet'].prefix,
"--with-graphlib=%s" % spec['graphlib'].prefix,
"--with-stackwalker=%s" % spec['dyninst'].prefix,
"--with-libdwarf=%s" % spec['libdwarf'].prefix
- ]
+ ]
if '+dysect' in spec:
configure_args.append('--enable-dysectapi')
+ if '~examples' in spec:
+ configure_args.append('--disable-examples')
configure(*configure_args)
- make(parallel=False)
make("install")
diff --git a/var/spack/repos/builtin/packages/stream/package.py b/var/spack/repos/builtin/packages/stream/package.py
new file mode 100644
index 0000000000..8b3f32af8a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/stream/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Stream(Package):
+ """The STREAM benchmark is a simple synthetic benchmark program that
+ measures sustainable memory bandwidth (in MB/s) and the corresponding
+ computation rate for simple vector kernels."""
+
+ homepage = "https://www.cs.virginia.edu/stream/ref.html"
+
+ version('5.10', git='https://github.com/jeffhammond/STREAM.git')
+
+ variant('openmp', default=False, description='Build with OpenMP support')
+
+ def patch(self):
+ makefile = FileFilter('Makefile')
+
+ # Use the Spack compiler wrappers
+ makefile.filter('CC = .*', 'CC = cc')
+ makefile.filter('FC = .*', 'FC = f77')
+
+ cflags = '-O2'
+ fflags = '-O2'
+ if '+openmp' in self.spec:
+ cflags += ' ' + self.compiler.openmp_flag
+ fflags += ' ' + self.compiler.openmp_flag
+
+ # Set the appropriate flags for this compiler
+ makefile.filter('CFLAGS = .*', 'CFLAGS = {0}'.format(cflags))
+ makefile.filter('FFLAGS = .*', 'FFLAGS = {0}'.format(fflags))
+
+ def install(self, spec, prefix):
+ make()
+
+ # Manual installation
+ mkdir(prefix.bin)
+ install('stream_c.exe', prefix.bin)
+ install('stream_f.exe', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sublime-text/package.py b/var/spack/repos/builtin/packages/sublime-text/package.py
new file mode 100644
index 0000000000..81d8690db8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sublime-text/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+
+
+class SublimeText(Package):
+ """Sublime Text is a sophisticated text editor for code, markup and
+ prose."""
+
+ homepage = "http://www.sublimetext.com/"
+ url = "https://download.sublimetext.com/sublime_text_3_build_3126_x64.tar.bz2"
+
+ version('3126', 'acc34252b0ea7dff1f581c5db1564dcb')
+ version('2.0.2', '699cd26d7fe0bada29eb1b2cd7b50e4b')
+
+ # Sublime text comes as a pre-compiled binary.
+ # Since we can't link to Spack packages, we'll just have to
+ # add them as runtime dependencies.
+
+ # depends_on('libgobject', type='run')
+ depends_on('glib', type='run')
+ depends_on('libx11', type='run')
+ depends_on('pcre', type='run')
+ depends_on('libffi', type='run')
+ depends_on('libxcb', type='run')
+ depends_on('libxau', type='run')
+
+ def url_for_version(self, version):
+ if version.up_to(1) == '2':
+ return "https://download.sublimetext.com/Sublime%20Text%20{0}%20x64.tar.bz2".format(version)
+ else:
+ return "https://download.sublimetext.com/sublime_text_3_build_{0}_x64.tar.bz2".format(version)
+
+ def install(self, spec, prefix):
+ # Sublime text comes as a pre-compiled binary.
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py
index 68ee397857..02b7d96378 100644
--- a/var/spack/repos/builtin/packages/subversion/package.py
+++ b/var/spack/repos/builtin/packages/subversion/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-#import os
+
class Subversion(Package):
"""Apache Subversion - an open source version control system."""
@@ -41,39 +41,43 @@ class Subversion(Package):
# Optional: We need swig if we want the Perl, Python or Ruby
# bindings.
- #depends_on('swig')
- #depends_on('python')
- #depends_on('perl')
- #depends_on('ruby')
+ # depends_on('swig')
+ # depends_on('python')
+ # depends_on('perl')
+ # depends_on('ruby')
+
+ # Installation has race cases.
+ parallel = False
def install(self, spec, prefix):
# configure, build, install:
- # Ref: http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html
+ # Ref:
+ # http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html
options = ['--prefix=%s' % prefix]
options.append('--with-apr=%s' % spec['apr'].prefix)
options.append('--with-apr-util=%s' % spec['apr-util'].prefix)
options.append('--with-zlib=%s' % spec['zlib'].prefix)
options.append('--with-sqlite=%s' % spec['sqlite'].prefix)
options.append('--with-serf=%s' % spec['serf'].prefix)
- #options.append('--with-swig=%s' % spec['swig'].prefix)
+ # options.append('--with-swig=%s' % spec['swig'].prefix)
configure(*options)
make()
make('install')
# python bindings
- #make('swig-py',
+ # make('swig-py',
# 'swig-pydir=/usr/lib/python2.7/site-packages/libsvn',
# 'swig_pydir_extra=/usr/lib/python2.7/site-packages/svn')
- #make('install-swig-py',
+ # make('install-swig-py',
# 'swig-pydir=/usr/lib/python2.7/site-packages/libsvn',
# 'swig_pydir_extra=/usr/lib/python2.7/site-packages/svn')
# perl bindings
- #make('swig-pl')
- #make('install-swig-pl')
+ # make('swig-pl')
+ # make('install-swig-pl')
# ruby bindings
- #make('swig-rb')
- #make('isntall-swig-rb')
+ # make('swig-rb')
+ # make('isntall-swig-rb')
diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py
index dd0dfa3e23..aa22e1ecce 100644
--- a/var/spack/repos/builtin/packages/suite-sparse/package.py
+++ b/var/spack/repos/builtin/packages/suite-sparse/package.py
@@ -32,56 +32,79 @@ class SuiteSparse(Package):
homepage = 'http://faculty.cse.tamu.edu/davis/suitesparse.html'
url = 'http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.1.tar.gz'
+ version('4.5.3', '8ec57324585df3c6483ad7f556afccbd')
version('4.5.1', 'f0ea9aad8d2d1ffec66a5b6bfeff5319')
- # FIXME: (see below)
- # variant('tbb', default=True, description='Build with Intel TBB')
+ variant('tbb', default=True, description='Build with Intel TBB')
+ variant('fpic', default=True, description='Build position independent code (required to link with shared libraries)')
depends_on('blas')
depends_on('lapack')
- depends_on('metis@5.1.0', when='@4.5.1')
- # FIXME:
- # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng flags
- # does not seem to be used, which leads to linking errors on Linux.
- # Try re-enabling in future versions.
- # depends_on('tbb', when='+tbb')
+ depends_on('metis@5.1.0', when='@4.5.1:')
+ # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng
+ # flags does not seem to be used, which leads to linking errors on Linux.
+ depends_on('tbb', when='@4.5.3:+tbb')
+
+ patch('tbb_453.patch', when='@4.5.3')
def install(self, spec, prefix):
- # The build system of SuiteSparse is quite old-fashioned
- # It's basically a plain Makefile which include an header (SuiteSparse_config/SuiteSparse_config.mk)
- # with a lot of convoluted logic in it.
- # Any kind of customization will need to go through filtering of that file
+ # The build system of SuiteSparse is quite old-fashioned.
+ # It's basically a plain Makefile which include an header
+ # (SuiteSparse_config/SuiteSparse_config.mk)with a lot of convoluted
+ # logic in it. Any kind of customization will need to go through
+ # filtering of that file
make_args = ['INSTALL=%s' % prefix]
# inject Spack compiler wrappers
make_args.extend([
- 'AUTOCC=no',
- 'CC=cc',
- 'CXX=c++',
- 'F77=f77',
+ 'AUTOCC=no',
+ 'CC=cc',
+ 'CXX=c++',
+ 'F77=f77',
+ 'CUDA_ROOT =',
+ 'GPU_BLAS_PATH =',
+ 'GPU_CONFIG =',
+ 'CUDA_PATH =',
+ 'CUDART_LIB =',
+ 'CUBLAS_LIB =',
+ 'CUDA_INC_PATH =',
+ 'NV20 =',
+ 'NV30 =',
+ 'NV35 =',
+ 'NVCC = echo',
+ 'NVCCFLAGS =',
])
+ if '+fpic' in spec:
+ make_args.extend(['CFLAGS=-fPIC', 'FFLAGS=-fPIC'])
# use Spack's metis in CHOLMOD/Partition module,
# otherwise internal Metis will be compiled
make_args.extend([
- 'MY_METIS_LIB=-L%s -lmetis' % spec['metis'].prefix.lib,
- 'MY_METIS_INC=%s' % spec['metis'].prefix.include,
+ 'MY_METIS_LIB=-L%s -lmetis' % spec['metis'].prefix.lib,
+ 'MY_METIS_INC=%s' % spec['metis'].prefix.include,
])
# Intel TBB in SuiteSparseQR
- if '+tbb' in spec:
+ if 'tbb' in spec:
make_args.extend([
'SPQR_CONFIG=-DHAVE_TBB',
'TBB=-L%s -ltbb' % spec['tbb'].prefix.lib,
])
- # BLAS arguments require path to libraries
- # FIXME : (blas / lapack always provide libblas and liblapack as aliases)
+ # Make sure Spack's Blas/Lapack is used. Otherwise System's
+ # Blas/Lapack might be picked up.
+ blas = spec['blas'].blas_libs.ld_flags
+ lapack = spec['lapack'].lapack_libs.ld_flags
+ if '@4.5.1' in spec:
+ # adding -lstdc++ is clearly an ugly way to do this, but it follows
+ # with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk
+ blas += ' -lstdc++'
+
make_args.extend([
- 'BLAS=-lblas',
- 'LAPACK=-llapack'
+ 'BLAS=%s' % blas,
+ 'LAPACK=%s' % lapack
])
make('install', *make_args)
diff --git a/var/spack/repos/builtin/packages/suite-sparse/tbb_453.patch b/var/spack/repos/builtin/packages/suite-sparse/tbb_453.patch
new file mode 100644
index 0000000000..70241ed017
--- /dev/null
+++ b/var/spack/repos/builtin/packages/suite-sparse/tbb_453.patch
@@ -0,0 +1,13 @@
+diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile
+index eaade58..d0de852 100644
+--- a/SPQR/Lib/Makefile
++++ b/SPQR/Lib/Makefile
+@@ -13,7 +13,7 @@ ccode: all
+ include ../../SuiteSparse_config/SuiteSparse_config.mk
+
+ # SPQR depends on CHOLMOD, AMD, COLAMD, LAPACK, the BLAS and SuiteSparse_config
+-LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS)
++LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(TBB) $(LAPACK) $(BLAS)
+
+ # compile and install in SuiteSparse/lib
+ library:
diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py
index ba2340f74c..6ee247b7ea 100644
--- a/var/spack/repos/builtin/packages/sundials/package.py
+++ b/var/spack/repos/builtin/packages/sundials/package.py
@@ -23,17 +23,156 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import os
+
class Sundials(Package):
- """SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)"""
+ """SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation
+ Solvers)"""
+
homepage = "http://computation.llnl.gov/casc/sundials/"
- url = "http://computation.llnl.gov/casc/sundials/download/code/sundials-2.5.0.tar.gz"
+ url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz"
+
+ version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95')
- version('2.5.0', 'aba8b56eec600de3109cfb967aa3ba0f')
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('lapack', default=True,
+ description='Build with external BLAS/LAPACK libraries')
+ variant('klu', default=False,
+ description='Build with SuiteSparse KLU libraries')
+ variant('superlu', default=False,
+ description='Build with SuperLU_MT libraries')
+ variant('openmp', default=False, description='Enable OpenMP support')
+ variant('pthread', default=True,
+ description='Enable POSIX threads support')
- depends_on("mpi")
+ depends_on('cmake', type='build')
+ depends_on('mpi', when='+mpi')
+ depends_on('blas', when='+lapack')
+ depends_on('lapack', when='+lapack')
+ depends_on('suite-sparse', when='+klu')
+ depends_on('superlu-mt+openmp', when='+superlu+openmp')
+ depends_on('superlu-mt+pthread', when='+superlu+pthread')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ cmake_args = std_cmake_args[:]
+ cmake_args.extend([
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DCMAKE_C_FLAGS=-fPIC',
+ '-DCMAKE_Fortran_FLAGS=-fPIC',
+ '-DEXAMPLES_ENABLE=ON',
+ '-DEXAMPLES_INSTALL=ON',
+ '-DFCMIX_ENABLE=ON'
+ ])
+
+ # MPI support
+ if '+mpi' in spec:
+ cmake_args.extend([
+ '-DMPI_ENABLE=ON',
+ '-DMPI_MPICC={0}'.format(spec['mpi'].mpicc),
+ '-DMPI_MPIF77={0}'.format(spec['mpi'].mpif77)
+ ])
+ else:
+ cmake_args.append('-DMPI_ENABLE=OFF')
+
+ # Building with LAPACK and BLAS
+ if '+lapack' in spec:
+ cmake_args.extend([
+ '-DLAPACK_ENABLE=ON',
+ '-DLAPACK_LIBRARIES={0}'.format(
+ (spec['lapack'].lapack_libs +
+ spec['blas'].blas_libs).joined(';')
+ )
+ ])
+ else:
+ cmake_args.append('-DLAPACK_ENABLE=OFF')
+
+ # Building with KLU
+ if '+klu' in spec:
+ cmake_args.extend([
+ '-DKLU_ENABLE=ON',
+ '-DKLU_INCLUDE_DIR={0}'.format(
+ spec['suite-sparse'].prefix.include),
+ '-DKLU_LIBRARY_DIR={0}'.format(
+ spec['suite-sparse'].prefix.lib)
+ ])
+ else:
+ cmake_args.append('-DKLU_ENABLE=OFF')
+
+ # Building with SuperLU_MT
+ if '+superlu' in spec:
+ cmake_args.extend([
+ '-DSUPERLUMT_ENABLE=ON',
+ '-DSUPERLUMT_INCLUDE_DIR={0}'.format(
+ spec['superlu-mt'].prefix.include),
+ '-DSUPERLUMT_LIBRARY_DIR={0}'.format(
+ spec['superlu-mt'].prefix.lib)
+ ])
+ if '+openmp' in spec:
+ cmake_args.append('-DSUPERLUMT_THREAD_TYPE=OpenMP')
+ elif '+pthread' in spec:
+ cmake_args.append('-DSUPERLUMT_THREAD_TYPE=Pthread')
+ else:
+ msg = 'You must choose either +openmp or +pthread when '
+ msg += 'building with SuperLU_MT'
+ raise RuntimeError(msg)
+ else:
+ cmake_args.append('-DSUPERLUMT_ENABLE=OFF')
+
+ # OpenMP support
+ if '+openmp' in spec:
+ cmake_args.append('-DOPENMP_ENABLE=ON')
+ else:
+ cmake_args.append('-DOPENMP_ENABLE=OFF')
+
+ # POSIX threads support
+ if '+pthread' in spec:
+ cmake_args.append('-DPTHREAD_ENABLE=ON')
+ else:
+ cmake_args.append('-DPTHREAD_ENABLE=OFF')
+
+ with working_dir('build', create=True):
+ cmake('..', *cmake_args)
+
+ make()
+ make('install')
+
+ install('LICENSE', prefix)
+
+ self.filter_compilers()
+
+ def filter_compilers(self):
+ """Run after install to tell the Makefiles to use
+ the compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CPP, and F77 set to
+ Spack's generic cc and f77. We want them to be bound to
+ whatever compiler they were built with."""
+
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
+ dirname = os.path.join(self.prefix, 'examples')
+
+ cc_files = [
+ 'arkode/C_serial/Makefile', 'arkode/C_parallel/Makefile',
+ 'cvode/serial/Makefile', 'cvode/parallel/Makefile',
+ 'cvodes/serial/Makefile', 'cvodes/parallel/Makefile',
+ 'ida/serial/Makefile', 'ida/parallel/Makefile',
+ 'idas/serial/Makefile', 'idas/parallel/Makefile',
+ 'kinsol/serial/Makefile', 'kinsol/parallel/Makefile',
+ 'nvector/serial/Makefile', 'nvector/parallel/Makefile',
+ 'nvector/pthreads/Makefile'
+ ]
+
+ f77_files = [
+ 'arkode/F77_serial/Makefile', 'cvode/fcmix_serial/Makefile',
+ 'ida/fcmix_serial/Makefile', 'ida/fcmix_pthreads/Makefile',
+ 'kinsol/fcmix_serial/Makefile'
+ ]
+
+ for filename in cc_files:
+ filter_file(os.environ['CC'], self.compiler.cc,
+ os.path.join(dirname, filename), **kwargs)
+
+ for filename in f77_files:
+ filter_file(os.environ['F77'], self.compiler.f77,
+ os.path.join(dirname, filename), **kwargs)
diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py
index 6c06b5497c..f076358e90 100644
--- a/var/spack/repos/builtin/packages/superlu-dist/package.py
+++ b/var/spack/repos/builtin/packages/superlu-dist/package.py
@@ -24,54 +24,67 @@
##############################################################################
from spack import *
import glob
+import os
+
class SuperluDist(Package):
- """A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines."""
+ """A general purpose library for the direct solution of large, sparse,
+ nonsymmetric systems of linear equations on high performance machines."""
homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
- url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz"
+ url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz"
+ version('develop', git='https://github.com/xiaoyeli/superlu_dist', tag='master')
+ version('5.1.1', '12638c631733a27dcbd87110e9f9cb1e')
+ version('5.1.0', '6bb86e630bd4bd8650243aed8fd92eb9')
version('5.0.0', '2b53baf1b0ddbd9fcf724992577f0670')
- # default to version 4.3 since petsc and trilinos are not tested with 5.0.
- version('4.3', 'ee66c84e37b4f7cc557771ccc3dc43ae', preferred=True)
+ version('4.3', 'ee66c84e37b4f7cc557771ccc3dc43ae')
version('4.2', 'ae9fafae161f775fbac6eba11e530a65')
version('4.1', '4edee38cc29f687bd0c8eb361096a455')
version('4.0', 'c0b98b611df227ae050bc1635c6940e0')
+ version('3.3', 'f4805659157d93a962500902c219046b')
+
+ variant('int64', default=False,
+ description="Use 64bit integers")
- depends_on ('mpi')
- depends_on ('blas')
- depends_on ('lapack')
- depends_on ('parmetis')
- depends_on ('metis@5:')
+ depends_on('mpi')
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('parmetis')
+ depends_on('metis@5:')
def install(self, spec, prefix):
+ lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs
makefile_inc = []
makefile_inc.extend([
'PLAT = _mac_x',
- 'DSuperLUroot = %s' % self.stage.source_path, #self.stage.path, prefix
+ 'DSuperLUroot = %s' % self.stage.source_path,
'DSUPERLULIB = $(DSuperLUroot)/lib/libsuperlu_dist.a',
'BLASDEF = -DUSE_VENDOR_BLAS',
- 'BLASLIB = -L%s -llapack %s -lblas' % (spec['lapack'].prefix.lib, spec['blas'].prefix.lib), # FIXME: avoid hardcoding blas/lapack lib names
+ 'BLASLIB = %s' % lapack_blas.ld_flags,
'METISLIB = -L%s -lmetis' % spec['metis'].prefix.lib,
'PARMETISLIB = -L%s -lparmetis' % spec['parmetis'].prefix.lib,
'FLIBS =',
- 'LIBS = $(DSUPERLULIB) $(BLASLIB) $(PARMETISLIB) $(METISLIB)',
+ 'LIBS = $(DSUPERLULIB) $(BLASLIB) $(PARMETISLIB) $(METISLIB)', # noqa
'ARCH = ar',
'ARCHFLAGS = cr',
'RANLIB = true',
- 'CC = mpicc', # FIXME avoid hardcoding MPI compiler names
- 'CFLAGS = -fPIC -std=c99 -O2 -I%s -I%s' %(spec['parmetis'].prefix.include, spec['metis'].prefix.include),
+ 'CC = {0}'.format(self.spec['mpi'].mpicc),
+ 'CFLAGS = -fPIC -std=c99 -O2 -I%s -I%s %s' % (
+ spec['parmetis'].prefix.include,
+ spec['metis'].prefix.include,
+ '-D_LONGINT' if '+int64' in spec else ''),
'NOOPTS = -fPIC -std=c99',
- 'FORTRAN = mpif77',
+ 'FORTRAN = {0}'.format(self.spec['mpi'].mpif77),
'F90FLAGS = -O2',
- 'LOADER = mpif77',
+ 'LOADER = {0}'.format(self.spec['mpi'].mpif77),
'LOADOPTS =',
'CDEFS = -DAdd_'
- ])
+ ])
- #with working_dir('src'):
with open('make.inc', 'w') as fh:
fh.write('\n'.join(makefile_inc))
+ mkdirp(os.path.join(self.stage.source_path, 'lib'))
make("lib", parallel=False)
# FIXME:
@@ -83,9 +96,10 @@ class SuperluDist(Package):
mkdirp(headers_location)
mkdirp(prefix.lib)
- headers = glob.glob(join_path(self.stage.source_path, 'SRC','*.h'))
+ headers = glob.glob(join_path(self.stage.source_path, 'SRC', '*.h'))
for h in headers:
- install(h,headers_location)
+ install(h, headers_location)
- superludist_lib = join_path(self.stage.source_path, 'lib/libsuperlu_dist.a')
- install(superludist_lib,self.prefix.lib)
+ superludist_lib = join_path(self.stage.source_path,
+ 'lib/libsuperlu_dist.a')
+ install(superludist_lib, self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/superlu-mt/package.py b/var/spack/repos/builtin/packages/superlu-mt/package.py
new file mode 100644
index 0000000000..ea94c2d4c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/superlu-mt/package.py
@@ -0,0 +1,136 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+
+
+class SuperluMt(Package):
+ """SuperLU is a general purpose library for the direct solution of large,
+ sparse, nonsymmetric systems of linear equations on high performance
+ machines. SuperLU_MT is designed for shared memory parallel machines."""
+
+ homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt"
+ url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_mt_3.1.tar.gz"
+
+ version('3.1', '06ac62f1b4b7d17123fffa0d0c315e91')
+
+ variant('blas', default=True,
+ description='Build with external BLAS library')
+
+ # Must choose one or the other
+ variant('openmp', default=False, description='Build with OpenMP support')
+ variant('pthread', default=True,
+ description='Build with POSIX threads support')
+
+ # NOTE: must link with a single-threaded BLAS library
+ depends_on('blas', when='+blas')
+
+ # Cannot be built in parallel
+ parallel = False
+
+ def configure(self, spec):
+ # Validate chosen variants
+ if '+openmp' in spec and '+pthread' in spec:
+ msg = 'You cannot choose both +openmp and +pthread'
+ raise RuntimeError(msg)
+ if '~openmp' in spec and '~pthread' in spec:
+ msg = 'You must choose either +openmp or +pthread'
+ raise RuntimeError(msg)
+
+ # List of configuration options
+ config = []
+
+ # The machine (platform) identifier to append to the library names
+ if '+openmp' in spec:
+ # OpenMP
+ config.extend([
+ 'PLAT = _OPENMP',
+ 'TMGLIB = libtmglib.a',
+ 'MPLIB = {0}'.format(self.compiler.openmp_flag),
+ 'CFLAGS = {0}'.format(self.compiler.openmp_flag),
+ 'FFLAGS = {0}'.format(self.compiler.openmp_flag)
+ ])
+ elif '+pthread' in spec:
+ # POSIX threads
+ config.extend([
+ 'PLAT = _PTHREAD',
+ 'TMGLIB = libtmglib$(PLAT).a',
+ 'MPLIB = -lpthread'
+ ])
+
+ # The BLAS library
+ # NOTE: must link with a single-threaded BLAS library
+ if '+blas' in spec:
+ config.extend([
+ 'BLASDEF = -DUSE_VENDOR_BLAS',
+ 'BLASLIB = {0}'.format(spec['blas'].blas_libs.ld_flags)
+ ])
+ else:
+ config.append('BLASLIB = ../lib/libblas$(PLAT).a')
+
+ # Generic options
+ config.extend([
+ # The name of the libraries to be created/linked to
+ 'SUPERLULIB = libsuperlu_mt$(PLAT).a',
+ 'MATHLIB = -lm',
+ # The archiver and the flag(s) to use when building archives
+ 'ARCH = ar',
+ 'ARCHFLAGS = cr',
+ 'RANLIB = {0}'.format('ranlib' if which('ranlib') else 'echo'),
+ # Definitions used by CPP
+ 'PREDEFS = -D_$(PLAT)',
+ # Compilers and flags
+ 'CC = {0}'.format(os.environ['CC']),
+ 'CFLAGS += $(PREDEFS) -D_LONGINT',
+ 'NOOPTS = -O0',
+ 'FORTRAN = {0}'.format(os.environ['FC']),
+ 'LOADER = {0}'.format(os.environ['CC']),
+ # C preprocessor defs for compilation
+ 'CDEFS = -DAdd_'
+ ])
+
+ # Write configuration options to include file
+ with open('make.inc', 'w') as inc:
+ for option in config:
+ inc.write('{0}\n'.format(option))
+
+ def install(self, spec, prefix):
+ # Set up make include file manually
+ self.configure(spec)
+
+ # BLAS needs to be compiled separately if using internal BLAS library
+ if '+blas' not in spec:
+ make('blaslib')
+
+ make()
+
+ # Install manually
+ install_tree('lib', prefix.lib)
+
+ headers = glob.glob(join_path('SRC', '*.h'))
+ mkdir(prefix.include)
+ for h in headers:
+ install(h, prefix.include)
diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py
new file mode 100644
index 0000000000..829949e504
--- /dev/null
+++ b/var/spack/repos/builtin/packages/superlu/package.py
@@ -0,0 +1,120 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+
+
+class Superlu(Package):
+ """SuperLU is a general purpose library for the direct solution of large,
+ sparse, nonsymmetric systems of linear equations on high performance
+ machines. SuperLU is designed for sequential machines."""
+
+ homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu"
+ url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz"
+
+ version('5.2.1', '3a1a9bff20cb06b7d97c46d337504447')
+ version('4.3', 'b72c6309f25e9660133007b82621ba7c')
+
+ variant('fpic', default=False,
+ description='Build with position independent code')
+
+ depends_on('cmake', when='@5.2.1:', type='build')
+ depends_on('blas')
+
+ # CMake installation method
+ def install(self, spec, prefix):
+ cmake_args = [
+ '-Denable_blaslib=OFF',
+ '-DBLAS_blas_LIBRARY={0}'.format(spec['blas'].blas_libs.joined())
+ ]
+
+ if '+fpic' in spec:
+ cmake_args.extend([
+ '-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
+ ])
+
+ cmake_args.extend(std_cmake_args)
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *cmake_args)
+ make()
+ make('install')
+
+ # Pre-cmake installation method
+ @when('@4.3')
+ def install(self, spec, prefix):
+ config = []
+
+ # Define make.inc file
+ config.extend([
+ 'PLAT = _x86_64',
+ 'SuperLUroot = %s' % self.stage.source_path,
+ # 'SUPERLULIB = $(SuperLUroot)/lib/libsuperlu$(PLAT).a',
+ 'SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_{0}.a' \
+ .format(self.spec.version),
+ 'BLASDEF = -DUSE_VENDOR_BLAS',
+ 'BLASLIB = {0}'.format(spec['blas'].blas_libs.ld_flags),
+ # or BLASLIB = -L/usr/lib64 -lblas
+ 'TMGLIB = libtmglib.a',
+ 'LIBS = $(SUPERLULIB) $(BLASLIB)',
+ 'ARCH = ar',
+ 'ARCHFLAGS = cr',
+ 'RANLIB = {0}'.format('ranlib' if which('ranlib') else 'echo'),
+ 'CC = {0}'.format(os.environ['CC']),
+ 'FORTRAN = {0}'.format(os.environ['FC']),
+ 'LOADER = {0}'.format(os.environ['CC']),
+ 'CDEFS = -DAdd_'
+ ])
+
+ if '+fpic' in spec:
+ config.extend([
+ # Use these lines instead when pic_flag capability arrives
+ 'CFLAGS = -O3 {0}'.format(self.compiler.pic_flag),
+ 'NOOPTS = {0}'.format(self.compiler.pic_flag),
+ 'FFLAGS = -O2 {0}'.format(self.compiler.pic_flag),
+ 'LOADOPTS = {0}'.format(self.compiler.pic_flag)
+ ])
+ else:
+ config.extend([
+ 'CFLAGS = -O3',
+ 'NOOPTS = ',
+ 'FFLAGS = -O2',
+ 'LOADOPTS = '
+ ])
+
+ # Write configuration options to make.inc file
+ with open('make.inc', 'w') as inc:
+ for option in config:
+ inc.write('{0}\n'.format(option))
+
+ make(parallel=False)
+
+ # Install manually
+ install_tree('lib', prefix.lib)
+ headers = glob.glob(join_path('SRC', '*.h'))
+ mkdir(prefix.include)
+ for h in headers:
+ install(h, prefix.include)
diff --git a/var/spack/repos/builtin/packages/swiftsim/package.py b/var/spack/repos/builtin/packages/swiftsim/package.py
new file mode 100644
index 0000000000..1c424b5ca0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/swiftsim/package.py
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import llnl.util.tty as tty
+
+
+class Swiftsim(AutotoolsPackage):
+ """SPH With Inter-dependent Fine-grained Tasking (SWIFT) provides
+ astrophysicists with a state of the art framework to perform
+ particle based simulations.
+ """
+
+ homepage = 'http://icc.dur.ac.uk/swift/'
+ url = 'http://gitlab.cosma.dur.ac.uk/swift/swiftsim/repository/archive.tar.gz?ref=v0.3.0'
+
+ version('0.3.0', git='https://gitlab.cosma.dur.ac.uk/swift/swiftsim.git',
+ commit='254cc1b563b2f88ddcf437b1f71da123bb9db733')
+
+ variant('mpi', default=True,
+ description='Enable distributed memory parallelism')
+
+ # Build dependencies
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ # link-time / run-time dependencies
+ depends_on('mpi', when='+mpi')
+ depends_on('metis')
+ depends_on('hdf5~mpi', when='~mpi')
+ depends_on('hdf5+mpi', when='+mpi')
+
+ def setup_environment(self, spack_env, run_env):
+ # Needed to be able to download from the Durham gitlab repository
+ tty.warn('Setting "GIT_SSL_NO_VERIFY=1"')
+ tty.warn('This is needed to clone SWIFT repository')
+ spack_env.set('GIT_SSL_NO_VERIFY', 1)
+
+ def autoreconf(self, spec, prefix):
+ libtoolize()
+ aclocal()
+ autoconf()
+ autogen = Executable('./autogen.sh')
+ autogen()
+
+ def configure_args(self):
+ return ['--prefix=%s' % self.prefix,
+ '--enable-mpi' if '+mpi' in self.spec else '--disable-mpi',
+ '--with-metis={0}'.format(self.spec['metis'].prefix),
+ '--enable-optimization']
diff --git a/var/spack/repos/builtin/packages/swig/package.py b/var/spack/repos/builtin/packages/swig/package.py
index f552621821..b43246dcee 100644
--- a/var/spack/repos/builtin/packages/swig/package.py
+++ b/var/spack/repos/builtin/packages/swig/package.py
@@ -22,9 +22,9 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
+
class Swig(Package):
"""SWIG is an interface compiler that connects programs written in
C and C++ with scripting languages such as Perl, Python, Ruby,
@@ -38,6 +38,7 @@ class Swig(Package):
homepage = "http://www.swig.org"
url = "http://prdownloads.sourceforge.net/swig/swig-3.0.8.tar.gz"
+ version('3.0.10', 'bb4ab8047159469add7d00910e203124')
version('3.0.8', 'c96a1d5ecb13d38604d7e92148c73c97')
version('3.0.2', '62f9b0d010cef36a13a010dc530d0d41')
version('2.0.12', 'c3fb0b2d710cc82ed0154b91e43085a4')
diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py
new file mode 100644
index 0000000000..f3fc13474c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/symengine/package.py
@@ -0,0 +1,113 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Symengine(Package):
+ """SymEngine is a fast symbolic manipulation library, written in C++."""
+
+ homepage = "https://github.com/symengine/symengine"
+ url = "https://github.com/symengine/symengine/archive/v0.2.0.tar.gz"
+
+ version('0.2.0', '45401561add36a13c1f0b0c5f8d7422d')
+ version('0.1.0', '41ad7daed61fc5a77c285eb6c7303425')
+ version('develop', git='https://github.com/symengine/symengine.git')
+
+ variant('flint', default=True,
+ description='Compile with Flint integer library')
+ variant('mpc', default=True,
+ description='Compile with MPC library')
+ variant('mpfr', default=True,
+ description='Compile with MPFR library')
+ variant('piranha', default=False,
+ description='Compile with Piranha integer library')
+ variant('thread_safe', default=True,
+ description='Enable thread safety option')
+ variant('openmp', default=False,
+ description='Enable OpenMP support')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+
+ # Build dependencies
+ depends_on('cmake', type='build')
+
+ # Other dependencies
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpc', when='+mpc') # Could also be built against mpir
+ depends_on('mpfr', when='+mpfr') # Could also be built against mpir
+ depends_on('flint', when='+flint') # Could also be built against mpir
+ depends_on('piranha', when='+piranha~flint') # Could also be built against mpir # NOQA
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ # CMAKE_BUILD_TYPE should be Debug | Release
+ for word in options[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ options.remove(word)
+
+ # See https://github.com/symengine/symengine/blob/master/README.md
+ # for build options
+ options.extend([
+ '-DCMAKE_BUILD_TYPE=Release',
+ '-DWITH_SYMENGINE_RCP:BOOL=ON',
+ '-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % (
+ 'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'),
+ '-DBUILD_TESTS:BOOL=ON',
+ '-DBUILD_BENCHMARKS:BOOL=ON',
+ '-DWITH_MPC:BOOL=%s' % (
+ 'ON' if '+mpc' in spec else 'OFF'),
+ '-DWITH_MPFR:BOOL=%s' % (
+ 'ON' if '+mpfr' in spec else 'OFF'),
+ '-DINTEGER_CLASS:STRING=gmp',
+ '-DWITH_OPENMP:BOOL=%s' % (
+ 'ON' if '+openmp' in spec else 'OFF'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF'),
+ ])
+
+ if '+flint' in spec:
+ options.extend([
+ '-DWITH_FLINT:BOOL=ON',
+ '-DINTEGER_CLASS:STRING=flint'
+ ])
+ elif '+piranha' in spec:
+ options.extend([
+ '-DWITH_PIRANHA:BOOL=ON',
+ '-DINTEGER_CLASS:STRING=piranha'
+ ])
+ else:
+ options.extend([
+ '-DINTEGER_CLASS:STRING=gmp'
+ ])
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+
+ make()
+ make('install')
+ if self.run_tests:
+ ctest()
diff --git a/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch b/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch
new file mode 100644
index 0000000000..503a61ff65
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch
@@ -0,0 +1,10 @@
+--- old/sympol/raycomputationlrs.cpp
++++ new/sympol/raycomputationlrs.cpp
+@@ -66,7 +66,6 @@
+ return true;
+ }
+
+- lrs_mp_close();
+
+ if (RayComputationLRS::ms_fIn != NULL) {
+ if (std::fclose(RayComputationLRS::ms_fIn)) {
diff --git a/var/spack/repos/builtin/packages/sympol/package.py b/var/spack/repos/builtin/packages/sympol/package.py
new file mode 100644
index 0000000000..7ce4995f03
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sympol/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Sympol(Package):
+ """SymPol is a C++ tool to work with symmetric polyhedra"""
+ homepage = "http://www.math.uni-rostock.de/~rehn/software/sympol.html"
+ url = "http://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz"
+
+ version('0.1.8', '7cba1997f8532c754cb7259bf70caacb')
+
+ depends_on("cmake", type='build')
+
+ depends_on("bliss")
+ depends_on("boost")
+ depends_on("gmp")
+ depends_on("lrslib")
+
+ patch("lrs_mp_close.patch")
+
+ def install(self, spec, prefix):
+ cmake(".", *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/szip/package.py b/var/spack/repos/builtin/packages/szip/package.py
index fd3a2a209d..91934f7d03 100644
--- a/var/spack/repos/builtin/packages/szip/package.py
+++ b/var/spack/repos/builtin/packages/szip/package.py
@@ -24,22 +24,22 @@
##############################################################################
from spack import *
-class Szip(Package):
- """Szip is an implementation of the extended-Rice lossless compression algorithm.
- It provides lossless compression of scientific data, and is provided with HDF
- software products."""
+
+class Szip(AutotoolsPackage):
+ """Szip is an implementation of the extended-Rice lossless
+ compression algorithm.
+
+ It provides lossless compression of scientific data, and is
+ provided with HDF software products.
+ """
homepage = "https://www.hdfgroup.org/doc_resource/SZIP/"
- url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz"
+ url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz"
version('2.1', '902f831bcefb69c6b635374424acbead')
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix,
- '--enable-production',
- '--enable-shared',
- '--enable-static',
- '--enable-encoding')
-
- make()
- make("install")
+ def configure_args(self):
+ return ['--enable-production',
+ '--enable-shared',
+ '--enable-static',
+ '--enable-encoding']
diff --git a/var/spack/repos/builtin/packages/tar/gnutar-configure-xattrs.patch b/var/spack/repos/builtin/packages/tar/gnutar-configure-xattrs.patch
new file mode 100644
index 0000000000..e5c183b720
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tar/gnutar-configure-xattrs.patch
@@ -0,0 +1,482 @@
+diff --git a/Makefile.in b/Makefile.in
+index f9f1d1d..b403e46 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+@@ -1583,9 +1583,10 @@ distcheck: dist
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
++ && ../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
++ --srcdir=.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+diff --git a/aclocal.m4 b/aclocal.m4
+index 0e09589..804c0b3 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -1,4 +1,4 @@
+-# generated automatically by aclocal 1.14 -*- Autoconf -*-
++# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+ # Copyright (C) 1996-2013 Free Software Foundation, Inc.
+
+@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
+ [am__api_version='1.14'
+ dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+ dnl require some minimum version. Point them to the right macro.
+-m4_if([$1], [1.14], [],
++m4_if([$1], [1.14.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+ ])
+
+@@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
+ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+ # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+-[AM_AUTOMAKE_VERSION([1.14])dnl
++[AM_AUTOMAKE_VERSION([1.14.1])dnl
+ m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+diff --git a/config.h.in b/config.h.in
+index 6646ea5..8571ef4 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -617,7 +617,7 @@
+ */
+ #undef HAVE_ALLOCA_H
+
+-/* define to 1 if we have <attr/xattr.h> header */
++/* Define to 1 if you have the <attr/xattr.h> header file. */
+ #undef HAVE_ATTR_XATTR_H
+
+ /* Define to 1 if you have the <bp-sym.h> header file. */
+@@ -924,21 +924,12 @@
+ /* Define to 1 if you have the <features.h> header file. */
+ #undef HAVE_FEATURES_H
+
+-/* Define to 1 if you have the `fgetxattr' function. */
+-#undef HAVE_FGETXATTR
+-
+-/* Define to 1 if you have the `flistxattr' function. */
+-#undef HAVE_FLISTXATTR
+-
+ /* Define to 1 if you have the `flockfile' function. */
+ #undef HAVE_FLOCKFILE
+
+ /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+ #undef HAVE_FSEEKO
+
+-/* Define to 1 if you have the `fsetxattr' function. */
+-#undef HAVE_FSETXATTR
+-
+ /* Define to 1 if you have the `fstatat' function. */
+ #undef HAVE_FSTATAT
+
+@@ -990,9 +981,6 @@
+ /* Define to 1 if you have the `gettimeofday' function. */
+ #undef HAVE_GETTIMEOFDAY
+
+-/* Define to 1 if you have the `getxattr' function. */
+-#undef HAVE_GETXATTR
+-
+ /* Define to 1 if you have the `grantpt' function. */
+ #undef HAVE_GRANTPT
+
+@@ -1045,12 +1033,6 @@
+ /* Define to 1 if you have the `lchown' function. */
+ #undef HAVE_LCHOWN
+
+-/* Define to 1 if you have the `lgetxattr' function. */
+-#undef HAVE_LGETXATTR
+-
+-/* Define to 1 if you have the `attr' library (-lattr). */
+-#undef HAVE_LIBATTR
+-
+ /* Define to 1 if you have the <libgen.h> header file. */
+ #undef HAVE_LIBGEN_H
+
+@@ -1069,12 +1051,6 @@
+ /* Define to 1 if you have the <linux/fd.h> header file. */
+ #undef HAVE_LINUX_FD_H
+
+-/* Define to 1 if you have the `listxattr' function. */
+-#undef HAVE_LISTXATTR
+-
+-/* Define to 1 if you have the `llistxattr' function. */
+-#undef HAVE_LLISTXATTR
+-
+ /* Define to 1 if you have the <locale.h> header file. */
+ #undef HAVE_LOCALE_H
+
+@@ -1087,9 +1063,6 @@
+ /* Define to 1 if the system has the type 'long long int'. */
+ #undef HAVE_LONG_LONG_INT
+
+-/* Define to 1 if you have the `lsetxattr' function. */
+-#undef HAVE_LSETXATTR
+-
+ /* Define to 1 if you have the `lstat' function. */
+ #undef HAVE_LSTAT
+
+@@ -1867,9 +1840,6 @@
+ /* Define to 1 if you have the `setlocale' function. */
+ #undef HAVE_SETLOCALE
+
+-/* Define to 1 if you have the `setxattr' function. */
+-#undef HAVE_SETXATTR
+-
+ /* Define to 1 if you have the <sgtty.h> header file. */
+ #undef HAVE_SGTTY_H
+
+@@ -2074,7 +2044,7 @@
+ /* Define to 1 if you have the <sys/wait.h> header file. */
+ #undef HAVE_SYS_WAIT_H
+
+-/* define to 1 if we have <sys/xattr.h> header */
++/* Define to 1 if you have the <sys/xattr.h> header file. */
+ #undef HAVE_SYS_XATTR_H
+
+ /* Define if struct tm has the tm_gmtoff member. */
+diff --git a/configure b/configure
+index cfdd721..8cf6e91 100755
+--- a/configure
++++ b/configure
+@@ -663,8 +663,6 @@ RSH
+ LIBOBJS
+ TAR_COND_GRANTPT_FALSE
+ TAR_COND_GRANTPT_TRUE
+-TAR_LIB_ATTR_FALSE
+-TAR_LIB_ATTR_TRUE
+ TAR_COND_XATTR_H_FALSE
+ TAR_COND_XATTR_H_TRUE
+ GNULIB_TEST_WARN_CFLAGS
+@@ -34994,41 +34992,6 @@ else
+ TAR_COND_XATTR_H_FALSE=
+ fi
+
+- if false; then
+- TAR_LIB_ATTR_TRUE=
+- TAR_LIB_ATTR_FALSE='#'
+-else
+- TAR_LIB_ATTR_TRUE='#'
+- TAR_LIB_ATTR_FALSE=
+-fi
+-
+- if test "$ac_cv_header_sys_xattr_h" = yes; then
+- for ac_func in getxattr fgetxattr lgetxattr \
+- setxattr fsetxattr lsetxattr \
+- listxattr flistxattr llistxattr
+-do :
+- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+- cat >>confdefs.h <<_ACEOF
+-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-_ACEOF
+- # only when functions are present
+-
+-$as_echo "#define HAVE_SYS_XATTR_H 1" >>confdefs.h
+-
+- if test "$with_xattrs" != no; then
+-
+-$as_echo "#define HAVE_XATTRS /**/" >>confdefs.h
+-
+- fi
+-
+-fi
+-done
+-
+- fi
+-
+- # If <sys/xattr.h> is not found, then check for <attr/xattr.h>
+ if test "$ac_cv_header_sys_xattr_h" != yes; then
+ for ac_header in attr/xattr.h
+ do :
+@@ -35050,13 +35013,20 @@ else
+ TAR_COND_XATTR_H_FALSE=
+ fi
+
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgetxattr in -lattr" >&5
+-$as_echo_n "checking for fgetxattr in -lattr... " >&6; }
+-if ${ac_cv_lib_attr_fgetxattr+:} false; then :
++ fi
++
++ if test "$with_xattrs" != no; then
++ for i in getxattr fgetxattr lgetxattr \
++ setxattr fsetxattr lsetxattr \
++ listxattr flistxattr llistxattr
++ do
++ as_ac_Search=`$as_echo "ac_cv_search_$i" | $as_tr_sh`
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing $i" >&5
++$as_echo_n "checking for library containing $i... " >&6; }
++if eval \${$as_ac_Search+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lattr $LIBS"
++ ac_func_search_save_LIBS=$LIBS
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -35066,67 +35036,56 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char fgetxattr ();
++char $i ();
+ int
+ main ()
+ {
+-return fgetxattr ();
++return $i ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+- ac_cv_lib_attr_fgetxattr=yes
+-else
+- ac_cv_lib_attr_fgetxattr=no
++for ac_lib in '' attr; do
++ if test -z "$ac_lib"; then
++ ac_res="none required"
++ else
++ ac_res=-l$ac_lib
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ fi
++ if ac_fn_c_try_link "$LINENO"; then :
++ eval "$as_ac_Search=\$ac_res"
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+- conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_fgetxattr" >&5
+-$as_echo "$ac_cv_lib_attr_fgetxattr" >&6; }
+-if test "x$ac_cv_lib_attr_fgetxattr" = xyes; then :
+- cat >>confdefs.h <<_ACEOF
+-#define HAVE_LIBATTR 1
+-_ACEOF
+-
+- LIBS="-lattr $LIBS"
+-
++ conftest$ac_exeext
++ if eval \${$as_ac_Search+:} false; then :
++ break
+ fi
++done
++if eval \${$as_ac_Search+:} false; then :
+
+- if test "$ac_cv_lib_attr_fgetxattr" = yes; then
+- TAR_LIB_ATTR_TRUE=
+- TAR_LIB_ATTR_FALSE='#'
+ else
+- TAR_LIB_ATTR_TRUE='#'
+- TAR_LIB_ATTR_FALSE=
++ eval "$as_ac_Search=no"
++fi
++rm conftest.$ac_ext
++LIBS=$ac_func_search_save_LIBS
+ fi
++eval ac_res=\$$as_ac_Search
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++eval ac_res=\$$as_ac_Search
++if test "$ac_res" != no; then :
++ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+- if test "$ac_cv_header_attr_xattr_h" = yes; then
+- for ac_func in getxattr fgetxattr lgetxattr \
+- setxattr fsetxattr lsetxattr \
+- listxattr flistxattr llistxattr
+-do :
+- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+- cat >>confdefs.h <<_ACEOF
+-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-_ACEOF
+- # only when functions are present
++fi
+
+-$as_echo "#define HAVE_ATTR_XATTR_H 1" >>confdefs.h
++ eval found=\$ac_cv_search_$i
++ test "$found" = "no" && break
++ done
+
+- if test "$with_xattrs" != no; then
++ if test "$found" != no; then
+
+ $as_echo "#define HAVE_XATTRS /**/" >>confdefs.h
+
+- fi
+-
+-fi
+-done
+-
+ fi
+ fi
+
+@@ -38187,18 +38146,10 @@ if test -z "${TAR_COND_XATTR_H_TRUE}" && test -z "${TAR_COND_XATTR_H_FALSE}"; th
+ as_fn_error $? "conditional \"TAR_COND_XATTR_H\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+-if test -z "${TAR_LIB_ATTR_TRUE}" && test -z "${TAR_LIB_ATTR_FALSE}"; then
+- as_fn_error $? "conditional \"TAR_LIB_ATTR\" was never defined.
+-Usually this means the macro was only invoked conditionally." "$LINENO" 5
+-fi
+ if test -z "${TAR_COND_XATTR_H_TRUE}" && test -z "${TAR_COND_XATTR_H_FALSE}"; then
+ as_fn_error $? "conditional \"TAR_COND_XATTR_H\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+-if test -z "${TAR_LIB_ATTR_TRUE}" && test -z "${TAR_LIB_ATTR_FALSE}"; then
+- as_fn_error $? "conditional \"TAR_LIB_ATTR\" was never defined.
+-Usually this means the macro was only invoked conditionally." "$LINENO" 5
+-fi
+ if test -z "${TAR_COND_GRANTPT_TRUE}" && test -z "${TAR_COND_GRANTPT_FALSE}"; then
+ as_fn_error $? "conditional \"TAR_COND_GRANTPT\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+diff --git a/doc/Makefile.in b/doc/Makefile.in
+index ca44f1a..42a06b3 100644
+--- a/doc/Makefile.in
++++ b/doc/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/gnu/Makefile.in b/gnu/Makefile.in
+index 03eed58..d908a03 100644
+--- a/gnu/Makefile.in
++++ b/gnu/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+index 41a9aca..1254b8f 100644
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/rmt/Makefile.in b/rmt/Makefile.in
+index c3f2509..0f3dca4 100644
+--- a/rmt/Makefile.in
++++ b/rmt/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/scripts/Makefile.in b/scripts/Makefile.in
+index 57c0d0d..bf344ed 100644
+--- a/scripts/Makefile.in
++++ b/scripts/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 6f9a592..fc6fc87 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+@@ -99,7 +99,6 @@ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = tar$(EXEEXT)
+-@TAR_LIB_ATTR_TRUE@am__append_1 = -lattr
+ subdir = src
+ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS)
+@@ -254,7 +253,7 @@ am__DEPENDENCIES_2 = ../lib/libtar.a ../gnu/libgnu.a \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ tar_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
++ $(am__DEPENDENCIES_1)
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+ am__v_P_0 = false
+@@ -1225,8 +1224,7 @@ tar_SOURCES = \
+ AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
+ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
+ LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
+-tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) \
+- $(LIB_SELINUX) $(am__append_1)
++tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
+ all: all-am
+
+ .SUFFIXES:
+diff --git a/tests/Makefile.in b/tests/Makefile.in
+index 6807509..50d7689 100644
+--- a/tests/Makefile.in
++++ b/tests/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated by automake 1.14 from Makefile.am.
++# Makefile.in generated by automake 1.14.1 from Makefile.am.
+ # @configure_input@
+
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
+diff --git a/lib/xattr-at.c b/lib/xattr-at.c
+index 443ccae..009bde5 100644
+--- a/lib/xattr-at.c
++++ b/lib/xattr-at.c
+@@ -18,6 +18,11 @@
+
+ #include <config.h>
+
++/* Temporarily don't build. We are unable to build on (probably not only)
++ darwin due to lack of l*xattr callbacks (XATTR_NOFOLLOW is alternative) and
++ different function definitions. */
++#ifdef HAVE_XATTRS
++
+ #include "xattr-at.h"
+ #include "openat.h"
+
+@@ -108,3 +113,5 @@
+ #undef AT_FUNC_RESULT
+ #undef AT_FUNC_POST_FILE_PARAM_DECLS
+ #undef AT_FUNC_POST_FILE_ARGS
++
++#endif
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 82b2d46..42daaef 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -52,7 +52,3 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
+ LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
+
+ tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
+-
+-if TAR_LIB_ATTR
+-tar_LDADD += -lattr
+-endif
+--
+1.9.3 \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py
index c55b5165bf..7b6313827f 100644
--- a/var/spack/repos/builtin/packages/tar/package.py
+++ b/var/spack/repos/builtin/packages/tar/package.py
@@ -24,14 +24,17 @@
##############################################################################
from spack import *
-class Tar(Package):
- """GNU Tar provides the ability to create tar archives, as well as various other kinds of manipulation."""
+
+class Tar(AutotoolsPackage):
+ """GNU Tar provides the ability to create tar archives, as well as various
+ other kinds of manipulation."""
homepage = "https://www.gnu.org/software/tar/"
- url = "http://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz"
+ url = "https://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz"
+ version('1.29', 'cae466e6e58c7292355e7080248f244db3a4cf755f33f4fa25ca7f9a7ed09af0')
version('1.28', '6ea3dbea1f2b0409b234048e021a9fd7')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make('install')
+ # see http://lists.gnu.org/archive/html/bug-tar/2014-08/msg00001.html and
+ # https://github.com/Homebrew/homebrew-core/commit/aef9a1792de4648d0322b4b04d32287532f046bb
+ # TODO: when=sys.platform=='darwin' ?
+ patch('gnutar-configure-xattrs.patch', when='@1.28')
diff --git a/var/spack/repos/builtin/packages/task/package.py b/var/spack/repos/builtin/packages/task/package.py
index dc52c4f9f6..785023fd03 100644
--- a/var/spack/repos/builtin/packages/task/package.py
+++ b/var/spack/repos/builtin/packages/task/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Task(Package):
"""Feature-rich console based todo list manager"""
homepage = "http://www.taskwarrior.org"
@@ -31,6 +32,7 @@ class Task(Package):
version('2.4.4', '517450c4a23a5842df3e9905b38801b3')
+ depends_on('cmake', type='build')
depends_on("gnutls")
depends_on("libuuid")
# depends_on("gcc@4.8:")
diff --git a/var/spack/repos/builtin/packages/taskd/package.py b/var/spack/repos/builtin/packages/taskd/package.py
index 8a022b4fe9..bfe77aaa5c 100644
--- a/var/spack/repos/builtin/packages/taskd/package.py
+++ b/var/spack/repos/builtin/packages/taskd/package.py
@@ -24,14 +24,16 @@
##############################################################################
from spack import *
+
class Taskd(Package):
"""TaskWarrior task synchronization daemon"""
- # FIXME: add a proper url for your package's homepage here.
+
homepage = "http://www.taskwarrior.org"
url = "http://taskwarrior.org/download/taskd-1.1.0.tar.gz"
version('1.1.0', 'ac855828c16f199bdbc45fbc227388d0')
+ depends_on('cmake', type='build')
depends_on("libuuid")
depends_on("gnutls")
diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py
index 3b181f3fa4..991841f137 100644
--- a/var/spack/repos/builtin/packages/tau/package.py
+++ b/var/spack/repos/builtin/packages/tau/package.py
@@ -22,20 +22,18 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
-
import os
-import os.path
-
+import glob
from llnl.util.filesystem import join_path
+
class Tau(Package):
- """
- A portable profiling and tracing toolkit for performance
+ """A portable profiling and tracing toolkit for performance
analysis of parallel programs written in Fortran, C, C++, UPC,
Java, Python.
"""
+
homepage = "http://www.cs.uoregon.edu/research/tau"
url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.25.tar.gz"
@@ -45,15 +43,20 @@ class Tau(Package):
version('2.23.1', '6593b47ae1e7a838e632652f0426fe72')
# TODO : shmem variant missing
- variant('download', default=False, description='Downloads and builds various dependencies')
+ variant('download', default=False,
+ description='Downloads and builds various dependencies')
variant('scorep', default=False, description='Activates SCOREP support')
variant('openmp', default=True, description='Use OpenMP threads')
- variant('mpi', default=True, description='Specify use of TAU MPI wrapper library')
+ variant('mpi', default=True,
+ description='Specify use of TAU MPI wrapper library')
variant('phase', default=True, description='Generate phase based profiles')
- variant('comm', default=True, description=' Generate profiles with MPI communicator info')
+ variant('comm', default=True,
+ description=' Generate profiles with MPI communicator info')
- # TODO : Try to build direct OTF2 support? Some parts of the OTF support library in TAU are non-conformant,
- # TODO : and fail at compile-time. Further, SCOREP is compiled with OTF2 support.
+ # TODO : Try to build direct OTF2 support? Some parts of the OTF support
+ # TODO : library in TAU are non-conformant,
+ # TODO : and fail at compile-time. Further, SCOREP is compiled with OTF2
+ # support.
depends_on('pdt') # Required for TAU instrumentation
depends_on('scorep', when='+scorep')
depends_on('binutils', when='~download')
@@ -65,13 +68,17 @@ class Tau(Package):
##########
# Selecting a compiler with TAU configure is quite tricky:
- # 1 - compilers are mapped to a given set of strings (and spack cc, cxx, etc. wrappers are not among them)
+ # 1 - compilers are mapped to a given set of strings
+ # (and spack cc, cxx, etc. wrappers are not among them)
# 2 - absolute paths are not allowed
- # 3 - the usual environment variables seems not to be checked ('CC', 'CXX' and 'FC')
- # 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with system compiler silently
+ # 3 - the usual environment variables seems not to be checked
+ # ('CC', 'CXX' and 'FC')
+ # 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with
+ # system compiler silently
# (regardless of what %<compiler> is used in the spec)
#
- # In the following we give TAU what he expects and put compilers into PATH
+ # In the following we give TAU what he expects and put compilers into
+ # PATH
compiler_path = os.path.dirname(self.compiler.cc)
os.environ['PATH'] = ':'.join([compiler_path, os.environ['PATH']])
compiler_options = ['-c++=%s' % self.compiler.cxx_names[0],
@@ -80,7 +87,8 @@ class Tau(Package):
compiler_options.append('-fortran=%s' % self.compiler.fc_names[0])
##########
- # Construct the string of custom compiler flags and append it to compiler related options
+ # Construct the string of custom compiler flags and append it to
+ # compiler related options
useropt = ' '.join(useropt)
useropt = "-useropt=%s" % useropt
compiler_options.append(useropt)
@@ -92,8 +100,9 @@ class Tau(Package):
change_sed_delimiter('@', ';', 'utils/FixMakefile')
change_sed_delimiter('@', ';', 'utils/FixMakefile.sed.default')
- # TAU configure, despite the name , seems to be a manually written script (nothing related to autotools).
- # As such it has a few #peculiarities# that make this build quite hackish.
+ # TAU configure, despite the name , seems to be a manually
+ # written script (nothing related to autotools). As such it has
+ # a few #peculiarities# that make this build quite hackish.
options = ["-prefix=%s" % prefix,
"-iowrapper",
"-pdt=%s" % spec['pdt'].prefix]
@@ -137,3 +146,15 @@ class Tau(Package):
dest = join_path(self.prefix, d)
if os.path.isdir(src) and not os.path.exists(dest):
os.symlink(join_path(subdir, d), dest)
+
+ def setup_environment(self, spack_env, run_env):
+ pattern = join_path(self.prefix.lib, 'Makefile.*')
+ files = glob.glob(pattern)
+
+ # This function is called both at install time to set up
+ # the build environment and after install to generate the associated
+ # module file. In the former case there is no `self.prefix.lib`
+ # directory to inspect. The conditional below will set `TAU_MAKEFILE`
+ # in the latter case.
+ if files:
+ run_env.set('TAU_MAKEFILE', files[0])
diff --git a/var/spack/repos/builtin/packages/tbb/package.py b/var/spack/repos/builtin/packages/tbb/package.py
index 6c3ceb1e76..33dea6625b 100644
--- a/var/spack/repos/builtin/packages/tbb/package.py
+++ b/var/spack/repos/builtin/packages/tbb/package.py
@@ -23,9 +23,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
import glob
+
class Tbb(Package):
"""Widely used C++ template library for task parallelism.
Intel Threading Building Blocks (Intel TBB) lets you easily write parallel
@@ -35,35 +35,44 @@ class Tbb(Package):
homepage = "http://www.threadingbuildingblocks.org/"
# Only version-specific URL's work for TBB
- version('4.4.3', '80707e277f69d9b20eeebdd7a5f5331137868ce1', url='https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160128oss_src_0.tgz')
+ # can also use https://github.com/01org/tbb/releases/
+ version('2017.3', '2c451a5bcf6fc31487b98b4b29651c369874277c',
+ url='https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb2017_20161128oss_src.tgz')
+ version('4.4.4', 'd4cee5e4ca75cab5181834877738619c56afeb71',
+ url='https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160413oss_src.tgz')
+ version('4.4.3', '80707e277f69d9b20eeebdd7a5f5331137868ce1',
+ url='https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160128oss_src_0.tgz')
- def coerce_to_spack(self,tbb_build_subdir):
- for compiler in ["icc","gcc","clang"]:
- fs = glob.glob(join_path(tbb_build_subdir,"*.%s.inc" % compiler ))
- for f in fs:
- lines = open(f).readlines()
- of = open(f,"w")
- for l in lines:
- if l.strip().startswith("CPLUS ="):
+ def coerce_to_spack(self, tbb_build_subdir):
+ for compiler in ["icc", "gcc", "clang"]:
+ fs = glob.glob(join_path(tbb_build_subdir,
+ "*.%s.inc" % compiler))
+ for f in fs:
+ lines = open(f).readlines()
+ of = open(f, "w")
+ for l in lines:
+ if l.strip().startswith("CPLUS ="):
of.write("# coerced to spack\n")
of.write("CPLUS = $(CXX)\n")
- elif l.strip().startswith("CPLUS ="):
+ elif l.strip().startswith("CPLUS ="):
of.write("# coerced to spack\n")
of.write("CONLY = $(CC)\n")
- else:
- of.write(l);
+ else:
+ of.write(l)
def install(self, spec, prefix):
- #
- # we need to follow TBB's compiler selection logic to get the proper build + link flags
- # but we still need to use spack's compiler wrappers
+ if spec.satisfies('%gcc@6.1:') and spec.satisfies('@:4.4.3'):
+ raise InstallError('Only TBB 4.4.4 and above build with GCC 6.1!')
+
+ # We need to follow TBB's compiler selection logic to get the proper
+ # build + link flags but we still need to use spack's compiler wrappers
# to accomplish this, we do two things:
#
- # * Look at the spack spec to determine which compiler we should pass to tbb's Makefile
+ # * Look at the spack spec to determine which compiler we should pass
+ # to tbb's Makefile;
#
# * patch tbb's build system to use the compiler wrappers (CC, CXX) for
- # icc, gcc, clang
- # (see coerce_to_spack())
+ # icc, gcc, clang (see coerce_to_spack());
#
self.coerce_to_spack("build")
@@ -74,7 +83,6 @@ class Tbb(Package):
else:
tbb_compiler = "gcc"
-
mkdirp(prefix)
mkdirp(prefix.lib)
@@ -82,10 +90,10 @@ class Tbb(Package):
# tbb does not have a configure script or make install target
# we simply call make, and try to put the pieces together
#
- make("compiler=%s" %(tbb_compiler))
+ make("compiler=%s" % (tbb_compiler))
# install headers to {prefix}/include
- install_tree('include',prefix.include)
+ install_tree('include', prefix.include)
# install libs to {prefix}/lib
tbb_lib_names = ["libtbb",
@@ -94,10 +102,10 @@ class Tbb(Package):
for lib_name in tbb_lib_names:
# install release libs
- fs = glob.glob(join_path("build","*release",lib_name + ".*"))
+ fs = glob.glob(join_path("build", "*release", lib_name + ".*"))
for f in fs:
install(f, prefix.lib)
# install debug libs if they exist
- fs = glob.glob(join_path("build","*debug",lib_name + "_debug.*"))
+ fs = glob.glob(join_path("build", "*debug", lib_name + "_debug.*"))
for f in fs:
install(f, prefix.lib)
diff --git a/var/spack/repos/builtin/packages/tcl/package.py b/var/spack/repos/builtin/packages/tcl/package.py
index a4d8b515bb..d9b535305d 100644
--- a/var/spack/repos/builtin/packages/tcl/package.py
+++ b/var/spack/repos/builtin/packages/tcl/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class Tcl(Package):
+
+class Tcl(AutotoolsPackage):
"""Tcl (Tool Command Language) is a very powerful but easy to
learn dynamic programming language, suitable for a very wide
range of uses, including web and desktop applications,
@@ -34,9 +35,6 @@ class Tcl(Package):
extensible."""
homepage = "http://www.tcl.tk"
- def url_for_version(self, version):
- return 'http://prdownloads.sourceforge.net/tcl/tcl%s-src.tar.gz' % version
-
version('8.6.5', '0e6426a4ca9401825fbc6ecf3d89a326')
version('8.6.4', 'd7cbb91f1ded1919370a30edd1534304')
version('8.6.3', 'db382feca91754b7f93da16dc4cdad1f')
@@ -44,8 +42,20 @@ class Tcl(Package):
depends_on('zlib')
- def install(self, spec, prefix):
- with working_dir('unix'):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ def url_for_version(self, version):
+ base_url = 'http://prdownloads.sourceforge.net/tcl'
+ return '{0}/tcl{1}-src.tar.gz'.format(base_url, version)
+
+ def setup_environment(self, spack_env, env):
+ # When using Tkinter from within spack provided python+tk, python
+ # will not be able to find Tcl/Tk unless TCL_LIBRARY is set.
+ env.set('TCL_LIBRARY', join_path(self.prefix.lib, 'tcl{0}'.format(
+ self.spec.version.up_to(2))))
+
+ def build_directory(self):
+ return 'unix'
+
+ @AutotoolsPackage.sanity_check('install')
+ def symlink_tclsh(self):
+ with working_dir(self.prefix.bin):
+ symlink('tclsh{0}'.format(self.version.up_to(2)), 'tclsh')
diff --git a/var/spack/repos/builtin/packages/tetgen/package.py b/var/spack/repos/builtin/packages/tetgen/package.py
index 5e87ed7fba..6e5ed79c36 100644
--- a/var/spack/repos/builtin/packages/tetgen/package.py
+++ b/var/spack/repos/builtin/packages/tetgen/package.py
@@ -22,22 +22,48 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+
from spack import *
+import glob
+
class Tetgen(Package):
- """TetGen is a program and library that can be used to generate tetrahedral
- meshes for given 3D polyhedral domains. TetGen generates exact constrained
- Delaunay tetrahedralizations, boundary conforming Delaunay meshes, and
- Voronoi paritions."""
+ """TetGen is a program and library that can be used to generate
+ tetrahedral meshes for given 3D polyhedral domains. TetGen
+ generates exact constrained Delaunay tetrahedralizations,
+ boundary conforming Delaunay meshes, and Voronoi paritions.
+ """
homepage = "http://www.tetgen.org"
- url = "http://www.tetgen.org/files/tetgen1.4.3.tar.gz"
- version('1.4.3', 'd6a4bcdde2ac804f7ec66c29dcb63c18')
+ version('1.5.0', '3b9fd9cdec121e52527b0308f7aad5c1', url='http://www.tetgen.org/1.5/src/tetgen1.5.0.tar.gz')
+ version('1.4.3', 'd6a4bcdde2ac804f7ec66c29dcb63c18', url='http://www.tetgen.org/files/tetgen1.4.3.tar.gz')
+
+ variant('debug', default=False, description='Builds the library in debug mode.')
+ variant('except', default=False, description='Replaces asserts with exceptions for better C++ compatibility.')
+
+ patch('tetgen-1.5.0-free.patch', when='@1.5.0')
+
+ def patch(self):
+ cflags = '-g -O0' if '+debug' in self.spec else '-g0 -O3'
+
+ mff = FileFilter('makefile')
+ mff.filter(r'^(C(XX)?FLAGS\s*=)(.*)$', r'\1 {0}'.format(cflags))
+
+ if '+except' in self.spec:
+ hff = FileFilter('tetgen.h')
+ hff.filter(r'(\b)(throw)(\b)(.*);', r'\1assert_throw(false);')
+ hff.filter(r'^(#define\s*tetgenH\s*)$', r'\1{0}'.format("""\n
+#include <stdexcept>
+
+inline void assert_throw(bool assertion)
+{
+ if(!assertion)
+ throw std::runtime_error("Tetgen encountered a problem (assert failed)!");
+}\n"""))
- # TODO: Make this a build dependency once build dependencies are supported
- # (see: https://github.com/LLNL/spack/pull/378).
- depends_on('cmake@2.8.7:', when='@1.5.0:')
+ sff = FileFilter(*(glob.glob('*.cxx')))
+ sff.filter(r'(\b)(assert)(\b)', r'\1assert_throw\3')
def install(self, spec, prefix):
make('tetgen', 'tetlib')
diff --git a/var/spack/repos/builtin/packages/tetgen/tetgen-1.5.0-free.patch b/var/spack/repos/builtin/packages/tetgen/tetgen-1.5.0-free.patch
new file mode 100644
index 0000000000..009ccd834f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tetgen/tetgen-1.5.0-free.patch
@@ -0,0 +1,49 @@
+diff --git a/tetgen.h b/tetgen.h
+index 3196e03..2ff3138 100644
+--- a/tetgen.h
++++ b/tetgen.h
+@@ -2206,6 +2206,44 @@ public:
+ if (highordertable != NULL) {
+ delete [] highordertable;
+ }
++
++ bgm = NULL;
++
++ points = NULL;
++ dummypoint = NULL;
++
++ tetrahedrons = NULL;
++
++ subfaces = NULL;
++ subsegs = NULL;
++
++ tet2segpool = NULL;
++ tet2subpool = NULL;
++
++ flippool = NULL;
++ unflipqueue = NULL;
++
++ cavetetlist = NULL;
++ cavebdrylist = NULL;
++ caveoldtetlist = NULL;
++ cavetetvertlist = NULL;
++
++ caveshlist = NULL;
++ caveshbdlist = NULL;
++ cavesegshlist = NULL;
++ cavetetshlist = NULL;
++ cavetetseglist = NULL;
++ caveencshlist = NULL;
++ caveencseglist = NULL;
++
++ subsegstack = NULL;
++ subfacstack = NULL;
++ subvertstack = NULL;
++
++ idx2facetlist = NULL;
++ facetverticeslist = NULL;
++ segmentendpointslist = NULL;
++ highordertable = NULL;
+ }
+
+ ~tetgenmesh()
diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py
new file mode 100644
index 0000000000..624942498e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tethex/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tethex(Package):
+ """Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D)
+ Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes
+ can be used in software packages working with hexahedrals only - for
+ example, deal.II.
+ """
+
+ homepage = "https://github.com/martemyev/tethex"
+ url = "https://github.com/martemyev/tethex/archive/v0.0.7.tar.gz"
+
+ version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184')
+ version('develop', git='https://github.com/martemyev/tethex.git')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ cmake('.')
+ make()
+
+ # install by hand
+ mkdirp(prefix.bin)
+ install('tethex', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/texinfo/package.py b/var/spack/repos/builtin/packages/texinfo/package.py
index 5c6fef0db6..e4fbc37235 100644
--- a/var/spack/repos/builtin/packages/texinfo/package.py
+++ b/var/spack/repos/builtin/packages/texinfo/package.py
@@ -26,21 +26,18 @@
from spack import *
-class Texinfo(Package):
- """
- Texinfo is the official documentation format of the GNU project. It was invented by Richard Stallman and Bob
- Chassell many years ago, loosely based on Brian Reid's Scribe and other formatting languages of the time. It is
- used by many non-GNU projects as well.FIXME: put a proper description of your package here.
- """
+class Texinfo(AutotoolsPackage):
+ """Texinfo is the official documentation format of the GNU project.
+
+ It was invented by Richard Stallman and Bob Chassell many years ago,
+ loosely based on Brian Reid's Scribe and other formatting languages
+ of the time. It is used by many non-GNU projects as well."""
+
homepage = "https://www.gnu.org/software/texinfo/"
url = "http://ftp.gnu.org/gnu/texinfo/texinfo-6.0.tar.gz"
+ version('6.3', '9b08daca9bf8eccae9b0f884aba41f9e')
version('6.0', 'e1a2ef5dce5018b53f0f6eed45b247a7')
version('5.2', '1b8f98b80a8e6c50422125e07522e8db')
version('5.1', '54e250014fe698fb4832016158747c03')
version('5.0', '918432285abe6fe96c98355594c5656a')
-
- def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py
new file mode 100644
index 0000000000..a960e5b68d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/texlive/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Texlive(Package):
+ """TeX Live is a free software distribution for the TeX typesetting
+ system"""
+
+ homepage = "http://www.tug.org/texlive"
+
+ # Pull from specific site because the texlive mirrors do not all
+ # update in synchrony.
+ #
+ # BEWARE: TexLive updates their installs frequently (probably why
+ # they call it *Live*...). There is no good way to provide a
+ # repeatable install of the package. We try to keep up with the
+ # digest values, but don't be surprised if this package is
+ # briefly unbuildable.
+ #
+ version('live', '01461ec2cc49fe0b14812eb67abbea46',
+ url="http://ctan.math.utah.edu/ctan/tex-archive/systems/texlive/tlnet/install-tl-unx.tar.gz")
+
+ # There does not seem to be a complete list of schemes.
+ # Examples include:
+ # full scheme (everything)
+ # medium scheme (small + more packages and languages)
+ # small scheme (basic + xetex, metapost, a few languages)
+ # basic scheme (plain and latex)
+ # minimal scheme (plain only)
+ # See:
+ # https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-25025r6
+ variant('scheme', default="small",
+ description='Package subset to install (e.g. full, small, basic)')
+
+ depends_on('perl', type='build')
+
+ def install(self, spec, prefix):
+ env = os.environ
+ env['TEXLIVE_INSTALL_PREFIX'] = prefix
+ perl = which('perl')
+ scheme = spec.variants['scheme'].value
+ perl('./install-tl', '-scheme', scheme,
+ '-portable', '-profile', '/dev/null')
diff --git a/var/spack/repos/builtin/packages/the-platinum-searcher/package.py b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py
new file mode 100644
index 0000000000..eeddf194ea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import shutil
+
+
+class ThePlatinumSearcher(Package):
+ """Fast parallel recursive grep alternative"""
+ homepage = "https://github.com/monochromegane/the_platinum_searcher"
+ url = "https://github.com/monochromegane/the_platinum_searcher"
+
+ package = 'github.com/monochromegane/the_platinum_searcher/...'
+
+ version('head', go=package)
+
+ extends("go", deptypes='build')
+
+ def install(self, spec, prefix):
+ env = os.environ
+ env['GOPATH'] = self.stage.source_path + ':' + env['GOPATH']
+ go('install', self.package, env=env)
+ shutil.copytree('bin', os.path.join(prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/the_silver_searcher/package.py b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
index e289b6d783..c98e964efa 100644
--- a/var/spack/repos/builtin/packages/the_silver_searcher/package.py
+++ b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
@@ -24,16 +24,18 @@
##############################################################################
from spack import *
+
class TheSilverSearcher(Package):
"""Fast recursive grep alternative"""
homepage = "http://geoff.greer.fm/ag/"
- url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.30.0.tar.gz"
+ url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz"
+ version('0.32.0', '3fdfd5836924246073d5344257a06823')
version('0.30.0', '95e2e7859fab1156c835aff7413481db')
depends_on('pcre')
depends_on('xz')
- depends_on('pkg-config')
+ depends_on('pkg-config', type='build')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/the_platinum_searcher/package.py b/var/spack/repos/builtin/packages/the_platinum_searcher/package.py
deleted file mode 100644
index 9c9a66cdef..0000000000
--- a/var/spack/repos/builtin/packages/the_platinum_searcher/package.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from spack import *
-import os
-import shutil
-
-
-class ThePlatinumSearcher(Package):
- """Fast parallel recursive grep alternative"""
- homepage = "https://github.com/monochromegane/the_platinum_searcher"
- url = "https://github.com/monochromegane/the_platinum_searcher"
-
- package = 'github.com/monochromegane/the_platinum_searcher/...'
-
- version('head', go=package)
-
- extends("go")
-
- def install(self, spec, prefix):
- env = os.environ
- env['GOPATH'] = self.stage.source_path + ':' + env['GOPATH']
- go('install', self.package, env=env)
- shutil.copytree('bin', os.path.join(prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py
index 6d834c6321..755f7a80b9 100644
--- a/var/spack/repos/builtin/packages/thrift/package.py
+++ b/var/spack/repos/builtin/packages/thrift/package.py
@@ -24,12 +24,16 @@
##############################################################################
from spack import *
+
class Thrift(Package):
- """The Apache Thrift software framework, for scalable cross-language services
- development, combines a software stack with a code generation engine to build
- services that work efficiently and seamlessly between C++, Java, Python, PHP,
- Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml
- and Delphi and other languages."""
+ """Software framework for scalable cross-language services development.
+
+ Thrift combines a software stack with a code generation engine to
+ build services that work efficiently and seamlessly between C++,
+ Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa,
+ JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.
+
+ """
homepage = "http://thrift.apache.org"
url = "http://apache.mirrors.ionfish.org/thrift/0.9.2/thrift-0.9.2.tar.gz"
@@ -37,16 +41,18 @@ class Thrift(Package):
version('0.9.2', '89f63cc4d0100912f4a1f8a9dee63678')
# Currently only support for c-family and python
- variant('c', default=True, description="Build support for C-family languages")
- variant('python', default=True, description="Build support for python")
+ variant('c', default=True,
+ description="Build support for C-family languages")
+ variant('python', default=True,
+ description="Build support for python")
depends_on('jdk')
- depends_on('autoconf')
- depends_on('automake')
- depends_on('libtool')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
depends_on('boost@1.53:')
- depends_on('bison')
- depends_on('flex')
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
depends_on('openssl')
# Variant dependencies
@@ -66,7 +72,8 @@ class Thrift(Package):
options.append('--enable-tests=no')
options.append('--with-c=%s' % ('yes' if '+c' in spec else 'no'))
- options.append('--with-python=%s' % ('yes' if '+python' in spec else 'no'))
+ options.append('--with-python=%s' %
+ ('yes' if '+python' in spec else 'no'))
options.append('--with-java=%s' % ('yes' if '+java' in spec else 'no'))
options.append('--with-go=%s' % ('yes' if '+go' in spec else 'no'))
options.append('--with-lua=%s' % ('yes' if '+lua' in spec else 'no'))
diff --git a/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt b/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt
new file mode 100644
index 0000000000..93f124d716
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 2.6)
+
+project(TinyXml)
+OPTION(TIXML_USE_STL "Use STL with TIXML" ON)
+if(TIXML_USE_STL)
+ add_definitions(-DTIXML_USE_STL)
+endif(TIXML_USE_STL)
+add_library(
+ tinyxml
+ tinyxml.cpp
+ tinystr.cpp
+ tinyxmlerror.cpp
+ tinyxmlparser.cpp
+)
+
+INSTALL( FILES tinyxml.h tinystr.h DESTINATION include )
+INSTALL( TARGETS tinyxml ARCHIVE DESTINATION lib )
diff --git a/var/spack/repos/builtin/packages/tinyxml/package.py b/var/spack/repos/builtin/packages/tinyxml/package.py
new file mode 100644
index 0000000000..1789d9022e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tinyxml/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os.path
+
+
+class Tinyxml(CMakePackage):
+ """Simple, small, efficient, C++ XML parser"""
+
+ homepage = "http://grinninglizard.com/tinyxml/"
+ url = "https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz"
+
+ version('2.6.2', 'cba3f50dd657cb1434674a03b21394df9913d764')
+
+ def patch(self):
+ copyfile(join_path(os.path.dirname(__file__),
+ "CMakeLists.txt"), "CMakeLists.txt")
diff --git a/var/spack/repos/builtin/packages/tinyxml2/package.py b/var/spack/repos/builtin/packages/tinyxml2/package.py
new file mode 100644
index 0000000000..d36bb5fa9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tinyxml2/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tinyxml2(CMakePackage):
+ """Simple, small, efficient, C++ XML parser"""
+
+ homepage = "http://grinninglizard.com/tinyxml2/"
+ url = "https://github.com/leethomason/tinyxml2/archive/3.0.0.tar.gz"
+
+ version('4.0.1', '08570d385788f6b02f50f5fd9df32a9d4f8482cc')
+ version('4.0.0', '7a6f0858d75f360922f3ca272f7067e8cdf00489')
+ version('3.0.0', '07acaae49f7dd3dab790da4fe72d0c7ef0d116d1')
+ version('2.2.0', '7869aa08241ce16f93ba3732c1cde155b1f2b6a0')
+ version('2.1.0', '70ef3221bdc190fd8fc50cdd4a6ef440f44b74dc')
+ version('2.0.2', 'c78a4de58540e2a35f4775fd3e577299ebd15117')
diff --git a/var/spack/repos/builtin/packages/tk/package.py b/var/spack/repos/builtin/packages/tk/package.py
index 330e1c77f5..071db04e63 100644
--- a/var/spack/repos/builtin/packages/tk/package.py
+++ b/var/spack/repos/builtin/packages/tk/package.py
@@ -24,7 +24,8 @@
##############################################################################
from spack import *
-class Tk(Package):
+
+class Tk(AutotoolsPackage):
"""Tk is a graphical user interface toolkit that takes developing
desktop applications to a higher level than conventional
approaches. Tk is the standard GUI not only for Tcl, but for
@@ -33,16 +34,27 @@ class Tk(Package):
and more."""
homepage = "http://www.tcl.tk"
- def url_for_version(self, version):
- return "http://prdownloads.sourceforge.net/tcl/tk%s-src.tar.gz" % version
-
+ version('8.6.5', '11dbbd425c3e0201f20d6a51482ce6c4')
version('8.6.3', '85ca4dbf4dcc19777fd456f6ee5d0221')
+ variant('X', default=False, description='Enable X11 support')
+
depends_on("tcl")
+ depends_on("libx11", when='+X')
+
+ def url_for_version(self, version):
+ base_url = "http://prdownloads.sourceforge.net/tcl"
+ return "{0}/tk{1}-src.tar.gz".format(base_url, version)
+
+ def setup_environment(self, spack_env, run_env):
+ # When using Tkinter from within spack provided python+tk, python
+ # will not be able to find Tcl/Tk unless TK_LIBRARY is set.
+ run_env.set('TK_LIBRARY', join_path(self.prefix.lib, 'tk{0}'.format(
+ self.spec.version.up_to(2))))
+
+ def build_directory(self):
+ return 'unix'
- def install(self, spec, prefix):
- with working_dir('unix'):
- configure("--prefix=%s" % prefix,
- "--with-tcl=%s" % spec['tcl'].prefix.lib)
- make()
- make("install")
+ def configure_args(self):
+ spec = self.spec
+ return ['--with-tcl={0}'.format(spec['tcl'].prefix.lib)]
diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py
index c46425c0d3..89c9751486 100644
--- a/var/spack/repos/builtin/packages/tmux/package.py
+++ b/var/spack/repos/builtin/packages/tmux/package.py
@@ -24,26 +24,34 @@
##############################################################################
from spack import *
+
class Tmux(Package):
"""tmux is a terminal multiplexer. What is a terminal multiplexer? It lets
- you switch easily between several programs in one terminal, detach them (they
- keep running in the background) and reattach them to a different terminal. And
- do a lot more.
+ you switch easily between several programs in one terminal, detach them
+ (they keep running in the background) and reattach them to a different
+ terminal. And do a lot more.
"""
homepage = "http://tmux.github.io"
- url = "https://github.com/tmux/tmux/releases/download/2.1/tmux-2.1.tar.gz"
+ url = "https://github.com/tmux/tmux/releases/download/2.2/tmux-2.2.tar.gz"
- version('1.9a', 'b07601711f96f1d260b390513b509a2d')
+ version('2.3', 'fcfd1611d705d8b31df3c26ebc93bd3e')
+ version('2.2', 'bd95ee7205e489c62c616bb7af040099')
version('2.1', '74a2855695bccb51b6e301383ad4818c')
+ version('1.9a', 'b07601711f96f1d260b390513b509a2d')
depends_on('libevent')
depends_on('ncurses')
def install(self, spec, prefix):
+ pkg_config_path = ':'.join([
+ spec['libevent'].prefix,
+ spec['ncurses'].prefix
+ ])
+
configure(
"--prefix=%s" % prefix,
- "PKG_CONFIG_PATH=%s:%s" % (spec['libevent'].prefix, spec['ncurses'].prefix))
+ "PKG_CONFIG_PATH=%s" % pkg_config_path)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/tmuxinator/package.py b/var/spack/repos/builtin/packages/tmuxinator/package.py
index b9c92ea4db..66da4006f2 100644
--- a/var/spack/repos/builtin/packages/tmuxinator/package.py
+++ b/var/spack/repos/builtin/packages/tmuxinator/package.py
@@ -24,17 +24,18 @@
##############################################################################
from spack import *
+
class Tmuxinator(Package):
"""A session configuration creator and manager for tmux"""
homepage = "https://github.com/tmuxinator/tmuxinator"
url = "https://github.com/tmuxinator/tmuxinator"
version('0.6.11',
- git='https://github.com/tmuxinator/tmuxinator',
- tag='v0.6.11')
+ git='https://github.com/tmuxinator/tmuxinator',
+ tag='v0.6.11')
extends('ruby')
def install(self, spec, prefix):
- gem('build', 'tmuxinator.gemspec')
- gem('install', 'tmuxinator-{0}.gem'.format(self.version))
+ gem('build', 'tmuxinator.gemspec')
+ gem('install', 'tmuxinator-{0}.gem'.format(self.version))
diff --git a/var/spack/repos/builtin/packages/transset/package.py b/var/spack/repos/builtin/packages/transset/package.py
new file mode 100644
index 0000000000..0f60738741
--- /dev/null
+++ b/var/spack/repos/builtin/packages/transset/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Transset(Package):
+ """transset is an utility for setting opacity property."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/transset"
+ url = "https://www.x.org/archive/individual/app/transset-1.0.1.tar.gz"
+
+ version('1.0.1', '4bbee6f6ea6fbd403280b4bb311db6dc')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/trapproto/package.py b/var/spack/repos/builtin/packages/trapproto/package.py
new file mode 100644
index 0000000000..eebab74410
--- /dev/null
+++ b/var/spack/repos/builtin/packages/trapproto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Trapproto(Package):
+ """X.org TrapProto protocol headers."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/trapproto"
+ url = "https://www.x.org/archive/individual/proto/trapproto-3.4.3.tar.gz"
+
+ version('3.4.3', '1344759ae8d7d923e64f5eec078a679b')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/tree/package.py b/var/spack/repos/builtin/packages/tree/package.py
new file mode 100644
index 0000000000..795f8c997e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tree/package.py
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+
+
+class Tree(Package):
+ """Tree is a recursive directory listing command that produces a depth
+ indented listing of files, which is colorized ala dircolors if
+ the LS_COLORS environment variable is set and output is to
+ tty. Tree has been ported and reported to work under the
+ following operating systems: Linux, FreeBSD, OS X, Solaris,
+ HP/UX, Cygwin, HP Nonstop and OS/2."""
+
+ homepage = "http://mama.indstate.edu/users/ice/tree/"
+ url = "http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz"
+
+ version('1.7.0', 'abe3e03e469c542d8e157cdd93f4d8a6')
+
+ def install(self, spec, prefix):
+ objs = [
+ 'tree.o',
+ 'unix.o',
+ 'html.o',
+ 'xml.o',
+ 'json.o',
+ 'hash.o',
+ 'color.o'
+ ]
+ if (sys.platform == 'darwin'):
+ objs.append('strverscmp.o')
+
+ args = [
+ 'prefix=%s' % prefix,
+ 'CC=%s' % spack_cc,
+ 'CFLAGS=',
+ 'OBJS=%s' % ' '.join(objs),
+ 'install'
+ ]
+
+ make(*args)
diff --git a/var/spack/repos/builtin/packages/triangle/package.py b/var/spack/repos/builtin/packages/triangle/package.py
index bc8b0ec639..f4ee9ca1c9 100644
--- a/var/spack/repos/builtin/packages/triangle/package.py
+++ b/var/spack/repos/builtin/packages/triangle/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Triangle(Package):
"""Triangle is a two-dimensional mesh generator and Delaunay
triangulator. Triangle generates exact Delaunay triangulations,
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 1eaec86405..4b3412ce7a 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -23,137 +23,235 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os, sys, glob
+import os
+import sys
-# Trilinos is complicated to build, as an inspiration a couple of links to other repositories which build it:
+# Trilinos is complicated to build, as an inspiration a couple of links to
+# other repositories which build it:
# https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/t/trilinos.py#L111
# https://github.com/koecher/candi/blob/master/deal.II-toolchain/packages/trilinos.package
# https://gitlab.com/configurations/cluster-config/blob/master/trilinos.sh
-# https://github.com/Homebrew/homebrew-science/blob/master/trilinos.rb
-# and some relevant documentation/examples:
+# https://github.com/Homebrew/homebrew-science/blob/master/trilinos.rb and some
+# relevant documentation/examples:
# https://github.com/trilinos/Trilinos/issues/175
-class Trilinos(Package):
- """The Trilinos Project is an effort to develop algorithms and enabling technologies within an object-oriented
- software framework for the solution of large-scale, complex multi-physics engineering and scientific problems.
+
+
+class Trilinos(CMakePackage):
+ """The Trilinos Project is an effort to develop algorithms and enabling
+ technologies within an object-oriented software framework for the solution
+ of large-scale, complex multi-physics engineering and scientific problems.
A unique design feature of Trilinos is its focus on packages.
"""
homepage = "https://trilinos.org/"
- url = "http://trilinos.csbsju.edu/download/files/trilinos-12.2.1-Source.tar.gz"
+ base_url = "https://github.com/trilinos/Trilinos/archive"
+
+ version('develop',
+ git='https://github.com/trilinos/Trilinos.git', tag='develop')
+ version('master',
+ git='https://github.com/trilinos/Trilinos.git', tag='master')
+ version('12.10.1', '40f28628b63310f9bd17c26d9ebe32b1')
+ version('12.8.1', '01c0026f1e2050842857db941060ecd5')
+ version('12.6.4', 'c2ea7b5aa0d10bcabdb9b9a6e3bac3ea')
+ version('12.6.3', '8de5cc00981a0ca0defea6199b2fe4c1')
+ version('12.6.2', 'dc7f9924872778798149ecadd81605a5')
+ version('12.6.1', '8aecea78546e7558f63ecc9a3b2949da')
+ version('12.4.2', '4c25a757d86bde3531090bd900a2cea8')
+ version('12.2.1', '85d011f7f99a776a9c6c2625e8cb721c')
+ version('12.0.1', 'bcb3fdefd14d05dd6aa65ba4c5b9aa0e')
+ version('11.14.3', 'dea62e57ebe51a886bee0b10a2176969')
+ version('11.14.2', 'e7c3cdbbfe3279a8a68838b873ad6d51')
+ version('11.14.1', 'b7760b142eef66c79ed13de7c9560f81')
- version('12.6.1', 'adcf2d3aab74cdda98f88fee19cd1442604199b0515ee3da4d80cbe8f37d00e4')
- version('12.4.2', '7c830f7f0f68b8ad324690603baf404e')
- version('12.2.1', '6161926ea247863c690e927687f83be9')
- version('12.0.1', 'bd99741d047471e127b8296b2ec08017')
- version('11.14.3', '2f4f83f8333e4233c57d0f01c4b57426')
- version('11.14.2', 'a43590cf896c677890d75bfe75bc6254')
- version('11.14.1', '40febc57f76668be8b6a77b7607bb67f')
+ def url_for_version(self, version):
+ return '%s/trilinos-release-%s.tar.gz' % \
+ (Trilinos.base_url, version.dashed)
- variant('metis', default=True, description='Compile with METIS and ParMETIS')
- variant('mumps', default=True, description='Compile with support for MUMPS solvers')
- variant('superlu-dist', default=True, description='Compile with SuperluDist solvers')
- variant('hypre', default=True, description='Compile with Hypre preconditioner')
+ variant('xsdkflags', default=False,
+ description='Compile using the default xSDK configuration')
+ variant('metis', default=True,
+ description='Compile with METIS and ParMETIS')
+ variant('mumps', default=True,
+ description='Compile with support for MUMPS solvers')
+ variant('superlu-dist', default=True,
+ description='Compile with SuperluDist solvers')
+ variant('superlu', default=False,
+ description='Compile with SuperLU solvers')
+ variant('hypre', default=True,
+ description='Compile with Hypre preconditioner')
variant('hdf5', default=True, description='Compile with HDF5')
- variant('suite-sparse', default=True, description='Compile with SuiteSparse solvers')
- # not everyone has py-numpy activated, keep it disabled by default to avoid configure errors
+ variant('suite-sparse', default=True,
+ description='Compile with SuiteSparse solvers')
+ # not everyone has py-numpy activated, keep it disabled by default to avoid
+ # configure errors
variant('python', default=False, description='Build python wrappers')
- variant('shared', default=True, description='Enables the build of shared libraries')
- variant('debug', default=False, description='Builds a debug version of the libraries')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+ variant('boost', default=True, description='Compile with Boost')
# Everything should be compiled with -fpic
depends_on('blas')
depends_on('lapack')
- depends_on('boost')
+ depends_on('boost', when='+boost')
depends_on('matio')
depends_on('glm')
- depends_on('swig')
- depends_on('metis@5:',when='+metis')
- depends_on('suite-sparse',when='+suite-sparse')
+ depends_on('metis@5:', when='+metis')
+ depends_on('suite-sparse', when='+suite-sparse')
# MPI related dependencies
depends_on('mpi')
depends_on('netcdf+mpi')
- depends_on('parmetis',when='+metis')
- # Trilinos' Tribits config system is limited which makes it
- # very tricky to link Amesos with static MUMPS, see
+ depends_on('parmetis', when='+metis')
+ # Trilinos' Tribits config system is limited which makes it very tricky to
+ # link Amesos with static MUMPS, see
# https://trilinos.org/docs/dev/packages/amesos2/doc/html/classAmesos2_1_1MUMPS.html
- # One could work it out by getting linking flags from mpif90 --showme:link (or alike)
- # and adding results to -DTrilinos_EXTRA_LINK_FLAGS
- # together with Blas and Lapack and ScaLAPACK and Blacs and -lgfortran and
- # it may work at the end. But let's avoid all this by simply using shared libs
- depends_on('mumps@5.0:+mpi+shared',when='+mumps')
- depends_on('scalapack',when='+mumps')
- depends_on('superlu-dist',when='+superlu-dist')
- depends_on('hypre~internal-superlu',when='+hypre')
- depends_on('hdf5+mpi',when='+hdf5')
+ # One could work it out by getting linking flags from mpif90 --showme:link
+ # (or alike) and adding results to -DTrilinos_EXTRA_LINK_FLAGS together
+ # with Blas and Lapack and ScaLAPACK and Blacs and -lgfortran and it may
+ # work at the end. But let's avoid all this by simply using shared libs
+ depends_on('mumps@5.0:+mpi+shared', when='+mumps')
+ depends_on('scalapack', when='+mumps')
+ depends_on('superlu-dist@:4.3', when='@:12.6.1+superlu-dist')
+ depends_on('superlu-dist', when='@12.6.2:+superlu-dist')
+ depends_on('superlu+fpic@4.3', when='+superlu')
+ depends_on('hypre~internal-superlu', when='+hypre')
+ depends_on('hdf5+mpi', when='+hdf5')
+ depends_on('python', when='+python')
+ depends_on('py-numpy', when='+python')
+ depends_on('swig', when='+python')
- depends_on('python',when='+python')
-
- patch('umfpack_from_suitesparse.patch')
+ patch('umfpack_from_suitesparse.patch', when='@:12.8.1')
# check that the combination of variants makes sense
def variants_check(self):
if '+superlu-dist' in self.spec and self.spec.satisfies('@:11.4.3'):
- # For Trilinos v11 we need to force SuperLUDist=OFF,
- # since only the deprecated SuperLUDist v3.3 together with an Amesos patch
- # is working.
- raise RuntimeError('The superlu-dist variant can only be used with Trilinos @12.0.1:')
+ # For Trilinos v11 we need to force SuperLUDist=OFF, since only the
+ # deprecated SuperLUDist v3.3 together with an Amesos patch is
+ # working.
+ raise RuntimeError('The superlu-dist variant can only be used' +
+ ' with Trilinos @12.0.1:')
+ if '+superlu-dist' in self.spec and '+superlu' in self.spec:
+ # Only choose one type of superlu
+ raise RuntimeError('The superlu-dist and superlu variant' +
+ ' cannot be used together')
- def install(self, spec, prefix):
+ def cmake_args(self):
+ spec = self.spec
self.variants_check()
cxx_flags = []
options = []
- options.extend(std_cmake_args)
mpi_bin = spec['mpi'].prefix.bin
- options.extend(['-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON',
- '-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON',
- '-DTrilinos_VERBOSE_CONFIGURE:BOOL=OFF',
- '-DTrilinos_ENABLE_TESTS:BOOL=OFF',
- '-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF',
- '-DCMAKE_BUILD_TYPE:STRING=%s' % ('DEBUG' if '+debug' in spec else 'RELEASE'),
- '-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if '+shared' in spec else 'OFF'),
- '-DTPL_ENABLE_MPI:BOOL=ON',
- '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
- '-DTPL_ENABLE_BLAS=ON',
- '-DBLAS_LIBRARY_NAMES=blas', # FIXME: don't hardcode names
- '-DBLAS_LIBRARY_DIRS=%s' % spec['blas'].prefix.lib,
- '-DTPL_ENABLE_LAPACK=ON',
- '-DLAPACK_LIBRARY_NAMES=lapack',
- '-DLAPACK_LIBRARY_DIRS=%s' % spec['lapack'].prefix,
- '-DTPL_ENABLE_Boost:BOOL=ON',
- '-DBoost_INCLUDE_DIRS:PATH=%s' % spec['boost'].prefix.include,
- '-DBoost_LIBRARY_DIRS:PATH=%s' % spec['boost'].prefix.lib,
- '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON',
- '-DTrilinos_ENABLE_CXX11:BOOL=ON',
- '-DTPL_ENABLE_Netcdf:BOOL=ON',
- '-DTPL_ENABLE_HYPRE:BOOL=%s' % ('ON' if '+hypre' in spec else 'OFF'),
- '-DTPL_ENABLE_HDF5:BOOL=%s' % ('ON' if '+hdf5' in spec else 'OFF'),
- ])
+ # Note: -DXYZ_LIBRARY_NAMES= needs semicolon separated list of names
+ blas = spec['blas'].blas_libs
+ lapack = spec['lapack'].lapack_libs
+ options.extend([
+ '-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON',
+ '-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON',
+ '-DTrilinos_VERBOSE_CONFIGURE:BOOL=OFF',
+ '-DTrilinos_ENABLE_TESTS:BOOL=OFF',
+ '-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF',
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF'),
+ '-DTPL_ENABLE_MPI:BOOL=ON',
+ '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
+ '-DTPL_ENABLE_BLAS=ON',
+ '-DBLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names),
+ '-DBLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories),
+ '-DTPL_ENABLE_LAPACK=ON',
+ '-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names),
+ '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
+ '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON',
+ '-DTrilinos_ENABLE_CXX11:BOOL=ON',
+ '-DTPL_ENABLE_Netcdf:BOOL=ON',
+ '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix
+ ])
- # Fortran lib
- libgfortran = os.path.dirname (os.popen('%s --print-file-name libgfortran.a' % join_path(mpi_bin,'mpif90') ).read())
+ # Force Trilinos to use the MPI wrappers instead of raw compilers
+ # this is needed on Apple systems that require full resolution of
+ # all symbols when linking shared libraries
options.extend([
- '-DTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % libgfortran,
- '-DTrilinos_ENABLE_Fortran=ON'
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc
])
+ if '+hypre' in spec:
+ options.extend([
+ '-DTPL_ENABLE_HYPRE:BOOL=ON',
+ '-DHYPRE_INCLUDE_DIRS:PATH=%s' % spec['hypre'].prefix.include,
+ '-DHYPRE_LIBRARY_DIRS:PATH=%s' % spec['hypre'].prefix.lib
+ ])
+
+ if spec.satisfies('%intel') and spec.satisfies('@12.6.2'):
+ # Panzer uses some std:chrono that is not recognized by Intel
+ # Don't know which (maybe all) Trilinos versions this applies to
+ # Don't know which (maybe all) Intel versions this applies to
+ options.extend([
+ '-DTrilinos_ENABLE_Panzer:BOOL=OFF'
+ ])
+
+ if '+xsdkflags' in spec:
+ options.extend(['-DUSE_XSDK_DEFAULTS=YES'])
+ if '+hdf5' in spec:
+ options.extend([
+ '-DTPL_ENABLE_HDF5:BOOL=ON',
+ '-DHDF5_INCLUDE_DIRS:PATH=%s' % spec['hdf5'].prefix.include,
+ '-DHDF5_LIBRARY_DIRS:PATH=%s' % spec['hdf5'].prefix.lib
+ ])
+ else:
+ options.extend(['-DTPL_ENABLE_HDF5:BOOL=OFF'])
+
+ if '+boost' in spec:
+ options.extend([
+ '-DTPL_ENABLE_Boost:BOOL=ON',
+ '-DBoost_INCLUDE_DIRS:PATH=%s' % spec['boost'].prefix.include,
+ '-DBoost_LIBRARY_DIRS:PATH=%s' % spec['boost'].prefix.lib
+ ])
+ else:
+ options.extend(['-DTPL_ENABLE_Boost:BOOL=OFF'])
- # for build-debug only:
- #options.extend([
- # '-DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE'
- #])
+ if '+hdf5' in spec:
+ options.extend([
+ '-DTPL_ENABLE_HDF5:BOOL=ON',
+ '-DHDF5_INCLUDE_DIRS:PATH=%s' % spec['hdf5'].prefix.include,
+ '-DHDF5_LIBRARY_DIRS:PATH=%s' % spec['hdf5'].prefix.lib
+ ])
+ else:
+ options.extend(['-DTPL_ENABLE_HDF5:BOOL=OFF'])
+
+ # Fortran lib
+ if spec.satisfies('%gcc') or spec.satisfies('%clang'):
+ libgfortran = os.path.dirname(os.popen(
+ '%s --print-file-name libgfortran.a' %
+ join_path(mpi_bin, 'mpif90')).read())
+ options.extend([
+ '-DTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % (
+ libgfortran),
+ '-DTrilinos_ENABLE_Fortran=ON'
+ ])
# suite-sparse related
if '+suite-sparse' in spec:
options.extend([
- '-DTPL_ENABLE_Cholmod:BOOL=OFF', # FIXME: Trilinos seems to be looking for static libs only, patch CMake TPL file?
- #'-DTPL_ENABLE_Cholmod:BOOL=ON',
- #'-DCholmod_LIBRARY_DIRS:PATH=%s' % spec['suite-sparse'].prefix.lib,
- #'-DCholmod_INCLUDE_DIRS:PATH=%s' % spec['suite-sparse'].prefix.include,
+ # FIXME: Trilinos seems to be looking for static libs only,
+ # patch CMake TPL file?
+ '-DTPL_ENABLE_Cholmod:BOOL=OFF',
+ # '-DTPL_ENABLE_Cholmod:BOOL=ON',
+ # '-DCholmod_LIBRARY_DIRS:PATH=%s' % (
+ # spec['suite-sparse'].prefix.lib,
+ # '-DCholmod_INCLUDE_DIRS:PATH=%s' % (
+ # spec['suite-sparse'].prefix.include,
'-DTPL_ENABLE_UMFPACK:BOOL=ON',
- '-DUMFPACK_LIBRARY_DIRS:PATH=%s' % spec['suite-sparse'].prefix.lib,
- '-DUMFPACK_INCLUDE_DIRS:PATH=%s' % spec['suite-sparse'].prefix.include,
- '-DUMFPACK_LIBRARY_NAMES=umfpack;amd;colamd;cholmod;suitesparseconfig'
+ '-DUMFPACK_LIBRARY_DIRS:PATH=%s' % (
+ spec['suite-sparse'].prefix.lib),
+ '-DUMFPACK_INCLUDE_DIRS:PATH=%s' % (
+ spec['suite-sparse'].prefix.include),
+ '-DUMFPACK_LIBRARY_NAMES=umfpack;amd;colamd;cholmod;' +
+ 'suitesparseconfig'
])
else:
options.extend([
@@ -169,9 +267,11 @@ class Trilinos(Package):
'-DMETIS_LIBRARY_NAMES=metis',
'-DTPL_METIS_INCLUDE_DIRS=%s' % spec['metis'].prefix.include,
'-DTPL_ENABLE_ParMETIS:BOOL=ON',
- '-DParMETIS_LIBRARY_DIRS=%s;%s' % (spec['parmetis'].prefix.lib,spec['metis'].prefix.lib),
+ '-DParMETIS_LIBRARY_DIRS=%s;%s' % (
+ spec['parmetis'].prefix.lib, spec['metis'].prefix.lib),
'-DParMETIS_LIBRARY_NAMES=parmetis;metis',
- '-DTPL_ParMETIS_INCLUDE_DIRS=%s' % spec['parmetis'].prefix.include
+ '-DTPL_ParMETIS_INCLUDE_DIRS=%s' % (
+ spec['parmetis'].prefix.include)
])
else:
options.extend([
@@ -184,11 +284,14 @@ class Trilinos(Package):
options.extend([
'-DTPL_ENABLE_MUMPS:BOOL=ON',
'-DMUMPS_LIBRARY_DIRS=%s' % spec['mumps'].prefix.lib,
- '-DMUMPS_LIBRARY_NAMES=dmumps;mumps_common;pord', # order is important!
+ # order is important!
+ '-DMUMPS_LIBRARY_NAMES=dmumps;mumps_common;pord',
'-DTPL_ENABLE_SCALAPACK:BOOL=ON',
- '-DSCALAPACK_LIBRARY_NAMES=scalapack' # FIXME: for MKL it's mkl_scalapack_lp64;mkl_blacs_mpich_lp64
+ # FIXME: for MKL it's mkl_scalapack_lp64;mkl_blacs_mpich_lp64
+ '-DSCALAPACK_LIBRARY_NAMES=scalapack'
])
- # see https://github.com/trilinos/Trilinos/blob/master/packages/amesos/README-MUMPS
+ # see
+ # https://github.com/trilinos/Trilinos/blob/master/packages/amesos/README-MUMPS
cxx_flags.extend([
'-DMUMPS_5_0'
])
@@ -201,16 +304,20 @@ class Trilinos(Package):
# superlu-dist:
if '+superlu-dist' in spec:
# Amesos, conflicting types of double and complex SLU_D
- # see https://trilinos.org/pipermail/trilinos-users/2015-March/004731.html
- # and https://trilinos.org/pipermail/trilinos-users/2015-March/004802.html
+ # see
+ # https://trilinos.org/pipermail/trilinos-users/2015-March/004731.html
+ # and
+ # https://trilinos.org/pipermail/trilinos-users/2015-March/004802.html
options.extend([
'-DTeuchos_ENABLE_COMPLEX:BOOL=OFF',
'-DKokkosTSQR_ENABLE_Complex:BOOL=OFF'
])
options.extend([
'-DTPL_ENABLE_SuperLUDist:BOOL=ON',
- '-DSuperLUDist_LIBRARY_DIRS=%s' % spec['superlu-dist'].prefix.lib,
- '-DSuperLUDist_INCLUDE_DIRS=%s' % spec['superlu-dist'].prefix.include
+ '-DSuperLUDist_LIBRARY_DIRS=%s' %
+ spec['superlu-dist'].prefix.lib,
+ '-DSuperLUDist_INCLUDE_DIRS=%s' %
+ spec['superlu-dist'].prefix.include
])
if spec.satisfies('^superlu-dist@4.0:'):
options.extend([
@@ -221,6 +328,19 @@ class Trilinos(Package):
'-DTPL_ENABLE_SuperLUDist:BOOL=OFF',
])
+ # superlu:
+ if '+superlu' in spec:
+ options.extend([
+ '-DTPL_ENABLE_SuperLU:BOOL=ON',
+ '-DSuperLU_LIBRARY_DIRS=%s' %
+ spec['superlu'].prefix.lib,
+ '-DSuperLU_INCLUDE_DIRS=%s' %
+ spec['superlu'].prefix.include
+ ])
+ else:
+ options.extend([
+ '-DTPL_ENABLE_SuperLU:BOOL=OFF',
+ ])
# python
if '+python' in spec:
@@ -247,24 +367,20 @@ class Trilinos(Package):
options.extend([
'-DTrilinos_ENABLE_FEI=OFF'
])
+ return options
-
- with working_dir('spack-build', create=True):
- cmake('..', *options)
- make()
- make('install')
-
- # When trilinos is built with Python, libpytrilinos is included through
- # cmake configure files. Namely, Trilinos_LIBRARIES in TrilinosConfig.cmake
- # contains pytrilinos. This leads to a run-time error:
- # Symbol not found: _PyBool_Type
- # and prevents Trilinos to be used in any C++ code, which links executable
- # against the libraries listed in Trilinos_LIBRARIES.
- # See https://github.com/Homebrew/homebrew-science/issues/2148#issuecomment-103614509
- # A workaround it to remove PyTrilinos from the COMPONENTS_LIST :
- if '+python' in self.spec:
- filter_file(r'(SET\(COMPONENTS_LIST.*)(PyTrilinos;)(.*)', (r'\1\3'), '%s/cmake/Trilinos/TrilinosConfig.cmake' % prefix.lib)
-
- # The shared libraries are not installed correctly on Darwin; correct this
- if (sys.platform == 'darwin') and ('+shared' in spec):
- fix_darwin_install_name(prefix.lib)
+ @CMakePackage.sanity_check('install')
+ def filter_python(self):
+ # When trilinos is built with Python, libpytrilinos is included
+ # through cmake configure files. Namely, Trilinos_LIBRARIES in
+ # TrilinosConfig.cmake contains pytrilinos. This leads to a
+ # run-time error: Symbol not found: _PyBool_Type and prevents
+ # Trilinos to be used in any C++ code, which links executable
+ # against the libraries listed in Trilinos_LIBRARIES. See
+ # https://github.com/Homebrew/homebrew-science/issues/2148#issuecomment-103614509
+ # A workaround is to remove PyTrilinos from the COMPONENTS_LIST :
+ if '+python' in self.spec:
+ filter_file(r'(SET\(COMPONENTS_LIST.*)(PyTrilinos;)(.*)',
+ (r'\1\3'),
+ '%s/cmake/Trilinos/TrilinosConfig.cmake' %
+ self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/turbomole/package.py b/var/spack/repos/builtin/packages/turbomole/package.py
index 6ccce23f97..cf14259da4 100644
--- a/var/spack/repos/builtin/packages/turbomole/package.py
+++ b/var/spack/repos/builtin/packages/turbomole/package.py
@@ -29,21 +29,21 @@ import subprocess
class Turbomole(Package):
"""TURBOMOLE: Program Package for ab initio Electronic Structure
- Calculations. NB: Requires a license to download."""
+ Calculations.
- # NOTE: Turbomole requires purchase of a license to download. Go to the
- # NOTE: Turbomole home page, http://www.turbomole-gmbh.com, for details.
- # NOTE: Spack will search the current directory for this file. It is
- # NOTE: probably best to add this file to a Spack mirror so that it can be
- # NOTE: found from anywhere. For information on setting up a Spack mirror
- # NOTE: see http://software.llnl.gov/spack/mirrors.html
+ Note: Turbomole requires purchase of a license to download. Go to the
+ Turbomole home page, http://www.turbomole-gmbh.com, for details.
+ Spack will search the current directory for this file. It is
+ probably best to add this file to a Spack mirror so that it can be
+ found from anywhere. For information on setting up a Spack mirror
+ see http://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://www.turbomole-gmbh.com/"
version('7.0.2', '92b97e1e52e8dcf02a4d9ac0147c09d6',
url="file://%s/turbolinux702.tar.gz" % os.getcwd())
- variant('mpi', default=False, description='Set up MPI environment')
+ variant('mpi', default=True, description='Set up MPI environment')
variant('smp', default=False, description='Set up SMP environment')
# Turbomole's install is odd. There are three variants
diff --git a/var/spack/repos/builtin/packages/twm/package.py b/var/spack/repos/builtin/packages/twm/package.py
new file mode 100644
index 0000000000..3e37f4903d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/twm/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Twm(Package):
+ """twm is a window manager for the X Window System. It provides
+ titlebars, shaped windows, several forms of icon management,
+ user-defined macro functions, click-to-type and pointer-driven
+ keyboard focus, and user-specified key and pointer button bindings."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/twm"
+ url = "https://www.x.org/archive/individual/app/twm-1.0.9.tar.gz"
+
+ version('1.0.9', 'e98fcb32f774ac1ff7bf82101b79f61e')
+
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxt')
+ depends_on('libxmu')
+ depends_on('libice')
+ depends_on('libsm')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/uberftp/package.py b/var/spack/repos/builtin/packages/uberftp/package.py
new file mode 100644
index 0000000000..b0c6c8a42f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/uberftp/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Uberftp(Package):
+ """UberFTP is an interactive (text-based) client for GridFTP"""
+
+ homepage = "http://toolkit.globus.org/grid_software/data/uberftp.php"
+ url = "https://github.com/JasonAlt/UberFTP/archive/Version_2_8.tar.gz"
+
+ version('2_8', 'bc7a159955a9c4b9f5f42f3d2b8fc830')
+ version('2_7', 'faaea2d6e1958c1105cfc9147824e03c')
+ version('2_6', '784210976f259f9d19c0798c19778d34')
+
+ depends_on('globus-toolkit')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/udunits2/package.py b/var/spack/repos/builtin/packages/udunits2/package.py
index aed39668fd..cfc8e30c41 100644
--- a/var/spack/repos/builtin/packages/udunits2/package.py
+++ b/var/spack/repos/builtin/packages/udunits2/package.py
@@ -24,17 +24,16 @@
##############################################################################
from spack import *
-class Udunits2(Package):
+
+class Udunits2(AutotoolsPackage):
"""Automated units conversion"""
homepage = "http://www.unidata.ucar.edu/software/udunits"
- url = "ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.2.20.tar.gz"
+ url = "ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.2.21.tar.gz"
- version('2.2.20', '1586b70a49dfe05da5fcc29ef239dce0')
+ version('2.2.21', '1f6d3375efc1f124790a4efb7102cdb7')
depends_on('expat')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
diff --git a/var/spack/repos/builtin/packages/uncrustify/package.py b/var/spack/repos/builtin/packages/uncrustify/package.py
index db96bc301e..c3182d0dc8 100644
--- a/var/spack/repos/builtin/packages/uncrustify/package.py
+++ b/var/spack/repos/builtin/packages/uncrustify/package.py
@@ -24,8 +24,9 @@
##############################################################################
from spack import *
+
class Uncrustify(Package):
- """Source Code Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA"""
+ """Source Code Beautifier for C, C++, C#, ObjectiveC, Java, and others."""
homepage = "http://uncrustify.sourceforge.net/"
url = "http://downloads.sourceforge.net/project/uncrustify/uncrustify/uncrustify-0.61/uncrustify-0.61.tar.gz"
diff --git a/var/spack/repos/builtin/packages/unibilium/package.py b/var/spack/repos/builtin/packages/unibilium/package.py
index d9e0ad6bcb..943e4737e1 100644
--- a/var/spack/repos/builtin/packages/unibilium/package.py
+++ b/var/spack/repos/builtin/packages/unibilium/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Unibilium(Package):
"""A terminfo parsing library"""
homepage = "https://github.com/mauke/unibilium"
@@ -32,5 +33,5 @@ class Unibilium(Package):
version('1.2.0', '9b1c97839a880a373da6c097443b43c4')
def install(self, spec, prefix):
- make("PREFIX="+prefix)
- make("install", "PREFIX="+prefix)
+ make("PREFIX=" + prefix)
+ make("install", "PREFIX=" + prefix)
diff --git a/var/spack/repos/builtin/packages/unison/package.py b/var/spack/repos/builtin/packages/unison/package.py
new file mode 100644
index 0000000000..181e1e6410
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unison/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Unison(Package):
+ """Unison is a file-synchronization tool for OSX, Unix, and
+ Windows. It allows two replicas of a collection of files and
+ directories to be stored on different hosts (or different disks
+ on the same host), modified separately, and then brought up to
+ date by propagating the changes in each replica to the
+ other."""
+
+ homepage = "https://www.cis.upenn.edu/~bcpierce/unison/"
+ url = "https://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz"
+
+ version('2.48.4', '5334b78c7e68169df7de95f4c6c4b60f')
+
+ depends_on('ocaml', type='build')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ make('./mkProjectInfo')
+ make('UISTYLE=text')
+
+ mkdirp(prefix.bin)
+ install('unison', prefix.bin)
+ set_executable(join_path(prefix.bin, 'unison'))
diff --git a/var/spack/repos/builtin/packages/unixodbc/package.py b/var/spack/repos/builtin/packages/unixodbc/package.py
new file mode 100644
index 0000000000..15de127b7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unixodbc/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Unixodbc(Package):
+ """ODBC is an open specification for providing application developers with
+ a predictable API with which to access Data Sources. Data Sources include
+ SQL Servers and any Data Source with an ODBC Driver."""
+
+ homepage = "http://www.unixodbc.org/"
+ url = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz"
+
+ version('2.3.4', 'bd25d261ca1808c947cb687e2034be81')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/util-linux/package.py b/var/spack/repos/builtin/packages/util-linux/package.py
index bf6972683d..99af170ca1 100644
--- a/var/spack/repos/builtin/packages/util-linux/package.py
+++ b/var/spack/repos/builtin/packages/util-linux/package.py
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
+
class UtilLinux(Package):
"""Util-linux is a suite of essential utilities for any Linux system."""
@@ -36,9 +36,9 @@ class UtilLinux(Package):
depends_on("python@2.7:")
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "PKG_CONFIG_PATH=%s/pkgconfig" % spec['python'].prefix.lib,
- "--disable-use-tty-group")
+ configure("--prefix=%s" % prefix,
+ "PKG_CONFIG_PATH=%s/pkgconfig" % spec['python'].prefix.lib,
+ "--disable-use-tty-group")
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py
new file mode 100644
index 0000000000..486d4463b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/util-macros/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class UtilMacros(Package):
+ """This is a set of autoconf macros used by the configure.ac scripts in
+ other Xorg modular packages, and is needed to generate new versions
+ of their configure scripts with autoconf."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/util/macros/"
+ url = "https://www.x.org/archive/individual/util/util-macros-1.19.0.tar.bz2"
+
+ version('1.19.0', '1cf984125e75f8204938d998a8b6c1e1')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/uuid/package.py b/var/spack/repos/builtin/packages/uuid/package.py
new file mode 100644
index 0000000000..5bcf59d9bf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/uuid/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Uuid(AutotoolsPackage):
+ """OSSP uuid is a ISO-C:1999 application programming interface (API) and
+ corresponding command line interface (CLI) for the generation of DCE 1.1,
+ ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier
+ (UUID)."""
+
+ homepage = "http://www.ossp.org/pkg/lib/uuid"
+ url = "http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz"
+
+ version('1.6.2', '5db0d43a9022a6ebbbc25337ae28942f')
diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py
index afd4cc6ad0..e7ae227c27 100644
--- a/var/spack/repos/builtin/packages/valgrind/package.py
+++ b/var/spack/repos/builtin/packages/valgrind/package.py
@@ -27,12 +27,15 @@ from spack import *
class Valgrind(Package):
- """
- Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can
- automatically detect many memory management and threading bugs, and profile your programs in detail. You can also
- use Valgrind to build new tools.
+ """An instrumentation framework for building dynamic analysis.
+
+ There are Valgrind tools that can automatically detect many memory
+ management and threading bugs, and profile your programs in
+ detail. You can also use Valgrind to build new tools.
+
+ Valgrind is Open Source / Free Software, and is freely available
+ under the GNU General Public License, version 2.
- Valgrind is Open Source / Free Software, and is freely available under the GNU General Public License, version 2.
"""
homepage = "http://valgrind.org/"
url = "http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2"
@@ -42,7 +45,8 @@ class Valgrind(Package):
version('3.10.0', '7c311a72a20388aceced1aa5573ce970')
variant('mpi', default=True, description='Activates MPI support for valgrind')
- variant('boost', default=True, description='Activates boost support for valgrind')
+ variant('boost', default=True,
+ description='Activates boost support for valgrind')
depends_on('mpi', when='+mpi')
depends_on('boost', when='+boost')
diff --git a/var/spack/repos/builtin/packages/veclibfort/package.py b/var/spack/repos/builtin/packages/veclibfort/package.py
new file mode 100644
index 0000000000..b906d4f9c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/veclibfort/package.py
@@ -0,0 +1,70 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+
+
+class Veclibfort(Package):
+ """Lightweight but flexible shim designed to rectify the incompatibilities
+ between the Accelerate/vecLib BLAS and LAPACK libraries shipped with macOS
+ and FORTRAN code compiled with modern compilers such as GNU Fortran."""
+
+ homepage = "https://github.com/mcg1969/vecLibFort"
+ url = "https://github.com/mcg1969/vecLibFort/archive/0.4.2.tar.gz"
+
+ version('0.4.2', '83395ffcbe8a2122c3f726a5c3a7cf93')
+ version('develop', git='https://github.com/mcg1969/vecLibFort.git')
+
+ variant('shared', default=True,
+ description="Build shared libraries as well as static libs.")
+
+ # virtual dependency
+ provides('blas')
+ provides('lapack')
+
+ @property
+ def blas_libs(self):
+ shared = True if '+shared' in self.spec else False
+ return find_libraries(
+ ['libvecLibFort'], root=self.prefix, shared=shared, recurse=True
+ )
+
+ @property
+ def lapack_libs(self):
+ return self.blas_libs
+
+ def install(self, spec, prefix):
+ if sys.platform != 'darwin':
+ raise InstallError('vecLibFort can be installed on macOS only')
+
+ make('all')
+ make('PREFIX=%s' % prefix, 'install')
+
+ # test
+ fc = which('fc')
+ flags = ['-o', 'tester', '-O', 'tester.f90']
+ flags.extend(self.lapack_libs.ld_flags.split())
+ fc(*flags)
+ Executable('./tester')()
diff --git a/var/spack/repos/builtin/packages/videoproto/package.py b/var/spack/repos/builtin/packages/videoproto/package.py
new file mode 100644
index 0000000000..93b0e61ca4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/videoproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Videoproto(Package):
+ """X Video Extension.
+
+ This extension provides a protocol for a video output mechanism,
+ mainly to rescale video playback in the video controller hardware."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/videoproto"
+ url = "https://www.x.org/archive/individual/proto/videoproto-2.3.3.tar.gz"
+
+ version('2.3.3', 'd984100603ee2420072f27bb491f4b7d')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/viewres/package.py b/var/spack/repos/builtin/packages/viewres/package.py
new file mode 100644
index 0000000000..3a32555075
--- /dev/null
+++ b/var/spack/repos/builtin/packages/viewres/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Viewres(Package):
+ """viewres displays a tree showing the widget class hierarchy of the
+ Athena Widget Set (libXaw)."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/viewres"
+ url = "https://www.x.org/archive/individual/app/viewres-1.0.4.tar.gz"
+
+ version('1.0.4', 'a3c7fe561945951f848e319680753760')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py
index f66c20894b..e2542c3f56 100644
--- a/var/spack/repos/builtin/packages/vim/package.py
+++ b/var/spack/repos/builtin/packages/vim/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Vim(Package):
"""Vim is a highly configurable text editor built to enable efficient text
editing. It is an improved version of the vi editor distributed with most
@@ -34,24 +35,14 @@ class Vim(Package):
"""
homepage = "http://www.vim.org"
- url = "ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2"
- list_url = "http://ftp.vim.org/pub/vim/unix/"
-
- version('7.4', '607e135c559be642f210094ad023dc65')
- version('7.3', '5b9510a17074e2b37d8bb38ae09edbf2')
- version('7.2', 'f0901284b338e448bfd79ccca0041254')
- version('7.1', '44c6b4914f38d6f9aa959640b89da329')
- version('7.0', '4ca69757678272f718b1041c810d82d8')
- version('6.4', '774c14d93ce58674b3b2c880edd12d77')
- version('6.3', '821fda8f14d674346b87e3ef9cb96389')
- version('6.2', 'c49d360bbd069d00e2a57804f2a123d9')
- version('6.1.405', 'd220ff58f2c72ed606e6d0297c2f2a7c')
- version('6.1', '7fd0f915adc7c0dab89772884268b030')
- version('6.0', '9d9ca84d489af6b3f54639dd97af3774')
+ url = "https://github.com/vim/vim/archive/v8.0.0134.tar.gz"
+
+ version('8.0.0134', 'c74668d25c2acc85d655430dd60886cd')
+ version('7.4.2367', 'a0a7bc394f7ab1d95571fe6ab05da3ea')
feature_sets = ('huge', 'big', 'normal', 'small', 'tiny')
for fs in feature_sets:
- variant(fs, default=False, description="Use '%s' feature set" % fs)
+ variant(fs, default=False, description="Use '%s' feature set" % fs)
variant('python', default=False, description="build with Python")
depends_on('python', when='+python')
@@ -60,48 +51,52 @@ class Vim(Package):
depends_on('ruby', when='+ruby')
variant('cscope', default=False, description="build with cscope support")
- depends_on('cscope', when='+cscope')
+ depends_on('cscope', when='+cscope', type='run')
variant('gui', default=False, description="build with gui (gvim)")
# virtual dependency?
+ depends_on('ncurses', when="@7.4:")
+
def install(self, spec, prefix):
- feature_set = None
- for fs in self.feature_sets:
- if "+" + fs in spec:
- if feature_set is not None:
- tty.error("Only one feature set allowed, both %s and %s specified"
- % (feature_set, fs))
- feature_set = fs
- if '+gui' in spec:
- if feature_set is not None:
- if feature_set is not 'huge':
- tty.error("+gui variant requires 'huge' feature set, %s was specified"
- % feature_set)
- feature_set = 'huge'
- if feature_set is None:
- feature_set = 'normal'
-
- configure_args = []
- configure_args.append("--with-features=" + feature_set)
-
- if '+python' in spec:
- configure_args.append("--enable-pythoninterp=yes")
- else:
- configure_args.append("--enable-pythoninterp=dynamic")
-
- if '+ruby' in spec:
- configure_args.append("--enable-rubyinterp=yes")
- else:
- configure_args.append("--enable-rubyinterp=dynamic")
-
- if '+gui' in spec:
- configure_args.append("--enable-gui=auto")
-
- if '+cscope' in spec:
- configure_args.append("--enable-cscope")
-
- configure("--prefix=%s" % prefix, *configure_args)
-
- make()
- make("install")
+ feature_set = None
+ for fs in self.feature_sets:
+ if "+" + fs in spec:
+ if feature_set is not None:
+ raise InstallError(
+ "Only one feature set allowed, specified %s and %s"
+ % (feature_set, fs))
+ feature_set = fs
+ if '+gui' in spec:
+ if feature_set is not None:
+ if feature_set != 'huge':
+ raise InstallError(
+ "+gui variant requires 'huge' feature set, "
+ "%s was specified" % feature_set)
+ feature_set = 'huge'
+ if feature_set is None:
+ feature_set = 'normal'
+
+ configure_args = []
+ configure_args.append("--with-features=" + feature_set)
+
+ if '+python' in spec:
+ configure_args.append("--enable-pythoninterp=yes")
+ else:
+ configure_args.append("--enable-pythoninterp=dynamic")
+
+ if '+ruby' in spec:
+ configure_args.append("--enable-rubyinterp=yes")
+ else:
+ configure_args.append("--enable-rubyinterp=dynamic")
+
+ if '+gui' in spec:
+ configure_args.append("--enable-gui=auto")
+
+ if '+cscope' in spec:
+ configure_args.append("--enable-cscope")
+
+ configure("--prefix=%s" % prefix, *configure_args)
+
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py
index ae19fd0450..48a3762a2a 100644
--- a/var/spack/repos/builtin/packages/visit/package.py
+++ b/var/spack/repos/builtin/packages/visit/package.py
@@ -26,30 +26,38 @@ from spack import *
class Visit(Package):
- """VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool."""
+ """VisIt is an Open Source, interactive, scalable, visualization,
+ animation and analysis tool."""
homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
url = "http://portal.nersc.gov/project/visit/releases/2.10.1/visit2.10.1.tar.gz"
- version('2.10.1', '3cbca162fdb0249f17c4456605c4211e')
+ version('2.10.3', 'a1082a6f6dab3e2dcb58993603456c2b')
version('2.10.2', '253de0837a9d69fb689befc98ea4d068')
+ version('2.10.1', '3cbca162fdb0249f17c4456605c4211e')
- depends_on("vtk@6.1.0~opengl2")
- depends_on("qt@4.8.6")
- depends_on("python")
- depends_on("silo+shared")
+ depends_on('cmake', type='build')
+ depends_on('vtk@6.1.0~opengl2')
+ depends_on('qt@4.8.6')
+ depends_on('python')
+ depends_on('silo+shared')
+ depends_on('hdf5~mpi')
def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
-
- feature_args = std_cmake_args[:]
- feature_args.extend(["-DVTK_MAJOR_VERSION=6",
- "-DVTK_MINOR_VERSION=1",
- "-DVISIT_LOC_QMAKE_EXE:FILEPATH=%s/qmake-qt4" % spec['qt'].prefix.bin,
- "-DPYTHON_EXECUTABLE:FILEPATH=%s/python" % spec['python'].prefix.bin,
- "-DVISIT_SILO_DIR:PATH=%s" % spec['silo'].prefix,
- "-DVISIT_HDF5_DIR:PATH=%s" % spec['hdf5'].prefix])
-
- cmake('../src', *feature_args)
+ qt_bin = spec['qt'].prefix.bin
+ with working_dir('spack-build', create=True):
+ cmake_args = std_cmake_args[:]
+ cmake_args.extend([
+ '-DVTK_MAJOR_VERSION=6',
+ '-DVTK_MINOR_VERSION=1',
+ '-DVISIT_USE_GLEW=OFF',
+ '-DVISIT_LOC_QMAKE_EXE:FILEPATH={0}/qmake-qt4'.format(qt_bin),
+ '-DPYTHON_DIR:PATH={0}'.format(spec['python'].prefix),
+ '-DVISIT_SILO_DIR:PATH={0}'.format(spec['silo'].prefix),
+ '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix),
+ '-DVISIT_VTK_DIR:PATH={0}'.format(spec['vtk'].prefix),
+ ])
+
+ cmake(join_path('..', 'src'), *cmake_args)
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/vizglow/package.py b/var/spack/repos/builtin/packages/vizglow/package.py
new file mode 100644
index 0000000000..9e4506b05a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vizglow/package.py
@@ -0,0 +1,58 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+
+
+class Vizglow(Package):
+ """VizGlow software tool is used for high-fidelity multi-dimensional
+ modeling of non-equilibrium plasma discharges.
+
+ Note: VizGlow is licensed software. You will need to create an account on
+ the EsgeeTech homepage and download VizGlow yourself. Spack will search
+ your current directory for a file of this format. Alternatively, add this
+ file to a mirror so that Spack can find it. For instructions on how to
+ set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "http://esgeetech.com/products/vizglow-plasma-modeling/"
+
+ version('2.2a-15', 'be2b5044f30f2b2c3bbe87a0037bf228', expand=False,
+ url="file://{0}/VizGlow_v2.2alpha15-Linux-x86_64-R31October2016-Install".format(os.getcwd()))
+
+ # Licensing
+ license_required = True
+ license_comment = '#'
+ license_files = ['esgeelm.lic']
+ license_vars = ['ESGEE_LICENSE_FILE']
+
+ def install(self, spec, prefix):
+ installer = glob.glob('VizGlow*Install')[0]
+
+ chmod = which('chmod')
+ chmod('+x', installer)
+
+ installer = Executable(installer)
+ installer('--mode', 'silent', '--prefix', prefix)
diff --git a/var/spack/repos/builtin/packages/vtk/gcc.patch b/var/spack/repos/builtin/packages/vtk/gcc.patch
new file mode 100644
index 0000000000..37ba5ac45a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vtk/gcc.patch
@@ -0,0 +1,21 @@
+--- old/CMake/vtkCompilerExtras.cmake
++++ new/CMake/vtkCompilerExtras.cmake
+@@ -26,6 +26,8 @@
+ execute_process(COMMAND ${CMAKE_C_COMPILER} --version
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
++
++ string (REPLACE ";" "" _gcc_version_info "${_gcc_version_info}")
+
+ string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]"
+ _gcc_version "${_gcc_version_info}")
+--- old/CMake/GenerateExportHeader.cmake
++++ new/CMake/GenerateExportHeader.cmake
+@@ -166,6 +166,7 @@
+ execute_process(COMMAND ${CMAKE_C_COMPILER} --version
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
++ string (REPLACE ";" "" _gcc_version_info "${_gcc_version_info}")
+ string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]"
+ _gcc_version "${_gcc_version_info}")
+ # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py
index d2296dbc26..c2d5ff399f 100644
--- a/var/spack/repos/builtin/packages/vtk/package.py
+++ b/var/spack/repos/builtin/packages/vtk/package.py
@@ -22,61 +22,78 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+
from spack import *
+
class Vtk(Package):
"""The Visualization Toolkit (VTK) is an open-source, freely
available software system for 3D computer graphics, image
processing and visualization. """
+
homepage = "http://www.vtk.org"
- url = "http://www.vtk.org/files/release/6.1/VTK-6.1.0.tar.gz"
+ base_url = "http://www.vtk.org/files/release"
- version("7.0.0", "5fe35312db5fb2341139b8e4955c367d", url="http://www.vtk.org/files/release/7.0/VTK-7.0.0.tar.gz")
+ version('7.0.0', '5fe35312db5fb2341139b8e4955c367d')
+ version('6.3.0', '0231ca4840408e9dd60af48b314c5b6d')
+ version('6.1.0', '25e4dfb3bad778722dcaec80cd5dab7d')
- version("6.3.0", '0231ca4840408e9dd60af48b314c5b6d', url="http://www.vtk.org/files/release/6.3/VTK-6.3.0.tar.gz")
+ # VTK7 defaults to OpenGL2 rendering backend
+ variant('opengl2', default=True, description='Build with OpenGL2 instead of OpenGL as rendering backend')
+ variant('python', default=False, description='Build the python modules')
- version('6.1.0', '25e4dfb3bad778722dcaec80cd5dab7d')
+ patch('gcc.patch')
- depends_on("qt")
+ depends_on('cmake', type='build')
+ depends_on('qt')
- # VTK7 defaults to OpenGL2 rendering backend
- variant('opengl2', default=True, description='Build with OpenGL instead of OpenGL2 as rendering backend')
+ extends('python', when='+python')
+ depends_on('python', when='+python')
+
+ def url_for_version(self, ver):
+ return '{0}/{1}/VTK-{2}.tar.gz'.format(Vtk.base_url, ver.up_to(2), ver)
def install(self, spec, prefix):
def feature_to_bool(feature, on='ON', off='OFF'):
- if feature in spec:
- return on
- return off
+ return on if '+{0}'.format(feature) in spec else off
with working_dir('spack-build', create=True):
- cmake_args = [
- "..",
- "-DBUILD_SHARED_LIBS=ON",
- # Disable wrappers for other languages.
- "-DVTK_WRAP_PYTHON=OFF",
- "-DVTK_WRAP_JAVA=OFF",
- "-DVTK_WRAP_TCL=OFF"]
- cmake_args.extend(std_cmake_args)
+ opengl_ver = 'OpenGL{0}'.format('2' if '+opengl2' in spec else '')
+ qt_ver = spec['qt'].version.up_to(1)
+ qt_bin = spec['qt'].prefix.bin
- # Enable Qt support here.
+ cmake_args = std_cmake_args[:]
cmake_args.extend([
- "-DQT_QMAKE_EXECUTABLE:PATH=%s/qmake" % spec['qt'].prefix.bin,
- "-DVTK_Group_Qt:BOOL=ON",
- # Ignore webkit because it's hard to build w/Qt
- "-DVTK_Group_Qt=OFF",
- "-DModule_vtkGUISupportQt:BOOL=ON",
- "-DModule_vtkGUISupportQtOpenGL:BOOL=ON"
- ])
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DVTK_RENDERING_BACKEND:STRING={0}'.format(opengl_ver),
- if spec['qt'].satisfies('@5'):
- cmake_args.append("-DVTK_QT_VERSION:STRING=5")
+ # Enable/Disable wrappers for Python.
+ '-DVTK_WRAP_PYTHON={0}'.format(feature_to_bool('python')),
- if spec.satisfies("@6.1.0"):
- cmake_args.append("-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY")
- cmake_args.append("-DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY")
+ # Disable wrappers for other languages.
+ '-DVTK_WRAP_JAVA=OFF',
+ '-DVTK_WRAP_TCL=OFF',
+
+ # Enable Qt support here.
+ '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver),
+ '-DQT_QMAKE_EXECUTABLE:PATH={0}/qmake'.format(qt_bin),
+ '-DVTK_Group_Qt:BOOL=ON',
+ ])
+
+ # NOTE: The following definitions are required in order to allow
+ # VTK to build with qt~webkit versions (see the documentation for
+ # more info: http://www.vtk.org/Wiki/VTK/Tutorials/QtSetup).
+ if '~webkit' in spec['qt']:
+ cmake_args.extend([
+ '-DVTK_Group_Qt:BOOL=OFF',
+ '-DModule_vtkGUISupportQt:BOOL=ON',
+ '-DModule_vtkGUISupportQtOpenGL:BOOL=ON',
+ ])
- cmake_args.append('-DVTK_RENDERING_BACKEND:STRING=%s' % feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL'))
+ if spec.satisfies('@:6.1.0'):
+ cmake_args.append('-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY')
+ cmake_args.append('-DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY')
- cmake(*cmake_args)
+ cmake('..', *cmake_args)
make()
- make("install")
+ make('install')
diff --git a/var/spack/repos/builtin/packages/wannier90/make.sys b/var/spack/repos/builtin/packages/wannier90/make.sys
new file mode 100644
index 0000000000..f96fa23fb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wannier90/make.sys
@@ -0,0 +1,7 @@
+F90 = @F90
+COMMS=mpi
+MPIF90=@MPIF90
+FCOPTS=-O2 -fpic
+LDOPTS=-O2 -fpic
+
+LIBS = @LIBS
diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py
new file mode 100644
index 0000000000..119d2cf769
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wannier90/package.py
@@ -0,0 +1,116 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import inspect
+import os.path
+import shutil
+
+from spack import *
+
+
+class Wannier90(Package):
+ """Wannier90 calculates maximally-localised Wannier functions (MLWFs).
+
+ Wannier90 is released under the GNU General Public License.
+ """
+ homepage = 'http://wannier.org'
+ url = 'http://wannier.org/code/wannier90-2.0.1.tar.gz'
+
+ version('2.0.1', '4edd742506eaba93317249d33261fb22')
+
+ depends_on('mpi')
+ depends_on('lapack')
+ depends_on('blas')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+
+ lapack = self.spec['lapack'].lapack_libs
+ blas = self.spec['blas'].blas_libs
+ substitutions = {
+ '@F90': spack_fc,
+ '@MPIF90': self.spec['mpi'].mpifc,
+ '@LIBS': (lapack + blas).joined()
+ }
+ #######
+ # TODO : this part is replicated in PEXSI
+ # TODO : and may be a common pattern for Editable Makefiles
+ # TODO : see #1186
+ template = join_path(
+ os.path.dirname(inspect.getmodule(self).__file__),
+ 'make.sys'
+ )
+ makefile = join_path(
+ self.stage.source_path,
+ 'make.sys'
+ )
+
+ shutil.copy(template, makefile)
+ for key, value in substitutions.items():
+ filter_file(key, value, makefile)
+ ######
+
+ make('wannier')
+ mkdirp(self.prefix.bin)
+ install(
+ join_path(self.stage.source_path, 'wannier90.x'),
+ join_path(self.prefix.bin, 'wannier90.x')
+ )
+
+ make('post')
+ install(
+ join_path(self.stage.source_path, 'postw90.x'),
+ join_path(self.prefix.bin, 'postw90.x')
+ )
+
+ make('lib')
+ mkdirp(self.prefix.lib)
+ install(
+ join_path(self.stage.source_path, 'libwannier.a'),
+ join_path(self.prefix.lib, 'libwannier.a')
+ )
+
+ make('w90chk2chk')
+ install(
+ join_path(self.stage.source_path, 'w90chk2chk.x'),
+ join_path(self.prefix.bin, 'w90chk2chk.x')
+ )
+
+ make('w90vdw')
+ install(
+ join_path(self.stage.source_path, 'utility', 'w90vdw', 'w90vdw.x'),
+ join_path(self.prefix.bin, 'w90vdw.x')
+ )
+
+ make('w90pov')
+ install(
+ join_path(self.stage.source_path, 'utility', 'w90pov', 'w90pov'),
+ join_path(self.prefix.bin, 'w90pov')
+ )
+
+ install_tree(
+ join_path(self.stage.source_path, 'pseudo'),
+ join_path(self.prefix.bin, 'pseudo')
+ )
diff --git a/var/spack/repos/builtin/packages/wget/package.py b/var/spack/repos/builtin/packages/wget/package.py
index 532cf332e9..aff771b723 100644
--- a/var/spack/repos/builtin/packages/wget/package.py
+++ b/var/spack/repos/builtin/packages/wget/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Wget(Package):
"""GNU Wget is a free software package for retrieving files using
HTTP, HTTPS and FTP, the most widely-used Internet protocols. It
@@ -40,9 +41,11 @@ class Wget(Package):
depends_on("openssl")
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--with-ssl=openssl",
- "OPENSSL_CFLAGS=-I%s" % spec['openssl'].prefix.include,
- "OPENSSL_LIBS=-L%s -lssl -lcrypto -lz" % spec['openssl'].prefix.lib)
+ configure(
+ "--prefix=%s" % prefix,
+ "--with-ssl=openssl",
+ "OPENSSL_CFLAGS=-I%s" % spec['openssl'].prefix.include,
+ "OPENSSL_LIBS=-L%s -lssl -lcrypto -lz" % spec[
+ 'openssl'].prefix.lib)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/windowswmproto/package.py b/var/spack/repos/builtin/packages/windowswmproto/package.py
new file mode 100644
index 0000000000..f163d1afb0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/windowswmproto/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Windowswmproto(Package):
+ """This module provides the definition of the WindowsWM extension to the
+ X11 protocol, used for coordination between an X11 server and the
+ Microsoft Windows native window manager.
+
+ WindowsWM is only intended to be used on Cygwin when running a
+ rootless XWin server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/windowswmproto"
+ url = "https://www.x.org/archive/individual/proto/windowswmproto-1.0.4.tar.gz"
+
+ version('1.0.4', '558db92a8e4e1b07e9c62eca3f04dd8d')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/wx/package.py b/var/spack/repos/builtin/packages/wx/package.py
index c000824803..42d39df9e6 100644
--- a/var/spack/repos/builtin/packages/wx/package.py
+++ b/var/spack/repos/builtin/packages/wx/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Wx(Package):
"""wxWidgets is a C++ library that lets developers create
applications for Windows, Mac OS X, Linux and other platforms
@@ -34,17 +35,24 @@ class Wx(Package):
rather than emulating the GUI. It's also extensive, free,
open-source and mature."""
homepage = "http://www.wxwidgets.org/"
+ url = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2"
- version('2.8.12', '2fa39da14bc06ea86fe902579fedc5b1',
- url="https://sourceforge.net/projects/wxwindows/files/2.8.12/wxWidgets-2.8.12.tar.gz")
- version('3.0.1', 'dad1f1cd9d4c370cbc22700dc492da31',
- url="https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2")
+ version('3.1.0', '2170839cfa9d9322e8ee8368b21a15a2497b4f11')
+ version('3.0.2', '6461eab4428c0a8b9e41781b8787510484dea800')
+ version('3.0.1', '73e58521d6871c9f4d1e7974c6e3a81629fddcf8')
depends_on('gtkplus')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers")
+ def make_wx(self):
+ make()
+ @when('@:3.0.2')
+ def make_wx(self):
make(parallel=False)
- make("install")
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix, "--enable-unicode",
+ "--disable-precomp-headers")
+
+ self.make_wx()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/wxpropgrid/package.py b/var/spack/repos/builtin/packages/wxpropgrid/package.py
index 2283e1acf1..cc9ff445d6 100644
--- a/var/spack/repos/builtin/packages/wxpropgrid/package.py
+++ b/var/spack/repos/builtin/packages/wxpropgrid/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Wxpropgrid(Package):
"""wxPropertyGrid is a property sheet control for wxWidgets. In
other words, it is a specialized two-column grid for editing
@@ -37,8 +38,8 @@ class Wxpropgrid(Package):
depends_on("wx")
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix, "--with-wxdir=%s" % spec['wx'].prefix.bin, "--enable-unicode")
+ configure("--prefix=%s" % prefix, "--with-wxdir=%s" %
+ spec['wx'].prefix.bin, "--enable-unicode")
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/x11perf/package.py b/var/spack/repos/builtin/packages/x11perf/package.py
new file mode 100644
index 0000000000..91db1e8a59
--- /dev/null
+++ b/var/spack/repos/builtin/packages/x11perf/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class X11perf(Package):
+ """Simple X server performance benchmarker."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/x11perf"
+ url = "https://www.x.org/archive/individual/app/x11perf-1.6.0.tar.gz"
+
+ version('1.6.0', '8dcdb74db8c70dca4b4eab11dc33dd31')
+
+ depends_on('libx11')
+ depends_on('libxmu')
+ depends_on('libxrender')
+ depends_on('libxft')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xauth/package.py b/var/spack/repos/builtin/packages/xauth/package.py
new file mode 100644
index 0000000000..6d6a03c899
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xauth/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xauth(Package):
+ """The xauth program is used to edit and display the authorization
+ information used in connecting to the X server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xauth"
+ url = "https://www.x.org/archive/individual/app/xauth-1.0.9.tar.gz"
+
+ version('1.0.9', 'def3b4588504ee3d8ec7be607826df02')
+
+ depends_on('libx11')
+ depends_on('libxau')
+ depends_on('libxext')
+ depends_on('libxmu')
+
+ depends_on('xproto@7.0.17:')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ # make('check') # TODO: add package for cmdtest build dependency
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xbacklight/package.py b/var/spack/repos/builtin/packages/xbacklight/package.py
new file mode 100644
index 0000000000..f1a9ecc124
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xbacklight/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xbacklight(Package):
+ """Xbacklight is used to adjust the backlight brightness where supported.
+ It uses the RandR extension to find all outputs on the X server
+ supporting backlight brightness control and changes them all in the
+ same way."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xbacklight"
+ url = "https://www.x.org/archive/individual/app/xbacklight-1.2.1.tar.gz"
+
+ version('1.2.1', 'e8e4c86b0f867e23aa3532618a697609')
+
+ depends_on('libxcb')
+ depends_on('xcb-util')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xbiff/package.py b/var/spack/repos/builtin/packages/xbiff/package.py
new file mode 100644
index 0000000000..f5c53c5997
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xbiff/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xbiff(Package):
+ """xbiff provides graphical notification of new e-mail.
+ It only handles mail stored in a filesystem accessible file,
+ not via IMAP, POP or other remote access protocols."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xbiff"
+ url = "https://www.x.org/archive/individual/app/xbiff-1.0.3.tar.gz"
+
+ version('1.0.3', '779c888cb45da82a612e7f47971df9ab')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxext')
+ depends_on('libx11')
+
+ depends_on('xbitmaps', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xbitmaps/package.py b/var/spack/repos/builtin/packages/xbitmaps/package.py
new file mode 100644
index 0000000000..1c6fb79d3a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xbitmaps/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xbitmaps(Package):
+ """The xbitmaps package contains bitmap images used by multiple
+ applications built in Xorg."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/data/bitmaps/"
+ url = "https://www.x.org/archive/individual/data/xbitmaps-1.1.1.tar.gz"
+
+ version('1.1.1', '288bbe310db67280a9e2e5ebc5602595')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcalc/package.py b/var/spack/repos/builtin/packages/xcalc/package.py
new file mode 100644
index 0000000000..a470d1c9d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcalc/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xcalc(Package):
+ """xcalc is a scientific calculator X11 client that can emulate a TI-30
+ or an HP-10C."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xcalc"
+ url = "https://www.x.org/archive/individual/app/xcalc-1.0.6.tar.gz"
+
+ version('1.0.6', 'a192ebb5e5f33925c71713501173d8e0')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-demo/package.py b/var/spack/repos/builtin/packages/xcb-demo/package.py
new file mode 100644
index 0000000000..62433e3b32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-demo/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbDemo(Package):
+ """xcb-demo: A collection of demo programs that use the XCB library."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-demo-0.1.tar.gz"
+
+ version('0.1', '803c5c91d54e734e6f6fa3f04f2463ff')
+
+ depends_on('libxcb')
+ depends_on('xcb-util')
+ depends_on('xcb-util-image')
+ depends_on('xcb-util-wm')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ # FIXME: crashes with the following error message
+ # X11/XCB/xcb.h: No such file or directory
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-proto/package.py b/var/spack/repos/builtin/packages/xcb-proto/package.py
index efcbdf0aea..d2ac54d34f 100644
--- a/var/spack/repos/builtin/packages/xcb-proto/package.py
+++ b/var/spack/repos/builtin/packages/xcb-proto/package.py
@@ -24,16 +24,21 @@
##############################################################################
from spack import *
+
class XcbProto(Package):
- """Protocol for libxcb"""
+ """xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to
+ generate the majority of its code and API."""
homepage = "http://xcb.freedesktop.org/"
url = "http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.gz"
+ version('1.12', '5ee1ec124ea8d56bd9e83b8e9e0b84c4')
version('1.11', 'c8c6cb72c84f58270f4db1f39607f66a')
+ extends('python')
+
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure('--prefix={0}'.format(prefix))
- make()
- make("install")
+ # make('check') # fails xmllint validation
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-cursor/package.py b/var/spack/repos/builtin/packages/xcb-util-cursor/package.py
new file mode 100644
index 0000000000..b25fb181a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-cursor/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilCursor(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.gz"
+
+ version('0.1.3', '4b0768fa497127131a47f07e5c8cf745')
+
+ depends_on('libxcb@1.4:')
+ depends_on('xcb-util-renderutil')
+ depends_on('xcb-util-image')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-errors/package.py b/var/spack/repos/builtin/packages/xcb-util-errors/package.py
new file mode 100644
index 0000000000..c287a0ec6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-errors/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilErrors(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.gz"
+
+ version('1.0', 'dc4a6ce073a81a0b7e614a2988f275cc')
+
+ depends_on('libxcb@1.4:')
+
+ depends_on('xcb-proto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-image/package.py b/var/spack/repos/builtin/packages/xcb-util-image/package.py
new file mode 100644
index 0000000000..4413c7e11d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-image/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilImage(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.gz"
+
+ version('0.4.0', '32c9c2f72ebd58a2b2e210f27fee86f7')
+
+ depends_on('libxcb@1.4:')
+ depends_on('xcb-util')
+
+ depends_on('xproto@7.0.8:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py
new file mode 100644
index 0000000000..0de6391b18
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilKeysyms(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.gz"
+
+ version('0.4.0', '2decde7b02b4b3bde99a02c17b64d5dc')
+
+ depends_on('libxcb@1.4:')
+
+ depends_on('xproto@7.0.8:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py
new file mode 100644
index 0000000000..d41c88206c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilRenderutil(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.gz"
+
+ version('0.3.9', 'ac18c1b70ae69845e112f1d987926436')
+
+ depends_on('libxcb@1.4:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util-wm/package.py b/var/spack/repos/builtin/packages/xcb-util-wm/package.py
new file mode 100644
index 0000000000..ef3db06aec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util-wm/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtilWm(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.gz"
+
+ version('0.4.1', '0831399918359bf82930124fa9fd6a9b')
+
+ depends_on('libxcb@1.4:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcb-util/package.py b/var/spack/repos/builtin/packages/xcb-util/package.py
new file mode 100644
index 0000000000..820592a319
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcb-util/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcbUtil(Package):
+ """The XCB util modules provides a number of libraries which sit on top
+ of libxcb, the core X protocol library, and some of the extension
+ libraries. These experimental libraries provide convenience functions
+ and interfaces which make the raw X protocol more usable. Some of the
+ libraries also provide client-side code which is not strictly part of
+ the X protocol but which have traditionally been provided by Xlib."""
+
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.gz"
+
+ version('0.4.0', '157d82738aa89934b6adaf3ca508a0f5')
+
+ depends_on('libxcb@1.4:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xclipboard/package.py b/var/spack/repos/builtin/packages/xclipboard/package.py
new file mode 100644
index 0000000000..d9af19da71
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xclipboard/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xclipboard(Package):
+ """xclipboard is used to collect and display text selections that are
+ sent to the CLIPBOARD by other clients. It is typically used to save
+ CLIPBOARD selections for later use. It stores each CLIPBOARD
+ selection as a separate string, each of which can be selected."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xclipboard"
+ url = "https://www.x.org/archive/individual/app/xclipboard-1.1.3.tar.gz"
+
+ version('1.1.3', 'cee91df9df1b5d63034681546fd78c0b')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt@1.1:')
+ depends_on('libx11')
+ depends_on('libxkbfile')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xclock/package.py b/var/spack/repos/builtin/packages/xclock/package.py
new file mode 100644
index 0000000000..5bd38826db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xclock/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xclock(Package):
+ """xclock is the classic X Window System clock utility. It displays
+ the time in analog or digital form, continuously updated at a
+ frequency which may be specified by the user."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xclock"
+ url = "https://www.x.org/archive/individual/app/xclock-1.0.7.tar.gz"
+
+ version('1.0.7', 'bbade10e6234d8db276212014e8c77fa')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libx11')
+ depends_on('libxrender')
+ depends_on('libxft')
+ depends_on('libxkbfile')
+ depends_on('libxt')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcmiscproto/package.py b/var/spack/repos/builtin/packages/xcmiscproto/package.py
new file mode 100644
index 0000000000..2b15d1b3e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcmiscproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xcmiscproto(Package):
+ """XC-MISC Extension.
+
+ This extension defines a protocol that provides Xlib two ways to query
+ the server for available resource IDs."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xcmiscproto"
+ url = "https://www.x.org/archive/individual/proto/xcmiscproto-1.2.2.tar.gz"
+
+ version('1.2.2', 'ded6cd23fb2800df93ebf2b3f3b01119')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcmsdb/package.py b/var/spack/repos/builtin/packages/xcmsdb/package.py
new file mode 100644
index 0000000000..4d12e3a843
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcmsdb/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xcmsdb(Package):
+ """xcmsdb is used to load, query, or remove Device Color Characterization
+ data stored in properties on the root window of the screen as
+ specified in section 7, Device Color Characterization, of the
+ X11 Inter-Client Communication Conventions Manual (ICCCM)."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xcmsdb"
+ url = "https://www.x.org/archive/individual/app/xcmsdb-1.0.5.tar.gz"
+
+ version('1.0.5', 'e7b1699c831b44d7005bff45977ed56a')
+
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcompmgr/package.py b/var/spack/repos/builtin/packages/xcompmgr/package.py
new file mode 100644
index 0000000000..fc5bbb4b9c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcompmgr/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xcompmgr(Package):
+ """xcompmgr is a sample compositing manager for X servers supporting the
+ XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables basic
+ eye-candy effects."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xcompmgr"
+ url = "https://www.x.org/archive/individual/app/xcompmgr-1.1.7.tar.gz"
+
+ version('1.1.7', '4992895c8934bbc99bb2447dfe5081f2')
+
+ depends_on('libxcomposite')
+ depends_on('libxfixes')
+ depends_on('libxdamage')
+ depends_on('libxrender')
+ depends_on('libxext')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xconsole/package.py b/var/spack/repos/builtin/packages/xconsole/package.py
new file mode 100644
index 0000000000..f86fe753b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xconsole/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xconsole(Package):
+ """xconsole displays in a X11 window the messages which are usually sent
+ to /dev/console."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xconsole"
+ url = "https://www.x.org/archive/individual/app/xconsole-1.0.6.tar.gz"
+
+ version('1.0.6', '46cb988e31a0cf9a02c2bbc4a82bd572')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt@1.0:')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xcursor-themes/package.py b/var/spack/repos/builtin/packages/xcursor-themes/package.py
new file mode 100644
index 0000000000..7c38c9999c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcursor-themes/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XcursorThemes(Package):
+ """This is a default set of cursor themes for use with libXcursor,
+ originally created for the XFree86 Project, and now shipped as part
+ of the X.Org software distribution."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/data/cursors"
+ url = "https://www.x.org/archive/individual/data/xcursor-themes-1.0.4.tar.gz"
+
+ version('1.0.4', 'c82628f35e9950ba225050ad5803b92a')
+
+ depends_on('libxcursor')
+
+ depends_on('xcursorgen', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
+
+ # `make install` copies the files to the libxcursor installation.
+ # Create a fake directory to convince Spack that we actually
+ # installed something.
+ mkdir(prefix.lib)
diff --git a/var/spack/repos/builtin/packages/xcursorgen/package.py b/var/spack/repos/builtin/packages/xcursorgen/package.py
new file mode 100644
index 0000000000..4e43844646
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xcursorgen/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xcursorgen(Package):
+ """xcursorgen prepares X11 cursor sets for use with libXcursor."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xcursorgen"
+ url = "https://www.x.org/archive/individual/app/xcursorgen-1.0.6.tar.gz"
+
+ version('1.0.6', '669df84fc30d89c12ce64b95aba26677')
+
+ depends_on('libx11')
+ depends_on('libxcursor')
+ depends_on('libpng@1.2.0:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xdbedizzy/package.py b/var/spack/repos/builtin/packages/xdbedizzy/package.py
new file mode 100644
index 0000000000..7a8f97401f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xdbedizzy/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xdbedizzy(Package):
+ """xdbedizzy is a demo of the X11 Double Buffer Extension (DBE)
+ creating a double buffered spinning scene."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xdbedizzy"
+ url = "https://www.x.org/archive/individual/app/xdbedizzy-1.1.0.tar.gz"
+
+ version('1.1.0', '969be2f6bc62455431ab027f99720dc3')
+
+ depends_on('libx11')
+ depends_on('libxext')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xditview/package.py b/var/spack/repos/builtin/packages/xditview/package.py
new file mode 100644
index 0000000000..3fececd12e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xditview/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xditview(Package):
+ """xditview displays ditroff output on an X display."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xditview"
+ url = "https://www.x.org/archive/individual/app/xditview-1.0.4.tar.gz"
+
+ version('1.0.4', '46dffbbc4de3039fdecabb73d10d6a4f')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xdm/package.py b/var/spack/repos/builtin/packages/xdm/package.py
new file mode 100644
index 0000000000..d42ced9a57
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xdm/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xdm(Package):
+ """X Display Manager / XDMCP server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xdm"
+ url = "https://www.x.org/archive/individual/app/xdm-1.1.11.tar.gz"
+
+ version('1.1.11', 'aaf8c3d05d4a1e689d2d789c99a6023c')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+ depends_on('libxau')
+ depends_on('libxinerama')
+ depends_on('libxft')
+ depends_on('libxpm')
+ depends_on('libxaw')
+ depends_on('libxdmcp')
+ depends_on('libxt')
+ depends_on('libxext')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xdpyinfo/package.py b/var/spack/repos/builtin/packages/xdpyinfo/package.py
new file mode 100644
index 0000000000..c69af3b357
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xdpyinfo/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xdpyinfo(Package):
+ """xdpyinfo is a utility for displaying information about an X server.
+
+ It is used to examine the capabilities of a server, the predefined
+ values for various parameters used in communicating between clients
+ and the server, and the different types of screens, visuals, and X11
+ protocol extensions that are available."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xdpyinfo"
+ url = "https://www.x.org/archive/individual/app/xdpyinfo-1.3.2.tar.gz"
+
+ version('1.3.2', 'dab410719d36c9df690cf3a8cd7d117e')
+
+ depends_on('libxext')
+ depends_on('libx11')
+ depends_on('libxtst')
+ depends_on('libxcb')
+
+ depends_on('xproto@7.0.22:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xdriinfo/package.py b/var/spack/repos/builtin/packages/xdriinfo/package.py
new file mode 100644
index 0000000000..7548175f6f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xdriinfo/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xdriinfo(Package):
+ """xdriinfo - query configuration information of X11 DRI drivers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xdriinfo"
+ url = "https://www.x.org/archive/individual/app/xdriinfo-1.0.5.tar.gz"
+
+ version('1.0.5', '34a4a9ae69c60f4c2566bf9ea4bcf311')
+
+ depends_on('libx11')
+ depends_on('expat')
+ depends_on('libxshmfence')
+ depends_on('libxext')
+ depends_on('libxdamage')
+ depends_on('libxfixes')
+ depends_on('pcre')
+
+ depends_on('glproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xedit/package.py b/var/spack/repos/builtin/packages/xedit/package.py
new file mode 100644
index 0000000000..da5f28809f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xedit/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xedit(Package):
+ """Xedit is a simple text editor for X."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/app/xedit"
+ url = "https://www.x.org/archive/individual/app/xedit-1.2.2.tar.gz"
+
+ version('1.2.2', '9fb9d6f63b574e5a4937384fbe6579c1')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt@1.0:')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xerces-c/package.py b/var/spack/repos/builtin/packages/xerces-c/package.py
index 2efccc3c08..9f3ad8a4dc 100644
--- a/var/spack/repos/builtin/packages/xerces-c/package.py
+++ b/var/spack/repos/builtin/packages/xerces-c/package.py
@@ -24,16 +24,18 @@
##############################################################################
from spack import *
+
class XercesC(Package):
- """ Xerces-C++ is a validating XML parser written in a portable subset of C++.
- Xerces-C++ makes it easy to give your application the ability to read and
- write XML data. A shared library is provided for parsing, generating,
- manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.
+ """Xerces-C++ is a validating XML parser written in a portable subset of
+ C++. Xerces-C++ makes it easy to give your application the ability to read
+ and write XML data. A shared library is provided for parsing, generating,
+ manipulating, and validating XML documents using the DOM, SAX, and SAX2
+ APIs.
"""
homepage = "https://xerces.apache.org/xerces-c"
- url = "https://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.3.tar.bz2"
- version('3.1.3', '5e333b55cb43e6b025ddf0e5d0f0fb0d')
+ url = "https://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.bz2"
+ version('3.1.4', 'd04ae9d8b2dee2157c6db95fa908abfd')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
@@ -41,4 +43,3 @@ class XercesC(Package):
make("clean")
make()
make("install")
-
diff --git a/var/spack/repos/builtin/packages/xev/package.py b/var/spack/repos/builtin/packages/xev/package.py
new file mode 100644
index 0000000000..5727d4e428
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xev/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xev(Package):
+ """xev creates a window and then asks the X server to send it X11 events
+ whenever anything happens to the window (such as it being moved,
+ resized, typed in, clicked in, etc.). You can also attach it to an
+ existing window. It is useful for seeing what causes events to occur
+ and to display the information that they contain; it is essentially a
+ debugging and development tool, and should not be needed in normal
+ usage."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xev"
+ url = "https://www.x.org/archive/individual/app/xev-1.2.2.tar.gz"
+
+ version('1.2.2', 'fdb374f77cdad8e104b989a0148c4c1f')
+
+ depends_on('libxrandr@1.2:')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xextproto/package.py b/var/spack/repos/builtin/packages/xextproto/package.py
new file mode 100644
index 0000000000..9c1c123527
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xextproto/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xextproto(Package):
+ """X Protocol Extensions."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xextproto"
+ url = "https://www.x.org/archive/individual/proto/xextproto-7.3.0.tar.gz"
+
+ version('7.3.0', '37b700baa8c8ea7964702d948dd13821')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xeyes/package.py b/var/spack/repos/builtin/packages/xeyes/package.py
new file mode 100644
index 0000000000..cfea92fda3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xeyes/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xeyes(Package):
+ """xeyes - a follow the mouse X demo, using the X SHAPE extension"""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xeyes"
+ url = "https://www.x.org/archive/individual/app/xeyes-1.1.1.tar.gz"
+
+ version('1.1.1', '2c0522bce5c61bbe784d2b3491998d31')
+
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxext')
+ depends_on('libxmu')
+ depends_on('libxrender@0.4:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86bigfontproto/package.py b/var/spack/repos/builtin/packages/xf86bigfontproto/package.py
new file mode 100644
index 0000000000..6c1dc8f37d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86bigfontproto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86bigfontproto(Package):
+ """X.org XF86BigFontProto protocol headers."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86bigfontproto"
+ url = "https://www.x.org/archive/individual/proto/xf86bigfontproto-1.2.0.tar.gz"
+
+ version('1.2.0', '91b0733ff4cbe55808d96073258aa3d1')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86dga/package.py b/var/spack/repos/builtin/packages/xf86dga/package.py
new file mode 100644
index 0000000000..8add6fbca7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86dga/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86dga(Package):
+ """dga is a simple test client for the XFree86-DGA extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xf86dga"
+ url = "https://www.x.org/archive/individual/app/xf86dga-1.0.3.tar.gz"
+
+ version('1.0.3', '3b87bb916c9df68cf5e4e969307b25b5')
+
+ depends_on('libx11')
+ depends_on('libxxf86dga@1.1:')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86dgaproto/package.py b/var/spack/repos/builtin/packages/xf86dgaproto/package.py
new file mode 100644
index 0000000000..05b64c9534
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86dgaproto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86dgaproto(Package):
+ """X.org XF86DGAProto protocol headers."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86dgaproto"
+ url = "https://www.x.org/archive/individual/proto/xf86dgaproto-2.1.tar.gz"
+
+ version('2.1', '1fe79dc07857ad3e1fb8b8f2bdd70d1b')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86driproto/package.py b/var/spack/repos/builtin/packages/xf86driproto/package.py
new file mode 100644
index 0000000000..655d1bc60b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86driproto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86driproto(Package):
+ """XFree86 Direct Rendering Infrastructure Extension.
+
+ This extension defines a protocol to allow user applications to access
+ the video hardware without requiring data to be passed through the X
+ server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xf86driproto"
+ url = "https://www.x.org/archive/individual/proto/xf86driproto-2.1.1.tar.gz"
+
+ version('2.1.1', '3ba16a48d8d9f9f746f9bd281ba8fb3f')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86miscproto/package.py b/var/spack/repos/builtin/packages/xf86miscproto/package.py
new file mode 100644
index 0000000000..4b7e279077
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86miscproto/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86miscproto(Package):
+ """This package includes the protocol definitions of the "XFree86-Misc"
+ extension to the X11 protocol. The "XFree86-Misc" extension is
+ supported by the XFree86 X server and versions of the Xorg X server
+ prior to Xorg 1.6."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xf86miscproto"
+ url = "https://www.x.org/archive/individual/proto/xf86miscproto-0.9.3.tar.gz"
+
+ version('0.9.3', 'c6432f04f84929c94fa05b3a466c489d')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86rushproto/package.py b/var/spack/repos/builtin/packages/xf86rushproto/package.py
new file mode 100644
index 0000000000..bdd192970b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86rushproto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86rushproto(Package):
+ """X.org XF86RushProto protocol headers."""
+
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86rushproto"
+ url = "https://www.x.org/archive/individual/proto/xf86rushproto-1.1.2.tar.gz"
+
+ version('1.1.2', '6a6389473332ace01146cccfef228576')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py
new file mode 100644
index 0000000000..ece389f9e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xf86vidmodeproto(Package):
+ """XFree86 Video Mode Extension.
+
+ This extension defines a protocol for dynamically configuring modelines
+ and gamma."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto"
+ url = "https://www.x.org/archive/individual/proto/xf86vidmodeproto-2.3.1.tar.gz"
+
+ version('2.3.1', '99016d0fe355bae0bb23ce00fb4d4a2c')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfd/package.py b/var/spack/repos/builtin/packages/xfd/package.py
new file mode 100644
index 0000000000..669cd83bf5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfd/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfd(Package):
+ """xfd - display all the characters in a font using either the
+ X11 core protocol or libXft2."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfd"
+ url = "https://www.x.org/archive/individual/app/xfd-1.1.2.tar.gz"
+
+ version('1.1.2', '12fe8f7c3e71352bf22124ad56d4ceaf')
+
+ depends_on('libxaw')
+ depends_on('fontconfig')
+ depends_on('libxft')
+ depends_on('libxrender')
+ depends_on('libxmu')
+ depends_on('libxt')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfindproxy/package.py b/var/spack/repos/builtin/packages/xfindproxy/package.py
new file mode 100644
index 0000000000..e4b83433c4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfindproxy/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfindproxy(Package):
+ """xfindproxy is used to locate available X11 proxy services.
+
+ It utilizes the Proxy Management Protocol to communicate with a proxy
+ manager. The proxy manager keeps track of all available proxy
+ services, starts new proxies when necessary, and makes sure that
+ proxies are shared whenever possible."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfindproxy"
+ url = "https://www.x.org/archive/individual/app/xfindproxy-1.0.4.tar.gz"
+
+ version('1.0.4', 'd0a7b53ae5827b342bccd3ebc7ec672f')
+
+ depends_on('libice')
+ depends_on('libxt')
+
+ depends_on('xproto', type='build')
+ depends_on('xproxymanagementprotocol', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfontsel/package.py b/var/spack/repos/builtin/packages/xfontsel/package.py
new file mode 100644
index 0000000000..772ff8d570
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfontsel/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfontsel(Package):
+ """xfontsel application provides a simple way to display the X11 core
+ protocol fonts known to your X server, examine samples of each, and
+ retrieve the X Logical Font Description ("XLFD") full name for a font."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfontsel"
+ url = "https://www.x.org/archive/individual/app/xfontsel-1.0.5.tar.gz"
+
+ version('1.0.5', '72a35e7fa786eb2b0194d75eeb4a02e3')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfs/package.py b/var/spack/repos/builtin/packages/xfs/package.py
new file mode 100644
index 0000000000..72429dee90
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfs/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfs(Package):
+ """X Font Server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfs"
+ url = "https://www.x.org/archive/individual/app/xfs-1.1.4.tar.gz"
+
+ version('1.1.4', '0818a2e0317e0f0a1e8a15ca811827e2')
+
+ depends_on('libxfont@1.4.5:')
+ depends_on('font-util')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfsinfo/package.py b/var/spack/repos/builtin/packages/xfsinfo/package.py
new file mode 100644
index 0000000000..b31ad1c1e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfsinfo/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfsinfo(Package):
+ """xfsinfo is a utility for displaying information about an X font
+ server. It is used to examine the capabilities of a server, the
+ predefined values for various parameters used in communicating between
+ clients and the server, and the font catalogues and alternate servers
+ that are available."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfsinfo"
+ url = "https://www.x.org/archive/individual/app/xfsinfo-1.0.5.tar.gz"
+
+ version('1.0.5', '36b64a3f37b87c759c5d17634e129fb9')
+
+ depends_on('libfs')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xfwp/package.py b/var/spack/repos/builtin/packages/xfwp/package.py
new file mode 100644
index 0000000000..5f073a8806
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfwp/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xfwp(Package):
+ """xfwp proxies X11 protocol connections, such as through a firewall."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xfwp"
+ url = "https://www.x.org/archive/individual/app/xfwp-1.0.3.tar.gz"
+
+ version('1.0.3', 'e23cc01894ae57e5959ca6a56d0f4f94')
+
+ depends_on('libice')
+
+ depends_on('xproto', type='build')
+ depends_on('xproxymanagementprotocol', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ # FIXME: fails with the error message:
+ # io.c:1039:7: error: implicit declaration of function 'swab'
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xgamma/package.py b/var/spack/repos/builtin/packages/xgamma/package.py
new file mode 100644
index 0000000000..b8abec293a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xgamma/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xgamma(Package):
+ """xgamma allows X users to query and alter the gamma correction of a
+ monitor via the X video mode extension (XFree86-VidModeExtension)."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xgamma"
+ url = "https://www.x.org/archive/individual/app/xgamma-1.0.6.tar.gz"
+
+ version('1.0.6', 'ac4f91bf1d9aa0433152ba6196288cc6')
+
+ depends_on('libx11')
+ depends_on('libxxf86vm')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xgc/package.py b/var/spack/repos/builtin/packages/xgc/package.py
new file mode 100644
index 0000000000..608e6e0360
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xgc/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xgc(Package):
+ """xgc is an X11 graphics demo that shows various features of the X11
+ core protocol graphics primitives."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xgc"
+ url = "https://www.x.org/archive/individual/app/xgc-1.0.5.tar.gz"
+
+ version('1.0.5', '605557a9c138f6dc848c87a21bc7c7fc')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xhost/package.py b/var/spack/repos/builtin/packages/xhost/package.py
new file mode 100644
index 0000000000..f01c481ee7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xhost/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xhost(Package):
+ """xhost is used to manage the list of host names or user names
+ allowed to make connections to the X server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xhost"
+ url = "https://www.x.org/archive/individual/app/xhost-1.0.7.tar.gz"
+
+ version('1.0.7', 'de34b4ba5194634dbeb29a1f008f495a')
+
+ depends_on('libx11')
+ depends_on('libxmu')
+ depends_on('libxau')
+
+ depends_on('xproto@7.0.22:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xineramaproto/package.py b/var/spack/repos/builtin/packages/xineramaproto/package.py
new file mode 100644
index 0000000000..baededbb25
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xineramaproto/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xineramaproto(Package):
+ """X Xinerama Extension.
+
+ This is an X extension that allows multiple physical screens controlled
+ by a single X server to appear as a single screen."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/xineramaproto"
+ url = "https://www.x.org/archive/individual/proto/xineramaproto-1.2.1.tar.gz"
+
+ version('1.2.1', 'e0e148b11739e144a546b8a051b17dde')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xinit/package.py b/var/spack/repos/builtin/packages/xinit/package.py
new file mode 100644
index 0000000000..9f3bc09229
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xinit/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xinit(Package):
+ """The xinit program is used to start the X Window System server and a
+ first client program on systems that are not using a display manager
+ such as xdm."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xinit"
+ url = "https://www.x.org/archive/individual/app/xinit-1.3.4.tar.gz"
+
+ version('1.3.4', '91c5697345016ec7841f5e5fccbe7a4c')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xinput/package.py b/var/spack/repos/builtin/packages/xinput/package.py
new file mode 100644
index 0000000000..3c4fb35503
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xinput/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xinput(Package):
+ """xinput is a utility to configure and test XInput devices."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xinput"
+ url = "https://www.x.org/archive/individual/app/xinput-1.6.2.tar.gz"
+
+ version('1.6.2', '6684f6015298d22936438173be3b7ef5')
+
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxi@1.5.99.1:')
+ depends_on('libxrandr')
+ depends_on('libxinerama')
+
+ depends_on('inputproto@2.1.99.1:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkbcomp/package.py b/var/spack/repos/builtin/packages/xkbcomp/package.py
new file mode 100644
index 0000000000..e6e8875fa7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkbcomp/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkbcomp(Package):
+ """The X Keyboard (XKB) Extension essentially replaces the core protocol
+ definition of a keyboard. The extension makes it possible to specify
+ clearly and explicitly most aspects of keyboard behaviour on a per-key
+ basis, and to track more closely the logical and physical state of a
+ keyboard. It also includes a number of keyboard controls designed to
+ make keyboards more accessible to people with physical impairments."""
+
+ homepage = "https://www.x.org/wiki/XKB/"
+ url = "https://www.x.org/archive/individual/app/xkbcomp-1.3.1.tar.gz"
+
+ version('1.3.1', '9e8ca110ed40d4703f8f73d99bc81576')
+
+ depends_on('libx11')
+ depends_on('libxkbfile')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('bison', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkbdata/package.py b/var/spack/repos/builtin/packages/xkbdata/package.py
new file mode 100644
index 0000000000..fc84631e36
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkbdata/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkbdata(Package):
+ """The XKB data files for the various keyboard models, layouts,
+ and locales."""
+
+ homepage = "https://www.x.org/wiki/XKB/"
+ url = "https://www.x.org/archive/individual/data/xkbdata-1.0.1.tar.gz"
+
+ version('1.0.1', 'a7e0fbc9cc84c621243c777694388064')
+
+ depends_on('xkbcomp', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkbevd/package.py b/var/spack/repos/builtin/packages/xkbevd/package.py
new file mode 100644
index 0000000000..462d989db2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkbevd/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkbevd(Package):
+ """XKB event daemon demo."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xkbevd"
+ url = "https://www.x.org/archive/individual/app/xkbevd-1.1.4.tar.gz"
+
+ version('1.1.4', '0e9e05761551b1e58bd541231f90ae87')
+
+ depends_on('libxkbfile')
+ depends_on('libx11')
+
+ depends_on('bison', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkbprint/package.py b/var/spack/repos/builtin/packages/xkbprint/package.py
new file mode 100644
index 0000000000..dc92ac4126
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkbprint/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkbprint(Package):
+ """xkbprint generates a printable or encapsulated PostScript description
+ of an XKB keyboard description."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xkbprint"
+ url = "https://www.x.org/archive/individual/app/xkbprint-1.0.4.tar.gz"
+
+ version('1.0.4', '4dd9d4fdbdc08f70dc402da149e4d5d8')
+
+ depends_on('libxkbfile')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkbutils/package.py b/var/spack/repos/builtin/packages/xkbutils/package.py
new file mode 100644
index 0000000000..a4c6c97578
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkbutils/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkbutils(Package):
+ """xkbutils is a collection of small utilities utilizing the XKeyboard
+ (XKB) extension to the X11 protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xkbutils"
+ url = "https://www.x.org/archive/individual/app/xkbutils-1.0.4.tar.gz"
+
+ version('1.0.4', '6b898346b84e07c2f13b097193ca0413')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('inputproto', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkeyboard-config/package.py b/var/spack/repos/builtin/packages/xkeyboard-config/package.py
new file mode 100644
index 0000000000..3ad7ea197c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkeyboard-config/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XkeyboardConfig(Package):
+ """This project provides a consistent, well-structured, frequently
+ released, open source database of keyboard configuration data. The
+ project is targeted to XKB-based systems."""
+
+ homepage = "https://www.freedesktop.org/wiki/Software/XKeyboardConfig/"
+ url = "https://www.x.org/archive/individual/data/xkeyboard-config/xkeyboard-config-2.18.tar.gz"
+
+ version('2.18', '96c43e04dbfbb1e6e6abd4678292062c')
+
+ depends_on('libx11@1.4.3:')
+
+ depends_on('libxslt', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('intltool@0.30:', type='build')
+ depends_on('xproto@7.0.20:', type='build')
+
+ # TODO: missing dependencies
+ # xgettext
+ # msgmerge
+ # msgfmt
+ # gmsgfmt
+ # perl@5.8.1:
+ # perl XML::Parser
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xkill/package.py b/var/spack/repos/builtin/packages/xkill/package.py
new file mode 100644
index 0000000000..061d756eec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xkill/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xkill(Package):
+ """xkill is a utility for forcing the X server to close connections to
+ clients. This program is very dangerous, but is useful for aborting
+ programs that have displayed undesired windows on a user's screen."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xkill"
+ url = "https://www.x.org/archive/individual/app/xkill-1.0.4.tar.gz"
+
+ version('1.0.4', 'b04c15bfd0b619f1e4ff3e44607e738d')
+
+ depends_on('libx11')
+ depends_on('libxmu')
+
+ depends_on('xproto@7.0.22:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xload/package.py b/var/spack/repos/builtin/packages/xload/package.py
new file mode 100644
index 0000000000..2fc91043b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xload/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xload(Package):
+ """xload displays a periodically updating histogram of the
+ system load average."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xload"
+ url = "https://www.x.org/archive/individual/app/xload-1.1.2.tar.gz"
+
+ version('1.1.2', '0af9a68193849b16f8168f096682efb4')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xlogo/package.py b/var/spack/repos/builtin/packages/xlogo/package.py
new file mode 100644
index 0000000000..77f5bd3639
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlogo/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xlogo(Package):
+ """The xlogo program simply displays the X Window System logo."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xlogo"
+ url = "https://www.x.org/archive/individual/app/xlogo-1.0.4.tar.gz"
+
+ version('1.0.4', '4c4f82c196a55a90800a77906f4353fb')
+
+ depends_on('libsm')
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt@1.0:')
+ depends_on('libxext')
+ depends_on('libx11')
+ depends_on('libxft')
+ depends_on('libxrender')
+ depends_on('libxt')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xlsatoms/package.py b/var/spack/repos/builtin/packages/xlsatoms/package.py
new file mode 100644
index 0000000000..8722b57c8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlsatoms/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xlsatoms(Package):
+ """xlsatoms lists the interned atoms defined on an X11 server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xlsatoms"
+ url = "https://www.x.org/archive/individual/app/xlsatoms-1.1.2.tar.gz"
+
+ version('1.1.2', '1f32e2b8c2135b5867291517848cb396')
+
+ depends_on('libxcb', when='@1.1:')
+ depends_on('libx11', when='@:1.0')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xlsclients/package.py b/var/spack/repos/builtin/packages/xlsclients/package.py
new file mode 100644
index 0000000000..3714de2706
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlsclients/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xlsclients(Package):
+ """xlsclients is a utility for listing information about the client
+ applications running on a X11 server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xlsclients"
+ url = "https://www.x.org/archive/individual/app/xlsclients-1.1.3.tar.gz"
+
+ version('1.1.3', '093c748d98b61dbddcaf3de1740fbd26')
+
+ depends_on('libxcb@1.6:', when='@1.1:')
+ depends_on('libx11', when='@:1.0')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xlsfonts/package.py b/var/spack/repos/builtin/packages/xlsfonts/package.py
new file mode 100644
index 0000000000..011ca5aa0e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlsfonts/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xlsfonts(Package):
+ """xlsfonts lists fonts available from an X server via the X11
+ core protocol."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xlsfonts"
+ url = "https://www.x.org/archive/individual/app/xlsfonts-1.0.5.tar.gz"
+
+ version('1.0.5', '074cc44e5238c6a501523ef06caba517')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmag/package.py b/var/spack/repos/builtin/packages/xmag/package.py
new file mode 100644
index 0000000000..27843299c8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmag/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmag(Package):
+ """xmag displays a magnified snapshot of a portion of an X11 screen."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xmag"
+ url = "https://www.x.org/archive/individual/app/xmag-1.0.6.tar.gz"
+
+ version('1.0.6', '2827ae4b293535623b9f7b659c506dcd')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xman/package.py b/var/spack/repos/builtin/packages/xman/package.py
new file mode 100644
index 0000000000..629a457edc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xman/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xman(Package):
+ """xman is a graphical manual page browser using the Athena Widgets (Xaw)
+ toolkit."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xman"
+ url = "https://www.x.org/archive/individual/app/xman-1.1.4.tar.gz"
+
+ version('1.1.4', 'f4238c79ee7227ea193898fc159f31e5')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmessage/package.py b/var/spack/repos/builtin/packages/xmessage/package.py
new file mode 100644
index 0000000000..9b2ee5102e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmessage/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmessage(Package):
+ """xmessage displays a message or query in a window. The user can click
+ on an "okay" button to dismiss it or can select one of several buttons
+ to answer a question. xmessage can also exit after a specified time."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xmessage"
+ url = "https://www.x.org/archive/individual/app/xmessage-1.0.4.tar.gz"
+
+ version('1.0.4', '69df5761fbec14c782948065a6f36028')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmh/package.py b/var/spack/repos/builtin/packages/xmh/package.py
new file mode 100644
index 0000000000..cdde63e149
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmh/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmh(Package):
+ """The xmh program provides a graphical user interface to the
+ MH Message Handling System. To actually do things with your
+ mail, it makes calls to the MH package."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xmh"
+ url = "https://www.x.org/archive/individual/app/xmh-1.0.3.tar.gz"
+
+ version('1.0.3', '7547c5a5ab7309a1b10e8ecf48e60105')
+
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libxt')
+ depends_on('libx11')
+
+ depends_on('xbitmaps@1.1.0:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmlto/package.py b/var/spack/repos/builtin/packages/xmlto/package.py
new file mode 100644
index 0000000000..0dbc81de32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmlto/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmlto(Package):
+ """Utility xmlto is a simple shell script for converting XML files to various
+ formats. It serves as easy to use command line frontend to make fine output
+ without remembering many long options and searching for the syntax of the
+ backends."""
+
+ homepage = "http://cyberelk.net/tim/software/xmlto/"
+ url = "https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.28.tar.gz"
+
+ version('0.0.28', 'a1fefad9d83499a15576768f60f847c6')
+
+ # FIXME: missing a lot of dependencies
+ depends_on('libxslt')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmodmap/package.py b/var/spack/repos/builtin/packages/xmodmap/package.py
new file mode 100644
index 0000000000..abe40dbb43
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmodmap/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmodmap(Package):
+ """The xmodmap program is used to edit and display the keyboard modifier
+ map and keymap table that are used by client applications to convert
+ event keycodes into keysyms. It is usually run from the user's
+ session startup script to configure the keyboard according to personal
+ tastes."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xmodmap"
+ url = "https://www.x.org/archive/individual/app/xmodmap-1.0.9.tar.gz"
+
+ version('1.0.9', '771cf86bcdc3589e7add2e761f675099')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xmore/package.py b/var/spack/repos/builtin/packages/xmore/package.py
new file mode 100644
index 0000000000..8f8ccd7138
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xmore/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xmore(Package):
+ """xmore - plain text display program for the X Window System."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xmore"
+ url = "https://www.x.org/archive/individual/app/xmore-1.0.2.tar.gz"
+
+ version('1.0.2', '40b1850494f8af0939a1989c399efa11')
+
+ depends_on('libxaw')
+ depends_on('libxt')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xorg-cf-files/package.py b/var/spack/repos/builtin/packages/xorg-cf-files/package.py
new file mode 100644
index 0000000000..c7b22d904f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xorg-cf-files/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XorgCfFiles(Package):
+ """The xorg-cf-files package contains the data files for the imake utility,
+ defining the known settings for a wide variety of platforms (many of which
+ have not been verified or tested in over a decade), and for many of the
+ libraries formerly delivered in the X.Org monolithic releases."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/util/cf"
+ url = "https://www.x.org/archive/individual/util/xorg-cf-files-1.0.6.tar.gz"
+
+ version('1.0.6', 'c0ce98377c70d95fb48e1bd856109bf8')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xorg-docs/package.py b/var/spack/repos/builtin/packages/xorg-docs/package.py
new file mode 100644
index 0000000000..5c320bba7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xorg-docs/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XorgDocs(Package):
+ """This package provides miscellaneous documentation for the X Window
+ System that doesn't better fit into other packages.
+
+ The preferred documentation format for these documents is DocBook XML."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-docs"
+ url = "https://www.x.org/archive/individual/doc/xorg-docs-1.7.1.tar.gz"
+
+ version('1.7.1', 'ca689ccbf8ebc362afbe5cc5792a4abd')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+ depends_on('xorg-sgml-doctools@1.8:', type='build')
+ depends_on('xmlto', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xorg-gtest/package.py b/var/spack/repos/builtin/packages/xorg-gtest/package.py
new file mode 100644
index 0000000000..6978d610d3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xorg-gtest/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XorgGtest(Package):
+ """Provides a Google Test environment for starting and stopping
+ a X server for testing purposes."""
+
+ homepage = "https://people.freedesktop.org/~cndougla/xorg-gtest/"
+ url = "https://www.x.org/archive/individual/test/xorg-gtest-0.7.1.tar.bz2"
+
+ version('0.7.1', '31beb4d7d2b4eba7f9265fa0cb4c6428')
+
+ depends_on('libx11')
+ depends_on('libxi')
+ depends_on('xorg-server')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ # TODO: may be missing evemu package?
+ # TODO: what is the difference between xorg-gtest and googletest packages?
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xorg-server/package.py b/var/spack/repos/builtin/packages/xorg-server/package.py
new file mode 100644
index 0000000000..9d9b49f9c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xorg-server/package.py
@@ -0,0 +1,108 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XorgServer(Package):
+ """X.Org Server is the free and open source implementation of the display
+ server for the X Window System stewarded by the X.Org Foundation."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/xserver"
+ url = "https://www.x.org/archive/individual/xserver/xorg-server-1.18.99.901.tar.gz"
+
+ version('1.18.99.901', 'd0242b95991c221c4fcc0d283aba7a42')
+
+ depends_on('pixman@0.27.2:')
+ depends_on('font-util')
+ depends_on('libxshmfence@1.1:')
+ depends_on('libdrm@2.3.0:')
+ depends_on('libx11')
+ # depends_on('gl@9.2.0:')
+
+ depends_on('dri2proto@2.8:', type='build')
+ depends_on('dri3proto@1.0:', type='build')
+ depends_on('glproto@1.4.17:', type='build')
+
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ # TODO: add missing dependencies
+ # $LIBSELINUX $REQUIRED_MODULES $REQUIRED_LIBS
+ # $LIBPCIACCESS $DGAPROTO $XORG_MODULES epoxy xdmcp xau xfixes x11-xcb
+ # xcb-aux xcb-image xcb-ewmh xcb-icccm $WINDOWSWMPROTO windowsdriproto
+ # khronos-opengl-registry
+ # $APPLEWMPROTO $LIBAPPLEWM xfixes $LIBDMX $LIBXEXT $LIBDMX xmu $LIBXEXT
+ # $LIBDMX $LIBXI $LIBXEXT $LIBXTST $LIBXEXT xres $LIBXEXT $LIBXEXT
+ # $XEPHYR_REQUIRED_LIBS
+
+ # VIDEOPROTO="videoproto"
+ # COMPOSITEPROTO="compositeproto >= 0.4"
+ # RECORDPROTO="recordproto >= 1.13.99.1"
+ # SCRNSAVERPROTO="scrnsaverproto >= 1.1"
+ # RESOURCEPROTO="resourceproto >= 1.2.0"
+ # DRIPROTO="xf86driproto >= 2.1.0"
+ # XINERAMAPROTO="xineramaproto"
+ # BIGFONTPROTO="xf86bigfontproto >= 1.2.0"
+ # DGAPROTO="xf86dgaproto >= 2.0.99.1"
+ # DMXPROTO="dmxproto >= 2.2.99.1"
+ # VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1"
+ # WINDOWSWMPROTO="windowswmproto"
+ # APPLEWMPROTO="applewmproto >= 1.4"
+
+ # XPROTO="xproto >= 7.0.28"
+ # RANDRPROTO="randrproto >= 1.5.0"
+ # RENDERPROTO="renderproto >= 0.11"
+ # XEXTPROTO="xextproto >= 7.2.99.901"
+ # INPUTPROTO="inputproto >= 2.3"
+ # KBPROTO="kbproto >= 1.0.3"
+ # FONTSPROTO="fontsproto >= 2.1.3"
+ # FIXESPROTO="fixesproto >= 5.0"
+ # DAMAGEPROTO="damageproto >= 1.1"
+ # XCMISCPROTO="xcmiscproto >= 1.2.0"
+ # BIGREQSPROTO="bigreqsproto >= 1.1.0"
+ # XTRANS="xtrans >= 1.3.5"
+ # PRESENTPROTO="presentproto >= 1.0"
+
+ # LIBAPPLEWM="applewm >= 1.4"
+ # LIBDMX="dmx >= 1.0.99.1"
+ # LIBDRI="dri >= 7.8.0"
+ # LIBEGL="egl"
+ # LIBGBM="gbm >= 10.2.0"
+ # LIBXEXT="xext >= 1.0.99.4"
+ # LIBXFONT="xfont2 >= 2.0.0"
+ # LIBXI="xi >= 1.2.99.1"
+ # LIBXTST="xtst >= 1.0.99.2"
+ # LIBPCIACCESS="pciaccess >= 0.12.901"
+ # LIBUDEV="libudev >= 143"
+ # LIBSELINUX="libselinux >= 2.0.86"
+ # LIBDBUS="dbus-1 >= 1.0"
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py
new file mode 100644
index 0000000000..c2e5797efa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class XorgSgmlDoctools(Package):
+ """This package provides a common set of SGML entities and XML/CSS style
+ sheets used in building/formatting the documentation provided in other
+ X.Org packages."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools"
+ url = "https://www.x.org/archive/individual/doc/xorg-sgml-doctools-1.11.tar.gz"
+
+ version('1.11', '51cf4c6b476e2b98a068fea6975b9b21')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xphelloworld/package.py b/var/spack/repos/builtin/packages/xphelloworld/package.py
new file mode 100644
index 0000000000..6d445d69be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xphelloworld/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xphelloworld(Package):
+ """Xprint sample applications."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xphelloworld"
+ url = "https://www.x.org/archive/individual/app/xphelloworld-1.0.1.tar.gz"
+
+ version('1.0.1', 'b1851337a8e850d5c8e5a5ca5e3033da')
+
+ depends_on('libx11')
+ depends_on('libxaw')
+ depends_on('libxprintapputil')
+ depends_on('libxprintutil')
+ depends_on('libxp')
+ depends_on('libxt')
+
+ # FIXME: xphelloworld requires libxaw8, but libxaw only provides 6 and 7.
+ # It looks like xprint support was removed from libxaw at some point.
+ # But even the oldest version of libxaw doesn't build libxaw8.
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xplsprinters/package.py b/var/spack/repos/builtin/packages/xplsprinters/package.py
new file mode 100644
index 0000000000..55de272a33
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xplsprinters/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xplsprinters(Package):
+ """List Xprint printers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xplsprinters"
+ url = "https://www.x.org/archive/individual/app/xplsprinters-1.0.1.tar.gz"
+
+ version('1.0.1', '8e5698b5a2a2a0fc78caeb23909dd284')
+
+ depends_on('libxp')
+ depends_on('libxprintutil')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xpr/package.py b/var/spack/repos/builtin/packages/xpr/package.py
new file mode 100644
index 0000000000..669693e084
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xpr/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xpr(Package):
+ """xpr takes as input a window dump file produced by xwd
+ and formats it for output on various types of printers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xpr"
+ url = "https://www.x.org/archive/individual/app/xpr-1.0.4.tar.gz"
+
+ version('1.0.4', '6adfa60f458474c0c226454c233fc32f')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py
new file mode 100644
index 0000000000..4578c3c191
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xprehashprinterlist(Package):
+ """Rehash list of Xprint printers."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xprehashprinterlist"
+ url = "https://www.x.org/archive/individual/app/xprehashprinterlist-1.0.1.tar.gz"
+
+ version('1.0.1', '395578955634e4b2daa5b78f6fa9222c')
+
+ depends_on('libxp')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xprop/package.py b/var/spack/repos/builtin/packages/xprop/package.py
new file mode 100644
index 0000000000..0e1a591bcb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xprop/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xprop(Package):
+ """xprop is a command line tool to display and/or set window and font
+ properties of an X server."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xprop"
+ url = "https://www.x.org/archive/individual/app/xprop-1.2.2.tar.gz"
+
+ version('1.2.2', 'db03a6bcf7b0d0c2e691ea3083277cbc')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xproto/package.py b/var/spack/repos/builtin/packages/xproto/package.py
new file mode 100644
index 0000000000..67074a6993
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xproto/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xproto(Package):
+ """X Window System Core Protocol.
+
+ This package provides the headers and specification documents defining
+ the X Window System Core Protocol, Version 11.
+
+ It also includes a number of headers that aren't purely protocol related,
+ but are depended upon by many other X Window System packages to provide
+ common definitions and porting layer."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/x11proto"
+ url = "https://www.x.org/archive/individual/proto/xproto-7.0.29.tar.gz"
+
+ version('7.0.29', '16a78dd2c5ad73011105c96235f6a0af')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py
new file mode 100644
index 0000000000..e5bfcb8cbc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xproxymanagementprotocol(Package):
+ """The Proxy Management Protocol is an ICE based protocol that provides a
+ way for application servers to easily locate proxy services available to
+ them."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/proto/pmproto"
+ url = "https://www.x.org/archive/individual/proto/xproxymanagementprotocol-1.0.3.tar.gz"
+
+ version('1.0.3', 'c4ab05a6174b4e9b6ae5b7cfbb6d718e')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xrandr/package.py b/var/spack/repos/builtin/packages/xrandr/package.py
new file mode 100644
index 0000000000..35e21c6047
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrandr/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xrandr(Package):
+ """xrandr - primitive command line interface to X11 Resize, Rotate, and
+ Reflect (RandR) extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xrandr"
+ url = "https://www.x.org/archive/individual/app/xrandr-1.5.0.tar.gz"
+
+ version('1.5.0', 'fe9cf76033fe5d973131eac67b6a3118')
+
+ depends_on('libxrandr@1.5:')
+ depends_on('libxrender')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xrdb/package.py b/var/spack/repos/builtin/packages/xrdb/package.py
new file mode 100644
index 0000000000..93847a19a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrdb/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xrdb(Package):
+ """xrdb - X server resource database utility."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xrdb"
+ url = "https://www.x.org/archive/individual/app/xrdb-1.1.0.tar.gz"
+
+ version('1.1.0', 'd48983e561ef8b4b2e245feb584c11ce')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xrefresh/package.py b/var/spack/repos/builtin/packages/xrefresh/package.py
new file mode 100644
index 0000000000..f99810beea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrefresh/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xrefresh(Package):
+ """xrefresh - refresh all or part of an X screen."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xrefresh"
+ url = "https://www.x.org/archive/individual/app/xrefresh-1.0.5.tar.gz"
+
+ version('1.0.5', 'e41c5148d894406484af59887257c465')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py
new file mode 100644
index 0000000000..db076dbc56
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrootd/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Xrootd(Package):
+ """The XROOTD project aims at giving high performance, scalable fault
+ tolerant access to data repositories of many kinds."""
+ homepage = "http://xrootd.org"
+ url = "http://xrootd.org/download/v4.3.0/xrootd-4.3.0.tar.gz"
+
+ version('4.3.0', '39c2fab9f632f35e12ff607ccaf9e16c')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ build_directory = join_path(self.stage.path, 'spack-build')
+ source_directory = self.stage.source_path
+
+ if '+debug' in spec:
+ options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
+
+ with working_dir(build_directory, create=True):
+ cmake(source_directory, *options)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/xrx/package.py b/var/spack/repos/builtin/packages/xrx/package.py
new file mode 100644
index 0000000000..4457c2f164
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xrx/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xrx(Package):
+ """The remote execution (RX) service specifies a MIME format for invoking
+ applications remotely, for example via a World Wide Web browser. This
+ RX format specifies a syntax for listing network services required by
+ the application, for example an X display server. The requesting Web
+ browser must identify specific instances of the services in the request
+ to invoke the application."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xrx"
+ url = "https://www.x.org/archive/individual/app/xrx-1.0.4.tar.gz"
+
+ version('1.0.4', 'dd4b8bf6eca5fc5be5df30c14050074c')
+
+ depends_on('libx11')
+ depends_on('libxt')
+ depends_on('libxext')
+ depends_on('libxau')
+ depends_on('libice')
+ depends_on('libxaw')
+
+ depends_on('xtrans', type='build')
+ depends_on('xproxymanagementprotocol', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xscope/package.py b/var/spack/repos/builtin/packages/xscope/package.py
new file mode 100644
index 0000000000..cf33c9767e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xscope/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xscope(Package):
+ """XSCOPE -- a program to monitor X11/Client conversations."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xscope"
+ url = "https://www.x.org/archive/individual/app/xscope-1.4.1.tar.gz"
+
+ version('1.4.1', 'c476fb73b354f4a5c388f3814052ce0d')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('xtrans', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xsdktrilinos/package.py b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
new file mode 100644
index 0000000000..ea49054435
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
@@ -0,0 +1,98 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Xsdktrilinos(CMakePackage):
+ """xSDKTrilinos contains the portions of Trilinos that depend on PETSc
+ because they would cause a circular dependency if built as part of
+ Trilinos.
+ """
+ homepage = "https://trilinos.org/"
+ base_url = "https://github.com/trilinos/xSDKTrilinos/archive"
+
+ version('develop', git='https://github.com/trilinos/xSDKTrilinos.git', tag='master')
+ version('12.8.1', '9cc338ded17d1e10ea6c0dc18b22dcd4')
+ version('12.6.4', '44c4c54ccbac73bb8939f68797b9454a')
+
+ def url_for_version(self, version):
+ return '%s/trilinos-release-%s.tar.gz' % \
+ (Xsdktrilinos.base_url, version.dashed)
+
+ variant('hypre', default=True,
+ description='Compile with Hypre preconditioner')
+ variant('petsc', default=True,
+ description='Compile with PETSc solvers')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+
+ # MPI related dependencies
+ depends_on('mpi')
+ depends_on('hypre~internal-superlu', when='+hypre')
+ depends_on('petsc+mpi~complex', when='+petsc')
+ depends_on('trilinos@12.6.4', when='@12.6.4')
+ depends_on('trilinos@12.8.1', when='@12.8.1')
+ depends_on('trilinos@develop', when='@develop')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ options = []
+
+ mpi_bin = spec['mpi'].prefix.bin
+ options.extend([
+ '-DxSDKTrilinos_VERBOSE_CONFIGURE:BOOL=OFF',
+ '-DxSDKTrilinos_ENABLE_TESTS:BOOL=ON',
+ '-DxSDKTrilinos_ENABLE_EXAMPLES:BOOL=ON',
+ '-DTrilinos_INSTALL_DIR=%s' % spec['trilinos'].prefix,
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF'),
+ '-DTPL_ENABLE_MPI:BOOL=ON',
+ '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
+ '-DxSDKTrilinos_ENABLE_CXX11:BOOL=ON',
+ '-DTPL_ENABLE_HYPRE:BOOL=%s' % (
+ 'ON' if '+hypre' in spec else 'OFF'),
+ '-DTPL_ENABLE_PETSC:BOOL=%s' % (
+ 'ON' if '+petsc' in spec else 'OFF'),
+ '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix
+ ])
+
+ # Fortran lib
+ if spec.satisfies('%gcc') or spec.satisfies('%clang'):
+ libgfortran = os.path.dirname(os.popen(
+ '%s --print-file-name libgfortran.a' %
+ join_path(mpi_bin, 'mpif90')).read())
+ options.extend([
+ '-DxSDKTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % (
+ libgfortran),
+ '-DxSDKTrilinos_ENABLE_Fortran=ON'
+ ])
+
+ return options
diff --git a/var/spack/repos/builtin/packages/xset/package.py b/var/spack/repos/builtin/packages/xset/package.py
new file mode 100644
index 0000000000..462bea8cfe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xset/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xset(Package):
+ """User preference utility for X."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xset"
+ url = "https://www.x.org/archive/individual/app/xset-1.2.3.tar.gz"
+
+ version('1.2.3', '1a76965ed0e8cb51d3fa04d458cb3d8f')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xsetmode/package.py b/var/spack/repos/builtin/packages/xsetmode/package.py
new file mode 100644
index 0000000000..f05fd0f123
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsetmode/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xsetmode(Package):
+ """Set the mode for an X Input device."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xsetmode"
+ url = "https://www.x.org/archive/individual/app/xsetmode-1.0.0.tar.gz"
+
+ version('1.0.0', '0dc2a917138d0345c00e016ac720e085')
+
+ depends_on('libxi')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py
new file mode 100644
index 0000000000..e9bf2fc9fe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsetpointer/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xsetpointer(Package):
+ """Set an X Input device as the main pointer."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xsetpointer"
+ url = "https://www.x.org/archive/individual/app/xsetpointer-1.0.1.tar.gz"
+
+ version('1.0.1', 'bb206b6875f2428c2281e1165b6c7f88')
+
+ depends_on('libxi')
+ depends_on('libx11')
+
+ depends_on('inputproto@1.4:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xsetroot/package.py b/var/spack/repos/builtin/packages/xsetroot/package.py
new file mode 100644
index 0000000000..3e62d41e9b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsetroot/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xsetroot(Package):
+ """xsetroot - root window parameter setting utility for X."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xsetroot"
+ url = "https://www.x.org/archive/individual/app/xsetroot-1.1.1.tar.gz"
+
+ version('1.1.1', '8c794914a2d0456317288c41451dbee3')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+ depends_on('libxcursor')
+
+ depends_on('xbitmaps', type='build')
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xsm/package.py b/var/spack/repos/builtin/packages/xsm/package.py
new file mode 100644
index 0000000000..9d9c896365
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsm/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xsm(Package):
+ """X Session Manager."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xsm"
+ url = "https://www.x.org/archive/individual/app/xsm-1.0.3.tar.gz"
+
+ version('1.0.3', '60a2e5987d8e49a568599ba8fe59c8db')
+
+ depends_on('libx11')
+ depends_on('libxt@1.1.0:')
+ depends_on('libice')
+ depends_on('libsm')
+ depends_on('libxaw')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xstdcmap/package.py b/var/spack/repos/builtin/packages/xstdcmap/package.py
new file mode 100644
index 0000000000..bb19bdff1a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xstdcmap/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xstdcmap(Package):
+ """The xstdcmap utility can be used to selectively define standard colormap
+ properties. It is intended to be run from a user's X startup script to
+ create standard colormap definitions in order to facilitate sharing of
+ scarce colormap resources among clients using PseudoColor visuals."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xstdcmap"
+ url = "https://www.x.org/archive/individual/app/xstdcmap-1.0.3.tar.gz"
+
+ version('1.0.3', '70c1fd18b79c3ea1dae136e2eabe1c82')
+
+ depends_on('libxmu')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xtrans/package.py b/var/spack/repos/builtin/packages/xtrans/package.py
new file mode 100644
index 0000000000..ed46059d9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xtrans/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xtrans(Package):
+ """xtrans is a library of code that is shared among various X packages to
+ handle network protocol transport in a modular fashion, allowing a
+ single place to add new transport types. It is used by the X server,
+ libX11, libICE, the X font server, and related components."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libxtrans"
+ url = "https://www.x.org/archive//individual/lib/xtrans-1.3.5.tar.gz"
+
+ version('1.3.5', '6e4eac1b7c6591da0753052e1eccfb58')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xtrap/package.py b/var/spack/repos/builtin/packages/xtrap/package.py
new file mode 100644
index 0000000000..405ec2f848
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xtrap/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xtrap(Package):
+ """XTrap sample clients."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xtrap"
+ url = "https://www.x.org/archive/individual/app/xtrap-1.0.2.tar.gz"
+
+ version('1.0.2', '601e4945535d2d25eb1bc640332e2363')
+
+ depends_on('libx11')
+ depends_on('libxtrap')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xts/package.py b/var/spack/repos/builtin/packages/xts/package.py
new file mode 100644
index 0000000000..c3993cf391
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xts/package.py
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xts(Package):
+ """This is a revamped version of X Test Suite (XTS) which removes some of
+ the ugliness of building and running the tests."""
+
+ homepage = "https://www.x.org/wiki/XorgTesting/"
+ url = "https://www.x.org/archive/individual/test/xts-0.99.1.tar.gz"
+
+ version('0.99.1', '1e5443fede389be606f3745a71483bac')
+
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxi')
+ depends_on('libxtst')
+ depends_on('libxau')
+ depends_on('libxt')
+ depends_on('libxmu')
+ depends_on('libxaw')
+
+ depends_on('xtrans', type='build')
+ depends_on('bdftopcf', type='build')
+ depends_on('mkfontdir', type='build')
+ depends_on('perl', type='build')
+ depends_on('xset', type='build')
+ depends_on('xdpyinfo', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ # FIXME: Crashes during compilation
+ # error: redeclaration of enumerator 'XawChainTop'
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xvidtune/package.py b/var/spack/repos/builtin/packages/xvidtune/package.py
new file mode 100644
index 0000000000..ac5352df5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xvidtune/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xvidtune(Package):
+ """xvidtune is a client interface to the X server video mode
+ extension (XFree86-VidModeExtension)."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xvidtune"
+ url = "https://www.x.org/archive/individual/app/xvidtune-1.0.3.tar.gz"
+
+ version('1.0.3', 'e0c31d78741ae4aab2f4bfcc2abd4a3d')
+
+ depends_on('libxxf86vm')
+ depends_on('libxt')
+ depends_on('libxaw')
+ depends_on('libxmu')
+ depends_on('libx11')
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xvinfo/package.py b/var/spack/repos/builtin/packages/xvinfo/package.py
new file mode 100644
index 0000000000..359f1f23de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xvinfo/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xvinfo(Package):
+ """xvinfo prints out the capabilities of any video adaptors associated
+ with the display that are accessible through the X-Video extension."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xvinfo"
+ url = "https://www.x.org/archive/individual/app/xvinfo-1.1.3.tar.gz"
+
+ version('1.1.3', '6890a19226c07344ae12e7a2ef12f2c6')
+
+ depends_on('libxv')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.25:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xwd/package.py b/var/spack/repos/builtin/packages/xwd/package.py
new file mode 100644
index 0000000000..d1f9ee1dfb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xwd/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xwd(Package):
+ """xwd - dump an image of an X window."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xwd"
+ url = "https://www.x.org/archive/individual/app/xwd-1.0.6.tar.gz"
+
+ version('1.0.6', 'd6c132f5f00188ce2a1393f12bd34ad4')
+
+ depends_on('libx11')
+ depends_on('libxkbfile')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xwininfo/package.py b/var/spack/repos/builtin/packages/xwininfo/package.py
new file mode 100644
index 0000000000..bba97ca671
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xwininfo/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xwininfo(Package):
+ """xwininfo prints information about windows on an X server. Various
+ information is displayed depending on which options are selected."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xwininfo"
+ url = "https://www.x.org/archive/individual/app/xwininfo-1.1.3.tar.gz"
+
+ version('1.1.3', 'd26623fe240659a320367bc453f1d301')
+
+ depends_on('libxcb@1.6:')
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xwud/package.py b/var/spack/repos/builtin/packages/xwud/package.py
new file mode 100644
index 0000000000..a30d55b7c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xwud/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Xwud(Package):
+ """xwud allows X users to display in a window an image saved in a
+ specially formatted dump file, such as produced by xwd."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/app/xwud"
+ url = "https://www.x.org/archive/individual/app/xwud-1.0.4.tar.gz"
+
+ version('1.0.4', 'bb44485a37496f0121e5843bcf5bb01b')
+
+ depends_on('libx11')
+
+ depends_on('xproto@7.0.17:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ configure('--prefix={0}'.format(prefix))
+
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/xz/package.py b/var/spack/repos/builtin/packages/xz/package.py
index b3ef7808aa..8b0609f50e 100644
--- a/var/spack/repos/builtin/packages/xz/package.py
+++ b/var/spack/repos/builtin/packages/xz/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Xz(Package):
"""XZ Utils is free general-purpose data compression software with
high compression ratio. XZ Utils were written for POSIX-like
@@ -36,7 +37,9 @@ class Xz(Package):
version('5.2.2', 'f90c9a0c8b259aee2234c4e0d7fd70af')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
- make()
- make("install")
+ configure('--prefix={0}'.format(prefix))
+ make()
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/yaml-cpp/package.py b/var/spack/repos/builtin/packages/yaml-cpp/package.py
new file mode 100644
index 0000000000..0ced7c89fc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yaml-cpp/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class YamlCpp(CMakePackage):
+ """A YAML parser and emitter in C++"""
+
+ homepage = "https://github.com/jbeder/yaml-cpp"
+ url = "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.5.3.tar.gz"
+
+ version('0.5.3', '4e47733d98266e46a1a73ae0a72954eb')
+
+ variant('fpic', default=False,
+ description='Build with position independent code')
+
+ depends_on('boost', when='@:0.5.3')
+
+ def cmake_args(self):
+ spec = self.spec
+ options = []
+
+ if '+fpic' in spec:
+ options.extend([
+ '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true'
+ ])
+
+ return options
diff --git a/var/spack/repos/builtin/packages/yasm/package.py b/var/spack/repos/builtin/packages/yasm/package.py
index e05160c8ea..f14bdbcee7 100644
--- a/var/spack/repos/builtin/packages/yasm/package.py
+++ b/var/spack/repos/builtin/packages/yasm/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Yasm(Package):
"""Yasm is a complete rewrite of the NASM-2.11.06 assembler. It
supports the x86 and AMD64 instruction sets, accepts NASM and
diff --git a/var/spack/repos/builtin/packages/yorick/package.py b/var/spack/repos/builtin/packages/yorick/package.py
new file mode 100644
index 0000000000..52a4d8787d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yorick/package.py
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import shutil
+import glob
+
+
+class Yorick(Package):
+ """Yorick is an interpreted programming language for scientific simulations
+ or calculations, postprocessing or steering large simulation codes,
+ interactive scientific graphics, and reading, writing, or translating
+ files of numbers. Yorick includes an interactive graphics package, and a
+ binary file package capable of translating to and from the raw numeric
+ formats of all modern computers. Yorick is written in ANSI C and runs on
+ most operating systems (\*nix systems, MacOS X, Windows).
+ """
+
+ homepage = "http://dhmunro.github.io/yorick-doc/"
+ url = "https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz"
+
+ version('2.2.04', md5='1b5b0da6ad81b2d9dba64d991ec17939')
+ version('master', branch='master',
+ git='https://github.com/dhmunro/yorick.git')
+ version('f90-plugin', branch='f90-plugin',
+ git='https://github.com/trmwzm/yorick.git')
+
+ variant('X', default=False, description='Enable X11 support')
+
+ depends_on('libx11', when='+X')
+
+ def install(self, spec, prefix):
+ os.environ['FORTRAN_LINKAGE'] = '-Df_linkage'
+
+ make("config")
+
+ filter_file(r'^CC.+',
+ 'CC={0}'.format(self.compiler.cc),
+ 'Make.cfg')
+ filter_file(r'^FC.+',
+ 'FC={0}'.format(self.compiler.fc),
+ 'Make.cfg')
+ filter_file(r'^COPT_DEFAULT.+',
+ 'COPT_DEFAULT=-O3',
+ 'Make.cfg')
+
+ make()
+ make("install")
+
+ try:
+ os.makedirs(prefix)
+ except OSError:
+ pass
+ os.chdir("relocate")
+ for f in glob.glob('*'):
+ if os.path.isdir(f):
+ shutil.copytree(f, os.path.join(prefix, f))
+ else:
+ shutil.copy2(f, os.path.join(prefix, f))
diff --git a/var/spack/repos/builtin/packages/zeromq/package.py b/var/spack/repos/builtin/packages/zeromq/package.py
index 9bdd5861e0..cafd3c2125 100644
--- a/var/spack/repos/builtin/packages/zeromq/package.py
+++ b/var/spack/repos/builtin/packages/zeromq/package.py
@@ -24,11 +24,13 @@
##############################################################################
from spack import *
+
class Zeromq(Package):
""" The ZMQ networking/concurrency library and core API """
homepage = "http://zguide.zeromq.org/"
url = "http://download.zeromq.org/zeromq-4.1.2.tar.gz"
+ version('4.1.4', 'a611ecc93fffeb6d058c0e6edf4ad4fb')
version('4.1.2', '159c0c56a895472f02668e692d122685')
version('4.1.1', '0a4b44aa085644f25c177f79dc13f253')
version('4.0.7', '9b46f7e7b0704b83638ef0d461fd59ab')
@@ -36,9 +38,10 @@ class Zeromq(Package):
version('4.0.5', '73c39f5eb01b9d7eaf74a5d899f1d03d')
depends_on("libsodium")
+ depends_on("libsodium@:1.0.3", when='@:4.1.2')
def install(self, spec, prefix):
- configure("--with-libsodium","--prefix=%s" % prefix)
+ configure("--with-libsodium", "--prefix=%s" % prefix)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/zfp/package.py b/var/spack/repos/builtin/packages/zfp/package.py
index 878b65118f..a898ab03d3 100644
--- a/var/spack/repos/builtin/packages/zfp/package.py
+++ b/var/spack/repos/builtin/packages/zfp/package.py
@@ -24,12 +24,15 @@
##############################################################################
from spack import *
+
class Zfp(Package):
- """zfp is an open source C library for compressed floating-point arrays that supports
- very high throughput read and write random acces, target error bounds or bit rates.
- Although bit-for-bit lossless compression is not always possible, zfp is usually
- accurate to within machine epsilon in near-lossless mode, and is often orders of
- magnitude more accurate than other lossy compressors.
+ """zfp is an open source C library for compressed floating-point arrays
+ that supports very high throughput read and write random acces,
+ target error bounds or bit rates. Although bit-for-bit lossless
+ compression is not always possible, zfp is usually accurate to
+ within machine epsilon in near-lossless mode, and is often orders
+ of magnitude more accurate than other lossy compressors.
+
"""
homepage = "http://computation.llnl.gov/projects/floating-point-compression"
diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py
index e1cbdc7e28..ea758e0188 100644
--- a/var/spack/repos/builtin/packages/zlib/package.py
+++ b/var/spack/repos/builtin/packages/zlib/package.py
@@ -24,19 +24,23 @@
##############################################################################
from spack import *
-class Zlib(Package):
- """zlib is designed to be a free, general-purpose, legally unencumbered --
- that is, not covered by any patents -- lossless data-compression library for
- use on virtually any computer hardware and operating system.
- """
+
+class Zlib(AutotoolsPackage):
+ """A free, general-purpose, legally unencumbered lossless
+ data-compression library."""
homepage = "http://zlib.net"
- url = "http://zlib.net/zlib-1.2.8.tar.gz"
+ url = "http://zlib.net/fossils/zlib-1.2.10.tar.gz"
+ version('1.2.10', 'd9794246f853d15ce0fcbf79b9a3cf13')
+ # author had this to say about 1.2.9....
+ # Due to the bug fixes, any installations of 1.2.9 should be immediately
+ # replaced with 1.2.10.
version('1.2.8', '44d667c142d7cda120332623eab69f40')
- def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ variant('pic', default=True,
+ description='Produce position-independent code (for shared libs)')
- make()
- make("install")
+ def setup_environment(self, spack_env, run_env):
+ if '+pic' in self.spec:
+ spack_env.set('CFLAGS', self.compiler.pic_flag)
diff --git a/var/spack/repos/builtin/packages/zoltan/package.py b/var/spack/repos/builtin/packages/zoltan/package.py
index 841ff3f4a2..8d4dd321b0 100644
--- a/var/spack/repos/builtin/packages/zoltan/package.py
+++ b/var/spack/repos/builtin/packages/zoltan/package.py
@@ -22,16 +22,23 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import re, os, glob
+
from spack import *
+import re
+import os
+import glob
+
class Zoltan(Package):
- """The Zoltan library is a toolkit of parallel combinatorial algorithms for
- parallel, unstructured, and/or adaptive scientific applications. Zoltan's
- largest component is a suite of dynamic load-balancing and paritioning
- algorithms that increase applications' parallel performance by reducing
- idle time. Zoltan also has graph coloring and graph ordering algorithms,
- which are useful in task schedulers and parallel preconditioners."""
+ """The Zoltan library is a toolkit of parallel combinatorial algorithms
+ for parallel, unstructured, and/or adaptive scientific
+ applications. Zoltan's largest component is a suite of dynamic
+ load-balancing and paritioning algorithms that increase
+ applications' parallel performance by reducing idle time. Zoltan
+ also has graph coloring and graph ordering algorithms, which are
+ useful in task schedulers and parallel preconditioners.
+
+ """
homepage = "http://www.cs.sandia.gov/zoltan"
base_url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions"
@@ -41,18 +48,28 @@ class Zoltan(Package):
version('3.6', '9cce794f7241ecd8dbea36c3d7a880f9')
version('3.3', '5eb8f00bda634b25ceefa0122bd18d65')
- variant('debug', default=False, description='Builds a debug version of the library')
- variant('shared', default=True, description='Builds a shared version of the library')
+ variant('debug', default=False, description='Builds a debug version of the library.')
+ variant('shared', default=True, description='Builds a shared version of the library.')
- variant('fortran', default=True, description='Enable Fortran support')
- variant('mpi', default=False, description='Enable MPI support')
+ variant('fortran', default=True, description='Enable Fortran support.')
+ variant('mpi', default=True, description='Enable MPI support.')
depends_on('mpi', when='+mpi')
+ def url_for_version(self, version):
+ return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version)
+
def install(self, spec, prefix):
+ # FIXME: The older Zoltan versions fail to compile the F90 MPI wrappers
+ # because of some complicated generic type problem.
+ if spec.satisfies('@:3.6+fortran+mpi'):
+ raise RuntimeError(('Cannot build Zoltan v{0} with +fortran and '
+ '+mpi; please disable one of these features '
+ 'or upgrade versions.').format(self.version))
+
config_args = [
- '--enable-f90interface' if '+fortan' in spec else '--disable-f90interface',
- '--enable-mpi' if '+mpi' in spec else '--disable-mpi',
+ self.get_config_flag('f90interface', 'fortran'),
+ self.get_config_flag('mpi', 'mpi'),
]
config_cflags = [
'-O0' if '+debug' in spec else '-O3',
@@ -60,46 +77,70 @@ class Zoltan(Package):
]
if '+shared' in spec:
- config_args.append('--with-ar=$(CXX) -shared $(LDFLAGS) -o')
config_args.append('RANLIB=echo')
+ config_args.append('--with-ar=$(CXX) -shared $(LDFLAGS) -o')
config_cflags.append('-fPIC')
+ if spec.satisfies('%gcc'):
+ config_args.append('--with-libs={0}'.format('-lgfortran'))
if '+mpi' in spec:
- config_args.append('CC=%s/mpicc' % spec['mpi'].prefix.bin)
- config_args.append('CXX=%s/mpicxx' % spec['mpi'].prefix.bin)
- config_args.append('--with-mpi=%s' % spec['mpi'].prefix)
- config_args.append('--with-mpi-compilers=%s' % spec['mpi'].prefix.bin)
+ config_args.append('CC={0}'.format(spec['mpi'].mpicc))
+ config_args.append('CXX={0}'.format(spec['mpi'].mpicxx))
+ config_args.append('FC={0}'.format(spec['mpi'].mpifc))
+
+ mpi_libs = ' -l'.join(self.get_mpi_libs())
+ config_args.append('--with-mpi={0}'.format(spec['mpi'].prefix))
+ config_args.append('--with-mpi-libs=-l{0}'.format(mpi_libs))
# NOTE: Early versions of Zoltan come packaged with a few embedded
# library packages (e.g. ParMETIS, Scotch), which messes with Spack's
# ability to descend directly into the package's source directory.
+ source_directory = self.stage.source_path
if spec.satisfies('@:3.6'):
- cd('Zoltan_v%s' % self.version)
-
- mkdirp('build')
- cd('build')
-
- config_zoltan = Executable('../configure')
- config_zoltan(
- '--prefix=%s' % pwd(),
- '--with-cflags=%s' % ' '.join(config_cflags),
- '--with-cxxflags=%s' % ' '.join(config_cflags),
- *config_args)
-
- make()
- make('install')
-
- # NOTE: Unfortunately, Zoltan doesn't provide any configuration options for
- # the extension of the output library files, so this script must change these
- # extensions as a post-processing step.
+ zoltan_directory = 'Zoltan_v{0}'.format(self.version)
+ source_directory = join_path(source_directory, zoltan_directory)
+
+ build_directory = join_path(source_directory, 'build')
+ with working_dir(build_directory, create=True):
+ config = Executable(join_path(source_directory, 'configure'))
+ config(
+ '--prefix={0}'.format(prefix),
+ '--with-cflags={0}'.format(' '.join(config_cflags)),
+ '--with-cxxflags={0}'.format(' '.join(config_cflags)),
+ '--with-fcflags={0}'.format(' '.join(config_cflags)),
+ *config_args
+ )
+
+ # NOTE: Earlier versions of Zoltan cannot be built in parallel
+ # because they contain nested Makefile dependency bugs.
+ make(parallel=not spec.satisfies('@:3.6+fortran'))
+ make('install')
+
+ # NOTE: Unfortunately, Zoltan doesn't provide any configuration
+ # options for the extension of the output library files, so this
+ # script must change these extensions as a post-processing step.
if '+shared' in spec:
- for libpath in glob.glob('lib/*.a'):
- libdir, libname = (os.path.dirname(libpath), os.path.basename(libpath))
- move(libpath, os.path.join(libdir, re.sub(r'\.a$', '.so', libname)))
-
- mkdirp(prefix)
- move('include', prefix)
- move('lib', prefix)
-
- def url_for_version(self, version):
- return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version)
+ for lib_path in glob.glob(join_path(prefix, 'lib', '*.a')):
+ lib_static_name = os.path.basename(lib_path)
+ lib_shared_name = re.sub(r'\.a$', '.{0}'.format(dso_suffix),
+ lib_static_name)
+ move(lib_path, join_path(prefix, 'lib', lib_shared_name))
+
+ def get_config_flag(self, flag_name, flag_variant):
+ flag_pre = 'en' if '+{0}'.format(flag_variant) in self.spec else 'dis'
+ return '--{0}able-{1}'.format(flag_pre, flag_name)
+
+ # NOTE: Zoltan assumes that it's linking against an MPI library that can
+ # be found with '-lmpi,' which isn't the case for many MPI packages. This
+ # function finds the names of the actual libraries for Zoltan's MPI dep.
+ def get_mpi_libs(self):
+ mpi_libs = set()
+
+ for lib_path in glob.glob(join_path(self.spec['mpi'].prefix.lib, '*')):
+ mpi_lib_match = re.match(
+ r'^(lib)((\w*)mpi(\w*))\.((a)|({0}))$'.format(dso_suffix),
+ os.path.basename(lib_path))
+ if mpi_lib_match:
+ mpi_libs.add(mpi_lib_match.group(2))
+
+ return list(mpi_libs)
diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py
index 2c9ed4c6e7..a70d307be9 100644
--- a/var/spack/repos/builtin/packages/zsh/package.py
+++ b/var/spack/repos/builtin/packages/zsh/package.py
@@ -24,12 +24,13 @@
##############################################################################
from spack import *
+
class Zsh(Package):
+ """Zsh is a shell designed for interactive use, although it is also a
+ powerful scripting language. Many of the useful features of bash, ksh, and
+ tcsh were incorporated into zsh; many original features were added.
"""
- Zsh is a shell designed for interactive use, although it is also a powerful
- scripting language. Many of the useful features of bash, ksh, and tcsh were
- incorporated into zsh; many original features were added.
- """
+
homepage = "http://www.zsh.org"
url = "http://downloads.sourceforge.net/project/zsh/zsh/5.1.1/zsh-5.1.1.tar.gz"