summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/mock_configs/site_spackconfig12
-rw-r--r--var/spack/mock_configs/site_spackconfig/compilers.yaml12
-rw-r--r--var/spack/mock_configs/user_spackconfig0
-rw-r--r--var/spack/mock_packages/a/package.py12
-rw-r--r--var/spack/mock_packages/b/package.py12
-rw-r--r--var/spack/mock_packages/c/package.py12
-rw-r--r--var/spack/mock_packages/e/package.py12
-rw-r--r--var/spack/mock_packages/mpich/package.py3
-rw-r--r--var/spack/mock_packages/mpileaks/package.py3
-rw-r--r--var/spack/mock_packages/optional-dep-test-2/package.py18
-rw-r--r--var/spack/mock_packages/optional-dep-test-3/package.py17
-rw-r--r--var/spack/mock_packages/optional-dep-test/package.py29
-rw-r--r--var/spack/packages/Mitos/package.py5
-rw-r--r--var/spack/packages/activeharmony/package.py15
-rw-r--r--var/spack/packages/adept-utils/package.py3
-rw-r--r--var/spack/packages/apex/package.py34
-rw-r--r--var/spack/packages/arpack/package.py41
-rw-r--r--var/spack/packages/asciidoc/package.py18
-rw-r--r--var/spack/packages/atlas/package.py60
-rw-r--r--var/spack/packages/bear/package.py17
-rw-r--r--var/spack/packages/binutils/package.py30
-rw-r--r--var/spack/packages/boost/package.py4
-rw-r--r--var/spack/packages/bowtie2/bowtie2-2.5.patch16
-rw-r--r--var/spack/packages/bowtie2/package.py24
-rw-r--r--var/spack/packages/boxlib/package.py25
-rw-r--r--var/spack/packages/bzip2/package.py4
-rw-r--r--var/spack/packages/cblas/package.py35
-rw-r--r--var/spack/packages/cgm/package.py30
-rw-r--r--var/spack/packages/cppcheck/package.py15
-rw-r--r--var/spack/packages/cscope/package.py17
-rw-r--r--var/spack/packages/czmq/package.py19
-rw-r--r--var/spack/packages/docbook-xml/package.py19
-rw-r--r--var/spack/packages/doxygen/package.py25
-rw-r--r--var/spack/packages/dyninst/package.py8
-rw-r--r--var/spack/packages/elfutils/package.py26
-rw-r--r--var/spack/packages/exuberant-ctags/package.py14
-rw-r--r--var/spack/packages/fish/package.py18
-rw-r--r--var/spack/packages/flux/package.py36
-rw-r--r--var/spack/packages/gcc/package.py65
-rw-r--r--var/spack/packages/gflags/package.py21
-rw-r--r--var/spack/packages/ghostscript/package.py17
-rw-r--r--var/spack/packages/glm/package.py19
-rw-r--r--var/spack/packages/global/package.py24
-rw-r--r--var/spack/packages/glog/package.py15
-rw-r--r--var/spack/packages/graphviz/package.py21
-rw-r--r--var/spack/packages/hdf5/package.py3
-rw-r--r--var/spack/packages/hypre/package.py32
-rw-r--r--var/spack/packages/launchmon/package.py9
-rw-r--r--var/spack/packages/leveldb/package.py29
-rw-r--r--var/spack/packages/libelf/package.py2
-rw-r--r--var/spack/packages/libffi/package.py7
-rw-r--r--var/spack/packages/libjson-c/package.py14
-rw-r--r--var/spack/packages/libpciaccess/package.py21
-rw-r--r--var/spack/packages/libsodium/package.py19
-rw-r--r--var/spack/packages/libuuid/package.py16
-rw-r--r--var/spack/packages/libxcb/package.py2
-rw-r--r--var/spack/packages/libxml2/package.py5
-rw-r--r--var/spack/packages/lmdb/package.py39
-rw-r--r--var/spack/packages/lua/package.py26
-rw-r--r--var/spack/packages/matio/package.py15
-rw-r--r--var/spack/packages/memaxes/package.py3
-rw-r--r--var/spack/packages/mesa/package.py5
-rw-r--r--var/spack/packages/metis/package.py29
-rw-r--r--var/spack/packages/mpfr/package.py7
-rw-r--r--var/spack/packages/mpich/package.py10
-rw-r--r--var/spack/packages/munge/package.py20
-rw-r--r--var/spack/packages/ncdu/package.py28
-rw-r--r--var/spack/packages/ncurses/package.py8
-rw-r--r--var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch25
-rw-r--r--var/spack/packages/netcdf/package.py29
-rw-r--r--var/spack/packages/netlib-blas/package.py46
-rw-r--r--var/spack/packages/netlib-lapack/package.py59
-rw-r--r--var/spack/packages/nettle/package.py2
-rw-r--r--var/spack/packages/ompt-openmp/package.py23
-rw-r--r--var/spack/packages/openmpi/package.py74
-rw-r--r--var/spack/packages/parpack/package.py43
-rw-r--r--var/spack/packages/petsc/package.py40
-rw-r--r--var/spack/packages/pidx/package.py21
-rw-r--r--var/spack/packages/pkg-config/package.py17
-rw-r--r--var/spack/packages/protobuf/package.py16
-rw-r--r--var/spack/packages/py-cffi/package.py17
-rw-r--r--var/spack/packages/py-cython/package.py3
-rw-r--r--var/spack/packages/py-dateutil/package.py1
-rw-r--r--var/spack/packages/py-genders/package.py15
-rw-r--r--var/spack/packages/py-h5py/package.py3
-rw-r--r--var/spack/packages/py-ipython/package.py1
-rw-r--r--var/spack/packages/py-lockfile/package.py23
-rw-r--r--var/spack/packages/py-matplotlib/package.py3
-rw-r--r--var/spack/packages/py-mock/package.py17
-rw-r--r--var/spack/packages/py-nose/package.py1
-rw-r--r--var/spack/packages/py-numpy/package.py16
-rw-r--r--var/spack/packages/py-pandas/package.py25
-rw-r--r--var/spack/packages/py-pycparser/package.py15
-rw-r--r--var/spack/packages/py-pyelftools/package.py13
-rw-r--r--var/spack/packages/py-pygments/package.py1
-rw-r--r--var/spack/packages/py-pylint/package.py1
-rw-r--r--var/spack/packages/py-pypar/package.py14
-rw-r--r--var/spack/packages/py-python-daemon/package.py26
-rw-r--r--var/spack/packages/py-pytz/package.py1
-rw-r--r--var/spack/packages/py-rpy2/package.py1
-rw-r--r--var/spack/packages/py-scientificpython/package.py3
-rw-r--r--var/spack/packages/py-scikit-learn/package.py1
-rw-r--r--var/spack/packages/py-scipy/package.py3
-rw-r--r--var/spack/packages/py-setuptools/package.py2
-rw-r--r--var/spack/packages/py-sip/package.py1
-rw-r--r--var/spack/packages/py-virtualenv/package.py1
-rw-r--r--var/spack/packages/py-yapf/package.py15
-rw-r--r--var/spack/packages/python/package.py5
-rw-r--r--var/spack/packages/qt/package.py8
-rw-r--r--var/spack/packages/ruby/package.py25
-rw-r--r--var/spack/packages/samtools/package.py18
-rw-r--r--var/spack/packages/samtools/samtools1.2.patch20
-rw-r--r--var/spack/packages/scorep/package.py15
-rw-r--r--var/spack/packages/scr/package.py6
-rw-r--r--var/spack/packages/silo/package.py19
-rw-r--r--var/spack/packages/snappy/package.py15
-rw-r--r--var/spack/packages/stat/package.py15
-rw-r--r--var/spack/packages/swig/package.py2
-rw-r--r--var/spack/packages/task/package.py20
-rw-r--r--var/spack/packages/taskd/package.py20
-rw-r--r--var/spack/packages/the_silver_searcher/package.py17
-rw-r--r--var/spack/packages/thrift/package.py44
-rw-r--r--var/spack/packages/tmuxinator/package.py17
-rw-r--r--var/spack/packages/trilinos/package.py50
-rw-r--r--var/spack/packages/uncrustify/package.py14
-rw-r--r--var/spack/packages/vim/package.py57
-rw-r--r--var/spack/packages/xz/package.py8
-rw-r--r--var/spack/packages/zeromq/package.py20
-rw-r--r--var/spack/packages/zsh/package.py16
129 files changed, 2153 insertions, 127 deletions
diff --git a/var/spack/mock_configs/site_spackconfig b/var/spack/mock_configs/site_spackconfig
deleted file mode 100644
index 1358720362..0000000000
--- a/var/spack/mock_configs/site_spackconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-[compiler "gcc@4.5.0"]
- cc = /path/to/gcc
- cxx = /path/to/g++
- f77 = /path/to/gfortran
- fc = /path/to/gfortran
-
-[compiler "clang@3.3"]
- cc = /path/to/clang
- cxx = /path/to/clang++
- f77 = None
- fc = None
-
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..0a2dc893e2
--- /dev/null
+++ b/var/spack/mock_configs/site_spackconfig/compilers.yaml
@@ -0,0 +1,12 @@
+compilers:
+ all:
+ clang@3.3:
+ cc: /path/to/clang
+ cxx: /path/to/clang++
+ f77: None
+ fc: None
+ gcc@4.5.0:
+ cc: /path/to/gcc
+ cxx: /path/to/g++
+ f77: /path/to/gfortran
+ fc: /path/to/gfortran
diff --git a/var/spack/mock_configs/user_spackconfig b/var/spack/mock_configs/user_spackconfig
deleted file mode 100644
index e69de29bb2..0000000000
--- a/var/spack/mock_configs/user_spackconfig
+++ /dev/null
diff --git a/var/spack/mock_packages/a/package.py b/var/spack/mock_packages/a/package.py
new file mode 100644
index 0000000000..fa63c08df0
--- /dev/null
+++ b/var/spack/mock_packages/a/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class A(Package):
+ """Simple package with no dependencies"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/a-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/b/package.py b/var/spack/mock_packages/b/package.py
new file mode 100644
index 0000000000..cb88aa2157
--- /dev/null
+++ b/var/spack/mock_packages/b/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class B(Package):
+ """Simple package with no dependencies"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/b-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/c/package.py b/var/spack/mock_packages/c/package.py
new file mode 100644
index 0000000000..f51b913fa9
--- /dev/null
+++ b/var/spack/mock_packages/c/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class C(Package):
+ """Simple package with no dependencies"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/c-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/e/package.py b/var/spack/mock_packages/e/package.py
new file mode 100644
index 0000000000..76c6b64c7f
--- /dev/null
+++ b/var/spack/mock_packages/e/package.py
@@ -0,0 +1,12 @@
+from spack import *
+
+class E(Package):
+ """Simple package with no dependencies"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/e-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/mpich/package.py b/var/spack/mock_packages/mpich/package.py
index 75a939a892..f77d3efc5d 100644
--- a/var/spack/mock_packages/mpich/package.py
+++ b/var/spack/mock_packages/mpich/package.py
@@ -30,6 +30,9 @@ class Mpich(Package):
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
+ variant('debug', default=False,
+ description="Compile MPICH with debug flags.")
+
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
version('3.0.3', 'foobarbaz')
version('3.0.2', 'foobarbaz')
diff --git a/var/spack/mock_packages/mpileaks/package.py b/var/spack/mock_packages/mpileaks/package.py
index c6be37bc13..3989f1b452 100644
--- a/var/spack/mock_packages/mpileaks/package.py
+++ b/var/spack/mock_packages/mpileaks/package.py
@@ -33,6 +33,9 @@ class Mpileaks(Package):
version(2.2, 'foobarbaz')
version(2.3, 'foobarbaz')
+ variant('debug', default=False, description='Debug variant')
+ variant('opt', default=False, description='Optimized variant')
+
depends_on("mpi")
depends_on("callpath")
diff --git a/var/spack/mock_packages/optional-dep-test-2/package.py b/var/spack/mock_packages/optional-dep-test-2/package.py
new file mode 100644
index 0000000000..ef0587588e
--- /dev/null
+++ b/var/spack/mock_packages/optional-dep-test-2/package.py
@@ -0,0 +1,18 @@
+from spack import *
+
+class OptionalDepTest2(Package):
+ """Depends on the optional-dep-test package"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/optional-dep-test-2-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ variant('odt', default=False)
+ variant('mpi', default=False)
+
+ depends_on('optional-dep-test', when='+odt')
+ depends_on('optional-dep-test+mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/optional-dep-test-3/package.py b/var/spack/mock_packages/optional-dep-test-3/package.py
new file mode 100644
index 0000000000..e6cb3bd6e7
--- /dev/null
+++ b/var/spack/mock_packages/optional-dep-test-3/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class OptionalDepTest3(Package):
+ """Depends on the optional-dep-test package"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/optional-dep-test-3-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ variant('var', default=False)
+
+ depends_on('a', when='~var')
+ depends_on('b', when='+var')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/mock_packages/optional-dep-test/package.py b/var/spack/mock_packages/optional-dep-test/package.py
new file mode 100644
index 0000000000..bb57576ca9
--- /dev/null
+++ b/var/spack/mock_packages/optional-dep-test/package.py
@@ -0,0 +1,29 @@
+from spack import *
+
+class OptionalDepTest(Package):
+ """Description"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/optional_dep_test-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+ version('1.1', '0123456789abcdef0123456789abcdef')
+
+ variant('a', default=False)
+ variant('f', default=False)
+ variant('mpi', default=False)
+
+ depends_on('a', when='+a')
+ depends_on('b', when='@1.1')
+ depends_on('c', when='%intel')
+ depends_on('d', when='%intel@64.1')
+ depends_on('e', when='%clang@34:40')
+
+ depends_on('f', when='+f')
+ depends_on('g', when='^f')
+ depends_on('mpi', when='^g')
+
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/packages/Mitos/package.py b/var/spack/packages/Mitos/package.py
index 272360a55c..e312da3ffc 100644
--- a/var/spack/packages/Mitos/package.py
+++ b/var/spack/packages/Mitos/package.py
@@ -7,9 +7,10 @@ class Mitos(Package):
homepage = "https://github.com/scalability-llnl/Mitos"
url = "https://github.com/scalability-llnl/Mitos"
- version('0.7', git='https://github.com/scalability-llnl/Mitos.git', tag='v0.7')
+ version('0.9.1', 'c6cb57f3cae54f5157affd97ef7ef79e', git='https://github.com/scalability-llnl/Mitos.git', tag='v0.9.1')
- depends_on('dyninst')
+ depends_on('dyninst@8.2.1:')
+ depends_on('hwloc')
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
diff --git a/var/spack/packages/activeharmony/package.py b/var/spack/packages/activeharmony/package.py
new file mode 100644
index 0000000000..45dcc7c0e8
--- /dev/null
+++ b/var/spack/packages/activeharmony/package.py
@@ -0,0 +1,15 @@
+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)."""
+ homepage = "http://www.dyninst.org/harmony"
+ url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
+
+ version('4.5', 'caee5b864716d376e2c25d739251b2a9')
+
+ def install(self, spec, prefix):
+ make("CFLAGS=-O3")
+ make("install", 'PREFIX=%s' % prefix)
+
+from spack import *
+
diff --git a/var/spack/packages/adept-utils/package.py b/var/spack/packages/adept-utils/package.py
index 2515322ec2..e4a2e1523f 100644
--- a/var/spack/packages/adept-utils/package.py
+++ b/var/spack/packages/adept-utils/package.py
@@ -30,7 +30,8 @@ class AdeptUtils(Package):
homepage = "https://github.com/scalability-llnl/adept-utils"
url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz"
- version('1.0', '5c6cd9badce56c945ac8551e34804397')
+ version('1.0.1', '731a310717adcb004d9d195130efee7d')
+ version('1.0', '5c6cd9badce56c945ac8551e34804397')
depends_on("boost")
depends_on("mpi")
diff --git a/var/spack/packages/apex/package.py b/var/spack/packages/apex/package.py
new file mode 100644
index 0000000000..6404d5208a
--- /dev/null
+++ b/var/spack/packages/apex/package.py
@@ -0,0 +1,34 @@
+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-release-candidate.tar.gz"
+ url = "http://github.com/khuck/xpress-apex"
+
+ #version('0.1', '6e039c224387348296739f6bf360d081')
+ #version('master', branch='master', git='https://github.com/khuck/xpress-apex.git')
+ version('2015-10-21', git='https://github.com/khuck/xpress-apex.git', commit='d2e66ddde689120472fc57fc546d8cd80aab745c')
+
+ depends_on("binutils+libiberty")
+ depends_on("boost@1.54:")
+ depends_on("cmake@2.8.12:")
+ depends_on("activeharmony@4.5:")
+ depends_on("ompt-openmp")
+
+ def install(self, spec, prefix):
+
+ 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)
+ make()
+ make("install")
diff --git a/var/spack/packages/arpack/package.py b/var/spack/packages/arpack/package.py
new file mode 100644
index 0000000000..8c67c536f3
--- /dev/null
+++ b/var/spack/packages/arpack/package.py
@@ -0,0 +1,41 @@
+from spack import *
+import os
+import shutil
+
+class Arpack(Package):
+ """A collection of Fortran77 subroutines designed to solve large scale
+ eigenvalue problems.
+ """
+ homepage = "http://www.caam.rice.edu/software/ARPACK/"
+ url = "http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz"
+
+ version('96', 'fffaa970198b285676f4156cebc8626e')
+
+ depends_on('blas')
+ 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')
+
+ # 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)
+
+ # build the library in our own prefix.
+ makefile.filter('^ARPACKLIB.*', 'ARPACKLIB = %s/libarpack.a' % os.getcwd())
+
+
+ def install(self, spec, prefix):
+ with working_dir('SRC'):
+ make('all')
+
+ mkdirp(prefix.lib)
+ install('libarpack.a', prefix.lib)
diff --git a/var/spack/packages/asciidoc/package.py b/var/spack/packages/asciidoc/package.py
new file mode 100644
index 0000000000..828f3b3f4f
--- /dev/null
+++ b/var/spack/packages/asciidoc/package.py
@@ -0,0 +1,18 @@
+from spack import *
+
+class Asciidoc(Package):
+ """ 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"
+
+ version('8.6.9', 'c59018f105be8d022714b826b0be130a')
+
+ depends_on('libxml2')
+ depends_on('libxslt')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/atlas/package.py b/var/spack/packages/atlas/package.py
new file mode 100644
index 0000000000..fc683363a7
--- /dev/null
+++ b/var/spack/packages/atlas/package.py
@@ -0,0 +1,60 @@
+from spack import *
+from spack.util.executable import Executable
+import os
+
+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.
+ """
+ homepage = "http://math-atlas.sourceforge.net/"
+
+ 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')
+ version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
+ url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2')
+
+ # TODO: make this provide BLAS once it works better. Create a way
+ # TODO: to mark "beta" packages and require explicit invocation.
+
+ # provides('blas')
+
+
+ def patch(self):
+ # Disable thraed check. LLNL's environment does not allow
+ # disabling of CPU throttling in a way that ATLAS actually
+ # understands.
+ filter_file(r'^\s+if \(thrchk\) exit\(1\);', 'if (0) exit(1);',
+ 'CONFIG/src/config.c')
+ # TODO: investigate a better way to add the check back in
+ # TODO: using, say, MSRs. Or move this to a variant.
+
+ @when('@:3.10')
+ def install(self, spec, prefix):
+ with working_dir('ATLAS-Build', create=True):
+ configure = Executable('../configure')
+ configure('--prefix=%s' % prefix, '-C', 'ic', 'cc', '-C', 'if', 'f77', "--dylibs")
+ make()
+ make('check')
+ make('ptcheck')
+ make('time')
+ make("install")
+
+
+ def install(self, spec, prefix):
+ with working_dir('ATLAS-Build', create=True):
+ configure = Executable('../configure')
+ configure('--incdir=%s' % prefix.include,
+ '--libdir=%s' % prefix.lib,
+ '--cc=cc',
+ "--shared")
+
+ make()
+ make('check')
+ make('ptcheck')
+ make('time')
+ make("install")
diff --git a/var/spack/packages/bear/package.py b/var/spack/packages/bear/package.py
new file mode 100644
index 0000000000..0d4436fccc
--- /dev/null
+++ b/var/spack/packages/bear/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class Bear(Package):
+ """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("python")
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+
+ make("all")
+ make("install")
diff --git a/var/spack/packages/binutils/package.py b/var/spack/packages/binutils/package.py
new file mode 100644
index 0000000000..cac0a0407f
--- /dev/null
+++ b/var/spack/packages/binutils/package.py
@@ -0,0 +1,30 @@
+from spack import *
+
+class Binutils(Package):
+ """GNU binutils, which contain the linker, assembler, objdump and others"""
+ homepage = "http://www.gnu.org/software/binutils/"
+ url = "ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2"
+
+ version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66')
+ version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b')
+ version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
+ version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
+
+ variant('libiberty', default=False, description='Also install libiberty.')
+
+ def install(self, spec, prefix):
+ configure_args = [
+ '--prefix=%s' % prefix,
+ '--disable-dependency-tracking',
+ '--enable-interwork',
+ '--enable-multilib',
+ '--enable-shared',
+ '--enable-64-bit-bfd',
+ '--enable-targets=all']
+
+ if '+libiberty' in spec:
+ configure_args.append('--enable-install-libiberty')
+
+ configure(*configure_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/boost/package.py b/var/spack/packages/boost/package.py
index 254d1afda1..35824d53a2 100644
--- a/var/spack/packages/boost/package.py
+++ b/var/spack/packages/boost/package.py
@@ -14,6 +14,10 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 2
+ version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87')
+ version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546')
+ version('1.57.0', '1be49befbdd9a5ce9def2983ba3e7b76')
+ version('1.56.0', 'a744cf167b05d72335f27c88115f211d')
version('1.55.0', 'd6eef4b4cacb2183f2bf265a5a03a354')
version('1.54.0', '15cb8c0803064faef0c4ddf5bc5ca279')
version('1.53.0', 'a00d22605d5dbcfb4c9936a9b35bc4c2')
diff --git a/var/spack/packages/bowtie2/bowtie2-2.5.patch b/var/spack/packages/bowtie2/bowtie2-2.5.patch
new file mode 100644
index 0000000000..290be39c73
--- /dev/null
+++ b/var/spack/packages/bowtie2/bowtie2-2.5.patch
@@ -0,0 +1,16 @@
+--- Makefile 2015-02-26 10:50:00.000000000 -0800
++++ Makefile.new 2015-07-29 18:03:59.891357399 -0700
+@@ -22,10 +22,10 @@
+ #
+
+ INC =
+-GCC_PREFIX = $(shell dirname `which gcc`)
++GCC_PREFIX =
+ GCC_SUFFIX =
+-CC = $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
+-CPP = $(GCC_PREFIX)/g++$(GCC_SUFFIX)
++CC = cc
++CPP = c++
+ CXX = $(CPP)
+ HEADERS = $(wildcard *.h)
+ BOWTIE_MM = 1
diff --git a/var/spack/packages/bowtie2/package.py b/var/spack/packages/bowtie2/package.py
new file mode 100644
index 0000000000..339aab6598
--- /dev/null
+++ b/var/spack/packages/bowtie2/package.py
@@ -0,0 +1,24 @@
+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")
+
+ patch('bowtie2-2.5.patch',when='@2.2.5', level=0)
+
+ def install(self, spec, prefix):
+ make()
+ mkdirp(prefix.bin)
+ for bow in glob("bowtie2*"):
+ install(bow, prefix.bin)
+ # install('bowtie2',prefix.bin)
+ # install('bowtie2-align-l',prefix.bin)
+ # install('bowtie2-align-s',prefix.bin)
+ # install('bowtie2-build',prefix.bin)
+ # install('bowtie2-build-l',prefix.bin)
+ # install('bowtie2-build-s',prefix.bin)
+ # install('bowtie2-inspect',prefix.bin)
+ # install('bowtie2-inspect-l',prefix.bin)
+ # install('bowtie2-inspect-s',prefix.bin)
+
diff --git a/var/spack/packages/boxlib/package.py b/var/spack/packages/boxlib/package.py
new file mode 100644
index 0000000000..4f1b71132f
--- /dev/null
+++ b/var/spack/packages/boxlib/package.py
@@ -0,0 +1,25 @@
+from spack import *
+
+class Boxlib(Package):
+ """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";
+
+ # TODO: figure out how best to version this. No tags in the repo!
+ version('master', git='https://ccse.lbl.gov/pub/Downloads/BoxLib.git')
+
+ 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')]
+
+ cmake('.', *args)
+ make()
+ make("install")
+
diff --git a/var/spack/packages/bzip2/package.py b/var/spack/packages/bzip2/package.py
index fbd5869a53..d88336664d 100644
--- a/var/spack/packages/bzip2/package.py
+++ b/var/spack/packages/bzip2/package.py
@@ -22,8 +22,10 @@ class Bzip2(Package):
bzip2_exe = join_path(prefix.bin, 'bzip2')
install('bzip2-shared', bzip2_exe)
- for libfile in glob('libbz2.so*'):
+ for i, libfile in enumerate(glob('libbz2.so*')):
install(libfile, prefix.lib)
+ if i == 0:
+ symlink(join_path(prefix.lib, libfile), join_path(prefix.lib, 'libbz2.so'))
bunzip2 = join_path(prefix.bin, 'bunzip2')
remove(bunzip2)
diff --git a/var/spack/packages/cblas/package.py b/var/spack/packages/cblas/package.py
new file mode 100644
index 0000000000..3cfe5ee588
--- /dev/null
+++ b/var/spack/packages/cblas/package.py
@@ -0,0 +1,35 @@
+from spack import *
+import os
+
+class Cblas(Package):
+ """The BLAS (Basic Linear Algebra Subprograms) are routines that
+ provide standard building blocks for performing basic vector and
+ matrix operations."""
+
+ homepage = "http://www.netlib.org/blas/_cblas/"
+
+ # tarball has no version, but on the date below, this MD5 was correct.
+ version('2015-06-06', '1e8830f622d2112239a4a8a83b84209a',
+ url='http://www.netlib.org/blas/blast-forum/cblas.tgz')
+
+ depends_on('blas')
+ parallel = False
+
+ def patch(self):
+ mf = FileFilter('Makefile.in')
+
+ 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)
+ mkdirp(prefix.include)
+
+ # 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)
+
diff --git a/var/spack/packages/cgm/package.py b/var/spack/packages/cgm/package.py
new file mode 100644
index 0000000000..05d6395c5a
--- /dev/null
+++ b/var/spack/packages/cgm/package.py
@@ -0,0 +1,30 @@
+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
+ other applications."""
+ homepage = "http://trac.mcs.anl.gov/projects/ITAPS/wiki/CGM"
+ url = "http://ftp.mcs.anl.gov/pub/fathom/cgm13.1.1.tar.gz"
+
+ version('13.1.1', '4e8dbc4ba8f65767b29f985f7a23b01f')
+ version('13.1.0', 'a6c7b22660f164ce893fb974f9cb2028')
+ version('13.1' , '95f724bda04919fc76818a5b7bc0b4ed')
+
+ depends_on("mpi")
+
+ def patch(self):
+ filter_file('^(#include "CGMParallelConventions.h")',
+ '//\1',
+ 'geom/parallel/CGMReadParallel.cpp')
+
+
+ def install(self, spec, prefix):
+ configure("--with-mpi",
+ "--prefix=%s" % prefix,
+ "CFLAGS=-static",
+ "CXXFLAGS=-static",
+ "FCFLAGS=-static")
+
+ make()
+ make("install")
diff --git a/var/spack/packages/cppcheck/package.py b/var/spack/packages/cppcheck/package.py
new file mode 100644
index 0000000000..8e98f457ee
--- /dev/null
+++ b/var/spack/packages/cppcheck/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class Cppcheck(Package):
+ """A tool for static C/C++ code analysis."""
+ homepage = "http://cppcheck.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/cppcheck/cppcheck/1.68/cppcheck-1.68.tar.bz2"
+
+ version('1.68', 'c015195f5d61a542f350269030150708')
+
+ def install(self, spec, prefix):
+ # cppcheck does not have a configure script
+ make()
+ # manually install the final cppcheck binary
+ mkdirp(prefix.bin)
+ install('cppcheck', prefix.bin)
diff --git a/var/spack/packages/cscope/package.py b/var/spack/packages/cscope/package.py
new file mode 100644
index 0000000000..9aac0f7304
--- /dev/null
+++ b/var/spack/packages/cscope/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class Cscope(Package):
+ """Cscope is a developer's tool for browsing source code."""
+ homepage = "http://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/packages/czmq/package.py b/var/spack/packages/czmq/package.py
new file mode 100644
index 0000000000..a2f1947554
--- /dev/null
+++ b/var/spack/packages/czmq/package.py
@@ -0,0 +1,19 @@
+from spack import *
+
+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')
+
+ depends_on('zeromq')
+
+ def install(self, spec, prefix):
+ bash = which("bash")
+ bash("./autogen.sh")
+ configure("--prefix=%s" % prefix)
+
+ make()
+ make("install")
+
diff --git a/var/spack/packages/docbook-xml/package.py b/var/spack/packages/docbook-xml/package.py
new file mode 100644
index 0000000000..fce1de7deb
--- /dev/null
+++ b/var/spack/packages/docbook-xml/package.py
@@ -0,0 +1,19 @@
+import os
+import glob
+from spack import *
+
+
+class DocbookXml(Package):
+ """Docbook DTD XML files."""
+ homepage = "http://www.oasis-open.org/docbook"
+ url = "http://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip"
+
+ version('4.5', '03083e288e87a7e829e437358da7ef9e')
+
+ def install(self, spec, prefix):
+ cp = which('cp')
+
+ install_args = ['-a', '-t', prefix]
+ install_args.extend(glob.glob('*'))
+
+ cp(*install_args)
diff --git a/var/spack/packages/doxygen/package.py b/var/spack/packages/doxygen/package.py
new file mode 100644
index 0000000000..3d4a4e47a7
--- /dev/null
+++ b/var/spack/packages/doxygen/package.py
@@ -0,0 +1,25 @@
+#------------------------------------------------------------------------------
+# Author: Justin Too <justin@doubleotoo.com>
+# Date: September 11, 2015
+#------------------------------------------------------------------------------
+
+from spack import *
+
+class Doxygen(Package):
+ """Doxygen is the de facto standard tool for generating documentation
+ from annotated C++ sources, but it also supports other popular programming
+ languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba,
+ Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D..
+ """
+ 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.10', '79767ccd986f12a0f949015efb5f058f')
+
+ depends_on("cmake@2.8.12:")
+
+ def install(self, spec, prefix):
+ cmake('.', *std_cmake_args)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/dyninst/package.py b/var/spack/packages/dyninst/package.py
index f3d661f9a9..41ec57dd2f 100644
--- a/var/spack/packages/dyninst/package.py
+++ b/var/spack/packages/dyninst/package.py
@@ -31,9 +31,8 @@ class Dyninst(Package):
url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz"
list_url = "http://www.dyninst.org/downloads/dyninst-8.x"
-# Doesn't build right with boost@1.55.0
-# version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7',
-# url="http://www.paradyn.org/release8.2/DyninstAPI-8.2.1.tgz")
+ version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7',
+ url="http://www.paradyn.org/release8.2/DyninstAPI-8.2.1.tgz")
version('8.1.2', 'bf03b33375afa66fe0efa46ce3f4b17a',
url="http://www.paradyn.org/release8.1.2/DyninstAPI-8.1.2.tgz")
version('8.1.1', 'd1a04e995b7aa70960cd1d1fac8bd6ac',
@@ -50,6 +49,9 @@ class Dyninst(Package):
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,
diff --git a/var/spack/packages/elfutils/package.py b/var/spack/packages/elfutils/package.py
new file mode 100644
index 0000000000..926d234584
--- /dev/null
+++ b/var/spack/packages/elfutils/package.py
@@ -0,0 +1,26 @@
+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
+ inspect and manipulate ELF files. Refer to Table 5.Tools Included
+ in elfutils for Red Hat Developer for a complete list of binary
+ tools that are distributed with the Red Hat Developer Toolset
+ version of elfutils."""
+
+ homepage = "https://fedorahosted.org/elfutils/"
+
+ version('0.163',
+ git='git://git.fedorahosted.org/git/elfutils.git',
+ tag='elfutils-0.163')
+
+ provides('elf')
+
+ def install(self, spec, prefix):
+ autoreconf = which('autoreconf')
+ autoreconf('-if')
+
+ configure('--prefix=%s' % prefix, '--enable-maintainer-mode')
+ make()
+ make("install")
+
diff --git a/var/spack/packages/exuberant-ctags/package.py b/var/spack/packages/exuberant-ctags/package.py
new file mode 100644
index 0000000000..efd2b541b2
--- /dev/null
+++ b/var/spack/packages/exuberant-ctags/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class ExuberantCtags(Package):
+ """The canonical ctags generator"""
+ homepage = "ctags.sourceforge.net"
+ url = "http://downloads.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz"
+
+ version('5.8', 'c00f82ecdcc357434731913e5b48630d')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/fish/package.py b/var/spack/packages/fish/package.py
new file mode 100644
index 0000000000..1225558705
--- /dev/null
+++ b/var/spack/packages/fish/package.py
@@ -0,0 +1,18 @@
+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.
+ """
+
+ homepage = "http://fishshell.com/"
+ url = "http://fishshell.com/files/2.2.0/fish-2.2.0.tar.gz"
+ list_url = homepage
+
+ version('2.2.0', 'a76339fd14ce2ec229283c53e805faac48c3e99d9e3ede9d82c0554acfc7b77a')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/flux/package.py b/var/spack/packages/flux/package.py
new file mode 100644
index 0000000000..c128f46be8
--- /dev/null
+++ b/var/spack/packages/flux/package.py
@@ -0,0 +1,36 @@
+from spack import *
+import os
+
+class Flux(Package):
+ """ A next-generation resource manager (pre-alpha) """
+
+ homepage = "https://github.com/flux-framework/flux-core"
+ url = "https://github.com/flux-framework/flux-core"
+
+ version('master', branch='master', git='https://github.com/flux-framework/flux-core')
+
+ # Also needs autotools, but should use the system version if available
+ depends_on("zeromq@4.0.4:")
+ depends_on("czmq@2.2:")
+ depends_on("lua@5.1:5.1.99")
+ depends_on("munge")
+ depends_on("libjson-c")
+ depends_on("libxslt")
+ # TODO: This provides a catalog, hacked with environment below for now
+ depends_on("docbook-xml")
+ depends_on("asciidoc")
+ depends_on("python")
+ depends_on("py-cffi")
+
+ def install(self, spec, prefix):
+ # Bootstrap with autotools
+ bash = which('bash')
+ bash('./autogen.sh')
+
+ # 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")
+
diff --git a/var/spack/packages/gcc/package.py b/var/spack/packages/gcc/package.py
index 3da6c25d47..a49a1348aa 100644
--- a/var/spack/packages/gcc/package.py
+++ b/var/spack/packages/gcc/package.py
@@ -36,20 +36,25 @@ class Gcc(Package):
list_url = 'http://open-source-box.org/gcc/'
list_depth = 2
+ DEPENDS_ON_ISL_PREDICATE = '@5.0:'
+
+ version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467')
+ version('4.9.3', '6f831b4d251872736e8e9cc09746f327')
version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43')
version('4.9.1', 'fddf71348546af523353bd43d34919c1')
+ version('4.8.5', '80d2c2982a3392bb0b89673ff136e223')
version('4.8.4', '5a84a30839b2aca22a2d723de2a626ec')
version('4.7.4', '4c696da46297de6ae77a82797d2abe28')
version('4.6.4', 'b407a3d1480c11667f293bfb1f17d1a4')
version('4.5.4', '27e459c2566b8209ab064570e1b378f7')
-
+
depends_on("mpfr")
depends_on("gmp")
depends_on("mpc") # when @4.5:
- depends_on("libelf")
+ depends_on("binutils~libiberty")
# Save these until we can do optional deps.
- #depends_on("isl")
+ depends_on("isl", when=DEPENDS_ON_ISL_PREDICATE)
#depends_on("ppl")
#depends_on("cloog")
@@ -61,19 +66,31 @@ class Gcc(Package):
if spec.satisfies("@4.7.1:"):
enabled_languages.add('go')
+ # Generic options to compile GCC
+ options = ["--prefix=%s" % prefix,
+ "--libdir=%s/lib64" % prefix,
+ "--disable-multilib",
+ "--enable-languages=" + ','.join(enabled_languages),
+ "--with-mpc=%s" % spec['mpc'].prefix,
+ "--with-mpfr=%s" % spec['mpfr'].prefix,
+ "--with-gmp=%s" % spec['gmp'].prefix,
+ "--enable-lto",
+ "--with-gnu-ld",
+ "--with-gnu-as",
+ "--with-quad"]
+ # Binutils
+ binutils_options = ["--with-stage1-ldflags=%s" % self.rpath_args,
+ "--with-boot-ldflags=%s" % self.rpath_args,
+ "--with-ld=%s/bin/ld" % spec['binutils'].prefix,
+ "--with-as=%s/bin/as" % spec['binutils'].prefix]
+ options.extend(binutils_options)
+ # Isl
+ if spec.satisfies(Gcc.DEPENDS_ON_ISL_PREDICATE):
+ isl_options = ["--with-isl=%s" % spec['isl'].prefix]
+ options.extend(isl_options)
+
# Rest of install is straightforward.
- configure("--prefix=%s" % prefix,
- "--libdir=%s/lib64" % prefix,
- "--disable-multilib",
- "--enable-languages=" + ','.join(enabled_languages),
- "--with-mpc=%s" % spec['mpc'].prefix,
- "--with-mpfr=%s" % spec['mpfr'].prefix,
- "--with-gmp=%s" % spec['gmp'].prefix,
- "--with-libelf=%s" % spec['libelf'].prefix,
- "--with-stage1-ldflags=%s" % self.rpath_args,
- "--with-boot-ldflags=%s" % self.rpath_args,
- "--enable-lto",
- "--with-quad")
+ configure(*options)
make()
make("install")
@@ -95,13 +112,11 @@ class Gcc(Package):
return
gcc = Executable(join_path(self.prefix.bin, 'gcc'))
- lines = gcc('-dumpspecs', return_output=True).split("\n")
- for i, line in enumerate(lines):
- if line.startswith("*link:"):
- specs_file = join_path(self.spec_dir, 'specs')
- with closing(open(specs_file, 'w')) as out:
- out.write(lines[i] + "\n")
- out.write("-rpath %s/lib:%s/lib64 \\\n"
- % (self.prefix, self.prefix))
- out.write(lines[i+1] + "\n")
- set_install_permissions(specs_file)
+ lines = gcc('-dumpspecs', return_output=True).strip().split("\n")
+ specs_file = join_path(self.spec_dir, 'specs')
+ with closing(open(specs_file, 'w')) as out:
+ for line in lines:
+ out.write(line + "\n")
+ if line.startswith("*link:"):
+ out.write("-rpath %s/lib:%s/lib64 \\\n"% (self.prefix, self.prefix))
+ set_install_permissions(specs_file)
diff --git a/var/spack/packages/gflags/package.py b/var/spack/packages/gflags/package.py
new file mode 100644
index 0000000000..62dd80a094
--- /dev/null
+++ b/var/spack/packages/gflags/package.py
@@ -0,0 +1,21 @@
+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
+ standard types such as string and the ability to define flags
+ in the source file in which they are used. Online documentation
+ available at: https://gflags.github.io/gflags/"""
+
+ homepage = "https://gflags.github.io/gflags"
+ url = "https://github.com/gflags/gflags/archive/v2.1.2.tar.gz"
+
+ version('2.1.2', 'ac432de923f9de1e9780b5254884599f')
+
+ def install(self, spec, prefix):
+ cmake("-DCMAKE_INSTALL_PREFIX=" + prefix,
+ "-DBUILD_SHARED_LIBS=ON")
+ make()
+ make("test")
+ make("install")
diff --git a/var/spack/packages/ghostscript/package.py b/var/spack/packages/ghostscript/package.py
new file mode 100644
index 0000000000..0ab49d425f
--- /dev/null
+++ b/var/spack/packages/ghostscript/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class Ghostscript(Package):
+ """an interpreter for the PostScript language and for PDF. """
+ homepage = "http://ghostscript.com/"
+ url = "http://downloads.ghostscript.com/public/ghostscript-9.16.tar.gz"
+
+ version('9.16', '829319325bbdb83f5c81379a8f86f38f')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" %prefix, "--enable-shared")
+
+ make()
+ make("install")
+
diff --git a/var/spack/packages/glm/package.py b/var/spack/packages/glm/package.py
new file mode 100644
index 0000000000..d00c301b4c
--- /dev/null
+++ b/var/spack/packages/glm/package.py
@@ -0,0 +1,19 @@
+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.
+ """
+
+ 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')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('..', *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/global/package.py b/var/spack/packages/global/package.py
new file mode 100644
index 0000000000..a77b1bdc09
--- /dev/null
+++ b/var/spack/packages/global/package.py
@@ -0,0 +1,24 @@
+from spack import *
+import os
+
+
+class Global(Package):
+ """ The Gnu Global tagging system """
+ # FIXME: add a proper url for your package's homepage here.
+ homepage = "http://www.gnu.org/software/global"
+ url = "http://tamacom.com/global/global-6.5.tar.gz"
+
+ version('6.5', 'dfec818b4f53d91721e247cf7b218078')
+
+ depends_on('exuberant-ctags')
+
+ def install(self, spec, prefix):
+ config_args = ['--prefix={}'.format(prefix)]
+
+ config_args.append('--with-exuberant-ctags={}'.format(
+ os.path.join(spec['exuberant-ctags'].prefix.bin, 'ctags')))
+
+ configure(*config_args)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/glog/package.py b/var/spack/packages/glog/package.py
new file mode 100644
index 0000000000..d73386b394
--- /dev/null
+++ b/var/spack/packages/glog/package.py
@@ -0,0 +1,15 @@
+import os
+from spack import *
+
+class Glog(Package):
+ """C++ implementation of the Google logging module."""
+
+ homepage = "https://github.com/google/glog"
+ url = "https://github.com/google/glog/archive/v0.3.3.tar.gz"
+
+ version('0.3.3', 'c1f86af27bd9c73186730aa957607ed0')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/graphviz/package.py b/var/spack/packages/graphviz/package.py
new file mode 100644
index 0000000000..7af7da1881
--- /dev/null
+++ b/var/spack/packages/graphviz/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Graphviz(Package):
+ """Graph Visualization Software"""
+ homepage = "http://www.graphviz.org"
+ url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz"
+
+ version('2.38.0', '5b6a829b2ac94efcd5fa3c223ed6d3ae')
+
+ parallel = False
+
+ depends_on("swig")
+ depends_on("python")
+ depends_on("ghostscript")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" %prefix)
+
+ make()
+ make("install")
+
diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py
index 992dd8ec70..15e0ef9338 100644
--- a/var/spack/packages/hdf5/package.py
+++ b/var/spack/packages/hdf5/package.py
@@ -10,7 +10,8 @@ class Hdf5(Package):
url = "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.gz"
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
-
+
+ version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
depends_on("mpi")
diff --git a/var/spack/packages/hypre/package.py b/var/spack/packages/hypre/package.py
new file mode 100644
index 0000000000..198b3f00dc
--- /dev/null
+++ b/var/spack/packages/hypre/package.py
@@ -0,0 +1,32 @@
+from spack import *
+
+class Hypre(Package):
+ """Hypre is a library of high performance preconditioners that
+ features parallel multigrid methods for both structured and
+ unstructured grid problems."""
+
+ homepage = "https://computation.llnl.gov/project/linear_solvers/software.php"
+ url = "https://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
+
+ version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')
+
+ depends_on("mpi")
+ depends_on("blas")
+ depends_on("lapack")
+
+ def install(self, spec, prefix):
+ blas_dir = spec['blas'].prefix
+ lapack_dir = spec['lapack'].prefix
+
+ # Hypre's source is staged under ./src so we'll have to manually
+ # cd into it.
+ with working_dir("src"):
+ configure(
+ "--prefix=%s" % prefix,
+ "--with-blas-libs=blas",
+ "--with-blas-lib-dirs=%s/lib" % blas_dir,
+ "--with-lapack-libs=\"lapack blas\"",
+ "--with-lapack-lib-dirs=%s/lib" % lapack_dir,
+ "--with-MPI")
+ make()
+ make("install")
diff --git a/var/spack/packages/launchmon/package.py b/var/spack/packages/launchmon/package.py
index bdf988bdd3..6fbe6a68d0 100644
--- a/var/spack/packages/launchmon/package.py
+++ b/var/spack/packages/launchmon/package.py
@@ -31,6 +31,11 @@ class Launchmon(Package):
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/scalability-llnl/launchmon.git', commit='ff7e22424b8f375318951eb1c9282fcbbfa8aadf')
+
+ depends_on('autoconf')
+ depends_on('automake')
+ depends_on('libtool')
def install(self, spec, prefix):
configure(
@@ -38,9 +43,5 @@ class Launchmon(Package):
"--with-bootfabric=cobo",
"--with-rm=slurm")
- # TODO: remove once Jira SPACK-19 is fixed
- import shutil
- shutil.copy2('/usr/bin/libtool', 'libtool')
-
make()
make("install")
diff --git a/var/spack/packages/leveldb/package.py b/var/spack/packages/leveldb/package.py
new file mode 100644
index 0000000000..da68a9cbcb
--- /dev/null
+++ b/var/spack/packages/leveldb/package.py
@@ -0,0 +1,29 @@
+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."""
+
+ homepage = "https://github.com/google/leveldb"
+ url = "https://github.com/google/leveldb/archive/v1.18.tar.gz"
+
+ version('1.18', '73770de34a2a5ab34498d2e05b2b7fa0')
+
+ depends_on("snappy")
+
+ def install(self, spec, prefix):
+ make()
+
+ mkdirp(prefix.include)
+ mkdirp(prefix.lib)
+
+ cp = which('cp')
+
+ # cp --preserve=links libleveldb.* prefix/lib
+ args = glob.glob('libleveldb.*')
+ args.append(prefix + '/lib')
+ cp('--preserve=links', *args)
+
+ cp('-r', 'include/leveldb', prefix + '/include')
diff --git a/var/spack/packages/libelf/package.py b/var/spack/packages/libelf/package.py
index bf2fefabd5..9338b8f393 100644
--- a/var/spack/packages/libelf/package.py
+++ b/var/spack/packages/libelf/package.py
@@ -36,6 +36,8 @@ class Libelf(Package):
version('0.8.13', '4136d7b4c04df68b686570afa26988ac')
version('0.8.12', 'e21f8273d9f5f6d43a59878dc274fec7')
+ provides('elf')
+
def install(self, spec, prefix):
configure("--prefix=" + prefix,
"--enable-shared",
diff --git a/var/spack/packages/libffi/package.py b/var/spack/packages/libffi/package.py
index 2c1c4eed4d..acec031717 100644
--- a/var/spack/packages/libffi/package.py
+++ b/var/spack/packages/libffi/package.py
@@ -6,11 +6,12 @@ class Libffi(Package):
to call any function specified by a call interface description at
run time."""
homepage = "https://sourceware.org/libffi/"
- url = "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz"
-
- version('3.1', 'f5898b29bbfd70502831a212d9249d10')
+
+ 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")
+
diff --git a/var/spack/packages/libjson-c/package.py b/var/spack/packages/libjson-c/package.py
new file mode 100644
index 0000000000..c0801cce9c
--- /dev/null
+++ b/var/spack/packages/libjson-c/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class LibjsonC(Package):
+ """ 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)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/libpciaccess/package.py b/var/spack/packages/libpciaccess/package.py
new file mode 100644
index 0000000000..6022fc34a3
--- /dev/null
+++ b/var/spack/packages/libpciaccess/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Libpciaccess(Package):
+ """Generic PCI access library."""
+
+ homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
+ url = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
+
+ version('0.13.4', git='http://anongit.freedesktop.org/git/xorg/lib/libpciaccess.git',
+ tag='libpciaccess-0.13.4')
+
+ depends_on('autoconf')
+ depends_on('libtool')
+
+ def install(self, spec, prefix):
+ from subprocess import call
+ call(["./autogen.sh"])
+ configure("--prefix=%s" % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/libsodium/package.py b/var/spack/packages/libsodium/package.py
new file mode 100644
index 0000000000..1c8a16d998
--- /dev/null
+++ b/var/spack/packages/libsodium/package.py
@@ -0,0 +1,19 @@
+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"
+
+ 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 install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/libuuid/package.py b/var/spack/packages/libuuid/package.py
new file mode 100644
index 0000000000..373c5bfcac
--- /dev/null
+++ b/var/spack/packages/libuuid/package.py
@@ -0,0 +1,16 @@
+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"
+
+ version('1.0.3', 'd44d866d06286c08ba0846aba1086d68')
+
+ 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/packages/libxcb/package.py b/var/spack/packages/libxcb/package.py
index 521cd0d475..16a5525c0d 100644
--- a/var/spack/packages/libxcb/package.py
+++ b/var/spack/packages/libxcb/package.py
@@ -10,7 +10,7 @@ class Libxcb(Package):
url = "http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz"
version('1.11', '1698dd837d7e6e94d029dbe8b3a82deb')
-
+ version('1.11.1', '118623c15a96b08622603a71d8789bf3')
depends_on("python")
depends_on("xcb-proto")
diff --git a/var/spack/packages/libxml2/package.py b/var/spack/packages/libxml2/package.py
index 72199d8def..3a0af6b368 100644
--- a/var/spack/packages/libxml2/package.py
+++ b/var/spack/packages/libxml2/package.py
@@ -9,11 +9,12 @@ class Libxml2(Package):
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
+ extends('python')
depends_on('zlib')
depends_on('xz')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--without-python")
+ configure("--prefix=%s" % prefix)
+
make()
make("install")
diff --git a/var/spack/packages/lmdb/package.py b/var/spack/packages/lmdb/package.py
new file mode 100644
index 0000000000..875b8100c5
--- /dev/null
+++ b/var/spack/packages/lmdb/package.py
@@ -0,0 +1,39 @@
+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"
+
+ version('0.9.16', '0de89730b8f3f5711c2b3a4ba517b648')
+
+ def install(self, spec, prefix):
+ os.chdir('libraries/liblmdb')
+
+ make()
+
+ mkdirp(prefix.bin)
+ mkdirp(prefix + '/man/man1')
+ mkdirp(prefix.lib)
+ mkdirp(prefix.include)
+
+ bins = ['mdb_stat', 'mdb_copy', 'mdb_dump', 'mdb_load']
+ for f in bins:
+ install(f, prefix.bin)
+
+ mans = ['mdb_stat.1', 'mdb_copy.1', 'mdb_dump.1', 'mdb_load.1']
+ for f in mans:
+ install(f, prefix + '/man/man1')
+
+ libs = ['liblmdb.a', 'liblmdb.so']
+ for f in libs:
+ install(f, prefix.lib)
+
+ includes = ['lmdb.h']
+ for f in includes:
+ install(f, prefix.include)
diff --git a/var/spack/packages/lua/package.py b/var/spack/packages/lua/package.py
new file mode 100644
index 0000000000..57c443cc2d
--- /dev/null
+++ b/var/spack/packages/lua/package.py
@@ -0,0 +1,26 @@
+from spack import *
+import os
+
+class Lua(Package):
+ """ The Lua programming language interpreter and library """
+ homepage = "http://www.lua.org"
+ url = "http://www.lua.org/ftp/lua-5.1.5.tar.gz"
+
+ version('5.3.1', '797adacada8d85761c079390ff1d9961')
+ version('5.3.0', 'a1b0a7e92d0c85bbff7a8d27bf29f8af')
+ version('5.2.4', '913fdb32207046b273fdb17aad70be13')
+ version('5.2.3', 'dc7f94ec6ff15c985d2d6ad0f1b35654')
+ version('5.2.2', 'efbb645e897eae37cad4344ce8b0a614')
+ version('5.2.1', 'ae08f641b45d737d12d30291a5e5f6e3')
+ version('5.2.0', 'f1ea831f397214bae8a265995ab1a93e')
+ version('5.1.5', '2e115fe26e435e33b0d5c022e4490567')
+ version('5.1.4', 'd0870f2de55d59c1c8419f36e8fac150')
+ version('5.1.3', 'a70a8dfaa150e047866dc01a46272599')
+
+ depends_on('ncurses')
+
+ def install(self, spec, prefix):
+ make('INSTALL_TOP=%s' % prefix,
+ 'MYLDFLAGS=-L%s/lib' % spec['ncurses'].prefix,
+ 'linux',
+ 'install')
diff --git a/var/spack/packages/matio/package.py b/var/spack/packages/matio/package.py
new file mode 100644
index 0000000000..12cfb80926
--- /dev/null
+++ b/var/spack/packages/matio/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+
+class Matio(Package):
+ """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"
+
+ version('1.5.2', '85b007b99916c63791f28398f6a4c6f1')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/memaxes/package.py b/var/spack/packages/memaxes/package.py
index afa62009a6..76d5d3f831 100644
--- a/var/spack/packages/memaxes/package.py
+++ b/var/spack/packages/memaxes/package.py
@@ -5,12 +5,11 @@ class Memaxes(Package):
homepage = "https://github.com/scalability-llnl/MemAxes"
- version('0.5', 'b0f561d48aa7301e028d074bc4b5751b',
+ version('0.5', '5874f3fda9fd2d313c0ff9684f915ab5',
url='https://github.com/scalability-llnl/MemAxes/archive/v0.5.tar.gz')
depends_on("cmake@2.8.9:")
depends_on("qt@5:")
- depends_on("vtk")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
diff --git a/var/spack/packages/mesa/package.py b/var/spack/packages/mesa/package.py
index 2dba878a77..2a04a8fd51 100644
--- a/var/spack/packages/mesa/package.py
+++ b/var/spack/packages/mesa/package.py
@@ -1,7 +1,7 @@
from spack import *
class Mesa(Package):
- """Mesa is an open-source implementation of the OpenGL
+ """Mesa is an open-source implementation of the OpenGL
specification - a system for rendering interactive 3D graphics."""
homepage = "http://www.mesa3d.org"
@@ -11,9 +11,10 @@ class Mesa(Package):
# version('10.4.4', '8d863a3c209bf5116b2babfccccc68ce')
version('8.0.5', 'cda5d101f43b8784fa60bdeaca4056f2')
- # mesa 7.x, 8.x, 9.x
+ # mesa 7.x, 8.x, 9.x
depends_on("libdrm@2.4.33")
depends_on("llvm@3.0")
+ depends_on("libxml2")
# patch("llvm-fixes.patch") # using newer llvm
diff --git a/var/spack/packages/metis/package.py b/var/spack/packages/metis/package.py
index fa13d52127..7ce5ae1925 100644
--- a/var/spack/packages/metis/package.py
+++ b/var/spack/packages/metis/package.py
@@ -5,28 +5,23 @@ class Metis(Package):
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
- developed in our lab."""
+ 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"
version('5.1.0', '5465e67079419a69e0116de24fce58fe')
- # FIXME: Add dependencies if this package requires them.
- # depends_on("foo")
-
- def patch(self):
- filter_file(r'#define IDXTYPEWIDTH 32', '#define IDXTYPEWIDTH 64', 'include/metis.h',
- string=True)
-
+ depends_on('mpi')
def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..',
- '-DGKLIB_PATH=../GKlib',
- '-DBUILD_SHARED_LIBS=TRUE',
- *std_cmake_args)
- make()
- make("install")
-
+ cmake(".",
+ '-DGKLIB_PATH=%s/GKlib' % pwd(),
+ '-DSHARED=1',
+ '-DCMAKE_C_COMPILER=mpicc',
+ '-DCMAKE_CXX_COMPILER=mpicxx',
+ '-DSHARED=1',
+ *std_cmake_args)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/mpfr/package.py b/var/spack/packages/mpfr/package.py
index 62dac63206..9c744a22df 100644
--- a/var/spack/packages/mpfr/package.py
+++ b/var/spack/packages/mpfr/package.py
@@ -28,9 +28,12 @@ class Mpfr(Package):
"""The MPFR library is a C library for multiple-precision
floating-point computations with correct rounding."""
homepage = "http://www.mpfr.org"
- url = "http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.bz2"
+ url = "http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2"
- version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
+ version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138')
+ # version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
+
+ depends_on('gmp')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/packages/mpich/package.py b/var/spack/packages/mpich/package.py
index 6aa8f2eca4..d48bf878f6 100644
--- a/var/spack/packages/mpich/package.py
+++ b/var/spack/packages/mpich/package.py
@@ -33,11 +33,15 @@ class Mpich(Package):
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
+ version('3.1.4', '2ab544607986486562e076b83937bba2')
+ version('3.1.3', '93cb17f91ac758cbf9174ecb03563778')
+ version('3.1.2', '7fbf4b81dcb74b07ae85939d1ceee7f1')
+ version('3.1.1', '40dc408b1e03cc36d80209baaa2d32b7')
+ version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
- provides('mpi@:3', when='@3:')
- provides('mpi@:1', when='@1:')
-
+ provides('mpi@:3.0', when='@3:')
+ provides('mpi@:1.3', when='@1:')
def setup_dependent_environment(self, module, spec, dep_spec):
"""For dependencies, make mpicc's use spack wrapper."""
diff --git a/var/spack/packages/munge/package.py b/var/spack/packages/munge/package.py
new file mode 100644
index 0000000000..c737ca0354
--- /dev/null
+++ b/var/spack/packages/munge/package.py
@@ -0,0 +1,20 @@
+from spack import *
+import os
+
+class Munge(Package):
+ """ 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')
+
+ 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")
+
diff --git a/var/spack/packages/ncdu/package.py b/var/spack/packages/ncdu/package.py
new file mode 100644
index 0000000000..234f9730d6
--- /dev/null
+++ b/var/spack/packages/ncdu/package.py
@@ -0,0 +1,28 @@
+from spack import *
+
+class Ncdu(Package):
+ """
+ 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
+ to run in any minimal POSIX-like environment with ncurses installed.
+ """
+
+ homepage = "http://dev.yorhel.nl/ncdu"
+ url = "http://dev.yorhel.nl/download/ncdu-1.11.tar.gz"
+
+ version('1.11', '9e44240a5356b029f05f0e70a63c4d12')
+ version('1.10', '7535decc8d54eca811493e82d4bfab2d')
+ 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'])
+
+ make()
+ make("install")
diff --git a/var/spack/packages/ncurses/package.py b/var/spack/packages/ncurses/package.py
index a22e83503f..8f5763bfdd 100644
--- a/var/spack/packages/ncurses/package.py
+++ b/var/spack/packages/ncurses/package.py
@@ -21,3 +21,11 @@ class Ncurses(Package):
make()
make("install")
+ configure("--prefix=%s" % prefix,
+ "--with-shared",
+ "--disable-widec",
+ "--disable-pc-files",
+ "--without-ada")
+ make()
+ make("install")
+
diff --git a/var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch b/var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch
new file mode 100644
index 0000000000..46dda5fc9d
--- /dev/null
+++ b/var/spack/packages/netcdf/netcdf-4.3.3-mpi.patch
@@ -0,0 +1,25 @@
+diff -Nur netcdf-4.3.3/CMakeLists.txt netcdf-4.3.3.mpi/CMakeLists.txt
+--- netcdf-4.3.3/CMakeLists.txt 2015-02-12 16:44:35.000000000 -0500
++++ netcdf-4.3.3.mpi/CMakeLists.txt 2015-10-14 16:44:41.176300658 -0400
+@@ -753,6 +753,7 @@
+ SET(USE_PARALLEL OFF CACHE BOOL "")
+ MESSAGE(STATUS "Cannot find HDF5 library built with parallel support. Disabling parallel build.")
+ ELSE()
++ FIND_PACKAGE(MPI REQUIRED)
+ SET(USE_PARALLEL ON CACHE BOOL "")
+ SET(STATUS_PARALLEL "ON")
+ ENDIF()
+diff -Nur netcdf-4.3.3/liblib/CMakeLists.txt netcdf-4.3.3.mpi/liblib/CMakeLists.txt
+--- netcdf-4.3.3/liblib/CMakeLists.txt 2015-02-12 16:44:35.000000000 -0500
++++ netcdf-4.3.3.mpi/liblib/CMakeLists.txt 2015-10-14 16:44:57.757793634 -0400
+@@ -71,6 +71,10 @@
+ SET(TLL_LIBS ${TLL_LIBS} ${CURL_LIBRARY})
+ ENDIF()
+
++IF(USE_PARALLEL)
++ SET(TLL_LIBS ${TLL_LIBS} ${MPI_C_LIBRARIES})
++ENDIF()
++
+ IF(USE_HDF4)
+ SET(TLL_LIBS ${TLL_LIBS} ${HDF4_LIBRARIES})
+ ENDIF()
diff --git a/var/spack/packages/netcdf/package.py b/var/spack/packages/netcdf/package.py
index 34284ea725..e1e0d836c6 100644
--- a/var/spack/packages/netcdf/package.py
+++ b/var/spack/packages/netcdf/package.py
@@ -1,28 +1,27 @@
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."""
+ """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.3.3', '5fbd0e108a54bd82cb5702a73f56d2ae')
+ patch('netcdf-4.3.3-mpi.patch')
+
# Dependencies:
- # >HDF5
+ # >HDF5
depends_on("hdf5")
- def install(self, spec, prefix):
- configure(
- "--prefix=%s" % prefix,
- "--disable-dap", # Disable DAP.
- "--disable-shared", # Don't build shared libraries (use static libs).
- "CPPFLAGS=-I%s/include" % spec['hdf5'].prefix, # Link HDF5's include dir.
- "LDFLAGS=-L%s/lib" % spec['hdf5'].prefix) # Link HDF5's lib dir.
-
- make("install")
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('..',
+ "-DCMAKE_INSTALL_PREFIX:PATH=%s" % prefix,
+ "-DENABLE_DAP:BOOL=OFF", # Disable DAP.
+ "-DBUILD_SHARED_LIBS:BOOL=OFF") # Don't build shared libraries (use static libs).
- # Check the newly installed netcdf package. Currently disabled.
- # make("check")
+ make()
+ make("install")
diff --git a/var/spack/packages/netlib-blas/package.py b/var/spack/packages/netlib-blas/package.py
new file mode 100644
index 0000000000..85e97323d3
--- /dev/null
+++ b/var/spack/packages/netlib-blas/package.py
@@ -0,0 +1,46 @@
+from spack import *
+import os
+
+
+class NetlibBlas(Package):
+ """Netlib reference BLAS"""
+ homepage = "http://www.netlib.org/lapack/"
+ url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
+
+ version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
+
+ variant('fpic', default=False, description="Build with -fpic compiler option")
+
+ # virtual dependency
+ provides('blas')
+
+ # Doesn't always build correctly in parallel
+ parallel = False
+
+ def patch(self):
+ os.symlink('make.inc.example', 'make.inc')
+
+ mf = FileFilter('make.inc')
+ mf.filter('^FORTRAN.*', 'FORTRAN = f90')
+ mf.filter('^LOADER.*', 'LOADER = f90')
+ mf.filter('^CC =.*', 'CC = cc')
+
+ if '+fpic' in self.spec:
+ mf.filter('^OPTS.*=.*', 'OPTS = -O2 -frecursive -fpic')
+ mf.filter('^CFLAGS =.*', 'CFLAGS = -O3 -fpic')
+
+
+ def install(self, spec, prefix):
+ make('blaslib')
+
+ # Tests that blas builds correctly
+ make('blas_testing')
+
+ # No install provided
+ mkdirp(prefix.lib)
+ install('librefblas.a', prefix.lib)
+
+ # Blas virtual package should provide blas.a and libblas.a
+ with working_dir(prefix.lib):
+ symlink('librefblas.a', 'blas.a')
+ symlink('librefblas.a', 'libblas.a')
diff --git a/var/spack/packages/netlib-lapack/package.py b/var/spack/packages/netlib-lapack/package.py
new file mode 100644
index 0000000000..fb6b99e27c
--- /dev/null
+++ b/var/spack/packages/netlib-lapack/package.py
@@ -0,0 +1,59 @@
+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.
+ """
+ homepage = "http://www.netlib.org/lapack/"
+ url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
+
+ version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
+ version('3.4.2', '61bf1a8a4469d4bdb7604f5897179478')
+ version('3.4.1', '44c3869c38c8335c2b9c2a8bb276eb55')
+ version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70')
+ version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4')
+
+ variant('shared', default=False, description="Build shared library version")
+
+ # virtual dependency
+ provides('lapack')
+
+ # blas is a virtual dependency.
+ depends_on('blas')
+
+ depends_on('cmake')
+
+ # Doesn't always build correctly in parallel
+ parallel = False
+
+ @when('^netlib-blas')
+ def get_blas_libs(self):
+ blas = self.spec['netlib-blas']
+ return [join_path(blas.prefix.lib, 'blas.a')]
+
+
+ @when('^atlas')
+ def get_blas_libs(self):
+ blas = self.spec['atlas']
+ return [join_path(blas.prefix.lib, l)
+ for l in ('libf77blas.a', 'libatlas.a')]
+
+
+ def install(self, spec, prefix):
+ blas_libs = ";".join(self.get_blas_libs())
+ cmake_args = [".", '-DBLAS_LIBRARIES=' + blas_libs]
+
+ if '+shared' in spec:
+ cmake_args.append('-DBUILD_SHARED_LIBS=ON')
+
+ cmake_args += std_cmake_args
+
+ cmake(*cmake_args)
+ make()
+ make("install")
+
diff --git a/var/spack/packages/nettle/package.py b/var/spack/packages/nettle/package.py
index 0f20bc06df..cd600b0b87 100644
--- a/var/spack/packages/nettle/package.py
+++ b/var/spack/packages/nettle/package.py
@@ -9,6 +9,8 @@ class Nettle(Package):
version('2.7', '2caa1bd667c35db71becb93c5d89737f')
+ depends_on('gmp')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
diff --git a/var/spack/packages/ompt-openmp/package.py b/var/spack/packages/ompt-openmp/package.py
new file mode 100644
index 0000000000..5d380ebd77
--- /dev/null
+++ b/var/spack/packages/ompt-openmp/package.py
@@ -0,0 +1,23 @@
+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."""
+ homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
+ url = "http://github.com/khuck/LLVM-openmp/archive/v0.1-spack.tar.gz"
+
+ version('spack', '35227b2726e377faa433fc841226e036')
+
+ # depends_on("foo")
+
+ 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,
+ '-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/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py
index 7e84cbaf65..5e429dedf5 100644
--- a/var/spack/packages/openmpi/package.py
+++ b/var/spack/packages/openmpi/package.py
@@ -1,5 +1,8 @@
+import os
+
from spack import *
+
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)
@@ -11,15 +14,28 @@ class Openmpi(Package):
homepage = "http://www.open-mpi.org"
- version('1.8.2', 'ab538ed8e328079d566fc797792e016e',
- url='http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.2.tar.gz')
+ version('1.10.0', '280cf952de68369cebaca886c5ce0304',
+ url = "http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.0.tar.bz2")
+ version('1.8.8', '0dab8e602372da1425e9242ae37faf8c',
+ url = 'http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.8.tar.bz2')
version('1.6.5', '03aed2a4aa4d0b27196962a2a65fc475',
url = "http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2")
patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5")
patch('llnl-platforms.patch', when="@1.6.5")
- provides('mpi@:2')
+ provides('mpi@:2.2', when='@1.6.5') # Open MPI 1.6.5 supports MPI-2.2
+ provides('mpi@:3.0', when='@1.8.8') # Open MPI 1.8.8 supports MPI-3.0
+ provides('mpi@:3.0', when='@1.10.0') # Open MPI 1.10.0 supports MPI-3.0
+
+
+ def setup_dependent_environment(self, module, spec, dep_spec):
+ """For dependencies, make mpicc's use spack wrapper."""
+ os.environ['OMPI_CC'] = 'cc'
+ os.environ['OMPI_CXX'] = 'c++'
+ os.environ['OMPI_FC'] = 'f90'
+ os.environ['OMPI_F77'] = 'f77'
+
def install(self, spec, prefix):
config_args = ["--prefix=%s" % prefix]
@@ -39,3 +55,55 @@ class Openmpi(Package):
configure(*config_args)
make()
make("install")
+
+ self.filter_compilers()
+
+
+ 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 and FC set
+ to Spack's generic cc, c++ and f90. We want them to
+ 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)
+
+
diff --git a/var/spack/packages/parpack/package.py b/var/spack/packages/parpack/package.py
new file mode 100644
index 0000000000..622aceca04
--- /dev/null
+++ b/var/spack/packages/parpack/package.py
@@ -0,0 +1,43 @@
+from spack import *
+import os
+import shutil
+
+class Parpack(Package):
+ """ARPACK is a collection of Fortran77 subroutines designed to solve large
+ scale eigenvalue problems."""
+
+ homepage = "http://www.caam.rice.edu/software/ARPACK/download.html"
+ url = "http://www.caam.rice.edu/software/ARPACK/SRC/parpack96.tar.Z"
+
+ version('96', 'a175f70ff71837a33ff7e4b0b6054f43')
+
+ depends_on('mpi')
+ depends_on('blas')
+ depends_on('lapack')
+
+ def patch(self):
+ # Filter the CJ makefile to make a spack one.
+ shutil.move('ARMAKES/ARmake.CJ', 'ARmake.inc')
+ mf = FileFilter('ARmake.inc')
+
+ # Be sure to use Spack F77 wrapper
+ mf.filter('^FC.*', 'FC = f77')
+ mf.filter('^FFLAGS.*', 'FFLAGS = -O2 -g')
+
+ # Set up some variables.
+ 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('^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')
+
+ mkdirp(prefix.lib)
+ install('libparpack.a', prefix.lib)
diff --git a/var/spack/packages/petsc/package.py b/var/spack/packages/petsc/package.py
new file mode 100644
index 0000000000..4864e39bf1
--- /dev/null
+++ b/var/spack/packages/petsc/package.py
@@ -0,0 +1,40 @@
+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."""
+
+ 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('3.5.3', 'd4fd2734661e89f18ac6014b5dd1ef2f')
+ version('3.5.2', 'ad170802b3b058b5deb9cd1f968e7e13')
+ version('3.5.1', 'a557e029711ebf425544e117ffa44d8f')
+
+ depends_on("boost")
+ depends_on("blas")
+ depends_on("lapack")
+ depends_on("hypre")
+ depends_on("parmetis")
+ depends_on("metis")
+ depends_on("hdf5")
+ depends_on("mpi")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "CC=cc",
+ "CXX=c++",
+ "FC=f90",
+ "--with-blas-lib=%s/libblas.a" % spec['blas'].prefix.lib,
+ "--with-lapack-lib=%s/liblapack.a" % spec['lapack'].prefix.lib,
+ "--with-boost-dir=%s" % spec['boost'].prefix,
+ "--with-hypre-dir=%s" % spec['hypre'].prefix,
+ "--with-parmetis-dir=%s" % spec['parmetis'].prefix,
+ "--with-metis-dir=%s" % spec['metis'].prefix,
+ "--with-hdf5-dir=%s" % spec['hdf5'].prefix,
+ "--with-shared-libraries=0")
+
+ # PETSc has its own way of doing parallel make.
+ make('MAKE_NP=%s' % make_jobs, parallel=False)
+ make("install")
diff --git a/var/spack/packages/pidx/package.py b/var/spack/packages/pidx/package.py
new file mode 100644
index 0000000000..81aed62fb1
--- /dev/null
+++ b/var/spack/packages/pidx/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Pidx(Package):
+ """PIDX Parallel I/O Library.
+
+ PIDX is an efficient parallel I/O library that reads and writes
+ multiresolution IDX data files.
+ """
+
+ homepage = "http://www.cedmav.com/pidx"
+
+ version('1.0', git='https://github.com/sci-visus/PIDX.git',
+ commit='6afa1cf71d1c41263296dc049c8fabaf73c296da')
+
+ 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/packages/pkg-config/package.py b/var/spack/packages/pkg-config/package.py
new file mode 100644
index 0000000000..9964c6ce34
--- /dev/null
+++ b/var/spack/packages/pkg-config/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class PkgConfig(Package):
+ """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"
+
+ version('0.28', 'aa3c86e67551adc3ac865160e34a2a0d')
+
+ parallel = False
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" %prefix, "--enable-shared")
+
+ make()
+ make("install")
+
diff --git a/var/spack/packages/protobuf/package.py b/var/spack/packages/protobuf/package.py
new file mode 100644
index 0000000000..34085c7ce9
--- /dev/null
+++ b/var/spack/packages/protobuf/package.py
@@ -0,0 +1,16 @@
+import os
+from spack import *
+
+class Protobuf(Package):
+ """Google's data interchange format."""
+
+ homepage = "https://developers.google.com/protocol-buffers"
+ url = "https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.bz2"
+
+ version('2.5.0', 'a72001a9067a4c2c4e0e836d0f92ece4')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix)
+ make()
+ make("check")
+ make("install")
diff --git a/var/spack/packages/py-cffi/package.py b/var/spack/packages/py-cffi/package.py
new file mode 100644
index 0000000000..a4d37483fe
--- /dev/null
+++ b/var/spack/packages/py-cffi/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class PyCffi(Package):
+ """Foreign Function Interface for Python calling C code"""
+ homepage = "http://cffi.readthedocs.org/en/latest/"
+ # base https://pypi.python.org/pypi/cffi
+ url = "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz#md5="
+
+ version('1.1.2', 'ca6e6c45b45caa87aee9adc7c796eaea')
+
+ extends('python')
+ depends_on('py-setuptools')
+ depends_on('py-pycparser')
+ depends_on('libffi')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-cython/package.py b/var/spack/packages/py-cython/package.py
index af67a15526..68eb735ad9 100644
--- a/var/spack/packages/py-cython/package.py
+++ b/var/spack/packages/py-cython/package.py
@@ -3,9 +3,10 @@ from spack import *
class PyCython(Package):
"""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.21.2.tar.gz"
+ url = "https://pypi.python.org/packages/source/C/Cython/cython-0.22.tar.gz"
version('0.21.2', 'd21adb870c75680dc857cd05d41046a4')
+ version('0.22', '1ae25add4ef7b63ee9b4af697300d6b6')
extends('python')
diff --git a/var/spack/packages/py-dateutil/package.py b/var/spack/packages/py-dateutil/package.py
index 3bd2f2ca13..0a17f2f2d2 100644
--- a/var/spack/packages/py-dateutil/package.py
+++ b/var/spack/packages/py-dateutil/package.py
@@ -6,6 +6,7 @@ class PyDateutil(Package):
url = "https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.4.0.tar.gz"
version('2.4.0', '75714163bb96bedd07685cdb2071b8bc')
+ version('2.4.2', '4ef68e1c485b09e9f034e10473e5add2')
extends('python')
depends_on('py-setuptools')
diff --git a/var/spack/packages/py-genders/package.py b/var/spack/packages/py-genders/package.py
new file mode 100644
index 0000000000..c49c8fd5b2
--- /dev/null
+++ b/var/spack/packages/py-genders/package.py
@@ -0,0 +1,15 @@
+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."""
+ 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')
+ extends('python')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" %prefix)
+ make(parallel=False)
+ make("install")
+
diff --git a/var/spack/packages/py-h5py/package.py b/var/spack/packages/py-h5py/package.py
index f72b3ac06e..6293da5407 100644
--- a/var/spack/packages/py-h5py/package.py
+++ b/var/spack/packages/py-h5py/package.py
@@ -7,8 +7,9 @@ class PyH5py(Package):
url = "https://pypi.python.org/packages/source/h/h5py/h5py-2.4.0.tar.gz"
version('2.4.0', '80c9a94ae31f84885cc2ebe1323d6758')
+ version('2.5.0', '6e4301b5ad5da0d51b0a1e5ac19e3b74')
- extends('python', ignore=lambda f: re.match(r'cy*', f))
+ extends('python', ignore=lambda f: re.match(r'bin/cy*', f))
depends_on('hdf5')
depends_on('py-numpy')
depends_on('py-cython')
diff --git a/var/spack/packages/py-ipython/package.py b/var/spack/packages/py-ipython/package.py
index 907ea9edcd..8d0e64a07f 100644
--- a/var/spack/packages/py-ipython/package.py
+++ b/var/spack/packages/py-ipython/package.py
@@ -6,6 +6,7 @@ class PyIpython(Package):
url = "https://pypi.python.org/packages/source/i/ipython/ipython-2.3.1.tar.gz"
version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
+ version('3.1.0', 'a749d90c16068687b0ec45a27e72ef8f')
extends('python')
depends_on('py-pygments')
diff --git a/var/spack/packages/py-lockfile/package.py b/var/spack/packages/py-lockfile/package.py
new file mode 100644
index 0000000000..8722914d94
--- /dev/null
+++ b/var/spack/packages/py-lockfile/package.py
@@ -0,0 +1,23 @@
+from spack import *
+
+class PyLockfile(Package):
+ """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
+ deprecated posixfile module, the API is identical across both
+ Unix (including Linux and Mac) and Windows platforms. The lock
+ mechanism relies on the atomic nature of the link (on Unix) and
+ mkdir (on Windows) system calls. An implementation based on
+ SQLite is also provided, more as a demonstration of the
+ possibilities it provides than as production-quality code.
+ """
+ homepage = "https://pypi.python.org/pypi/lockfile"
+ url = "https://pypi.python.org/packages/source/l/lockfile/lockfile-0.10.2.tar.gz"
+
+ version('0.10.2', '1aa6175a6d57f082cd12e7ac6102ab15')
+
+ extends("python")
+ depends_on("py-setuptools")
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-matplotlib/package.py b/var/spack/packages/py-matplotlib/package.py
index 04037f004e..e7ce3dfd24 100644
--- a/var/spack/packages/py-matplotlib/package.py
+++ b/var/spack/packages/py-matplotlib/package.py
@@ -7,6 +7,7 @@ class PyMatplotlib(Package):
url = "https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.2.tar.gz"
version('1.4.2', '7d22efb6cce475025733c50487bd8898')
+ version('1.4.3', '86af2e3e3c61849ac7576a6f5ca44267')
extends('python', ignore=r'bin/nosetests.*$')
@@ -28,7 +29,7 @@ class PyMatplotlib(Package):
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
- if str(self.version) == '1.4.2':
+ if str(self.version) in ['1.4.2', '1.4.3']:
# hack to fix configuration file
config_file = None
for p,d,f in os.walk(prefix.lib):
diff --git a/var/spack/packages/py-mock/package.py b/var/spack/packages/py-mock/package.py
new file mode 100644
index 0000000000..3b08428ba0
--- /dev/null
+++ b/var/spack/packages/py-mock/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class PyMock(Package):
+ """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."""
+
+ homepage = "https://github.com/testing-cabal/mock"
+ url = "https://pypi.python.org/packages/source/m/mock/mock-1.3.0.tar.gz"
+
+ version('1.3.0', '73ee8a4afb3ff4da1b4afa287f39fdeb')
+
+ extends('python')
+ depends_on('py-setuptools@17.1:')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-nose/package.py b/var/spack/packages/py-nose/package.py
index 155019289d..e7c6cf0264 100644
--- a/var/spack/packages/py-nose/package.py
+++ b/var/spack/packages/py-nose/package.py
@@ -8,6 +8,7 @@ class PyNose(Package):
url = "https://pypi.python.org/packages/source/n/nose/nose-1.3.4.tar.gz"
version('1.3.4', '6ed7169887580ddc9a8e16048d38274d')
+ version('1.3.6', '0ca546d81ca8309080fc80cb389e7a16')
extends('python', ignore=r'bin/nosetests.*$')
depends_on('py-setuptools')
diff --git a/var/spack/packages/py-numpy/package.py b/var/spack/packages/py-numpy/package.py
index e6cb6a464f..efa109a3e9 100644
--- a/var/spack/packages/py-numpy/package.py
+++ b/var/spack/packages/py-numpy/package.py
@@ -6,9 +6,23 @@ class PyNumpy(Package):
url = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz"
version('1.9.1', '78842b73560ec378142665e712ae4ad9')
-
+ version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645')
+
extends('python')
depends_on('py-nose')
+ depends_on('netlib-blas+fpic')
+ depends_on('netlib-lapack+shared')
+
+ def patch(self):
+ filter_file(
+ "possible_executables = \['(gfortran|g77|ifort|efl)",
+ "possible_executables = ['fc",
+ "numpy/distutils/fcompiler/gnu.py",
+ "numpy/distutils/fcompiler/intel.py")
def install(self, spec, prefix):
+ with open('site.cfg', 'w') as f:
+ f.write('[DEFAULT]\n')
+ f.write('libraries=lapack,blas\n')
+ f.write('library_dirs=%s/lib:%s/lib\n' % (spec['blas'].prefix, spec['lapack'].prefix))
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pandas/package.py b/var/spack/packages/py-pandas/package.py
new file mode 100644
index 0000000000..5b9997faa9
--- /dev/null
+++ b/var/spack/packages/py-pandas/package.py
@@ -0,0 +1,25 @@
+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."""
+ homepage = "http://pandas.pydata.org/"
+ url = "https://pypi.python.org/packages/source/p/pandas/pandas-0.16.0.tar.gz#md5=bfe311f05dc0c351f8955fbd1e296e73"
+
+ version('0.16.0', 'bfe311f05dc0c351f8955fbd1e296e73')
+ version('0.16.1', 'fac4f25748f9610a3e00e765474bdea8')
+
+ extends('python')
+ depends_on('py-dateutil')
+ depends_on('py-numpy')
+ depends_on('py-matplotlib')
+ depends_on('py-scipy')
+ depends_on('py-setuptools')
+ depends_on('py-pytz')
+ depends_on('libdrm')
+ depends_on('libpciaccess')
+ depends_on('llvm')
+ depends_on('mesa')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pycparser/package.py b/var/spack/packages/py-pycparser/package.py
new file mode 100644
index 0000000000..f2bb679d25
--- /dev/null
+++ b/var/spack/packages/py-pycparser/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyPycparser(Package):
+ """pycparser is 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)
diff --git a/var/spack/packages/py-pyelftools/package.py b/var/spack/packages/py-pyelftools/package.py
new file mode 100644
index 0000000000..d5ad32e624
--- /dev/null
+++ b/var/spack/packages/py-pyelftools/package.py
@@ -0,0 +1,13 @@
+from spack import *
+
+class PyPyelftools(Package):
+ """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/packages/py-pygments/package.py b/var/spack/packages/py-pygments/package.py
index 990eebde65..7e07bf6869 100644
--- a/var/spack/packages/py-pygments/package.py
+++ b/var/spack/packages/py-pygments/package.py
@@ -6,6 +6,7 @@ class PyPygments(Package):
url = "https://pypi.python.org/packages/source/P/Pygments/Pygments-2.0.1.tar.gz"
version('2.0.1', 'e0daf4c14a4fe5b630da765904de4d6c')
+ version('2.0.2', '238587a1370d62405edabd0794b3ec4a')
extends('python')
depends_on('py-setuptools')
diff --git a/var/spack/packages/py-pylint/package.py b/var/spack/packages/py-pylint/package.py
index 7a6ee7dbbc..9579708c29 100644
--- a/var/spack/packages/py-pylint/package.py
+++ b/var/spack/packages/py-pylint/package.py
@@ -7,6 +7,7 @@ class PyPylint(Package):
url = "https://pypi.python.org/packages/source/p/pylint/pylint-1.4.1.tar.gz"
version('1.4.1', 'df7c679bdcce5019389038847e4de622')
+ version('1.4.3', '5924c1c7ca5ca23647812f5971d0ea44')
extends('python')
depends_on('py-nose')
diff --git a/var/spack/packages/py-pypar/package.py b/var/spack/packages/py-pypar/package.py
new file mode 100644
index 0000000000..af9c76ccd8
--- /dev/null
+++ b/var/spack/packages/py-pypar/package.py
@@ -0,0 +1,14 @@
+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."""
+ homepage = "http://code.google.com/p/pypar/"
+ url = "https://pypar.googlecode.com/files/pypar-2.1.5_108.tgz"
+
+ version('2.1.5_108', '7a1f28327d2a3b679f9455c843d850b8', url='https://pypar.googlecode.com/files/pypar-2.1.5_108.tgz')
+ extends('python')
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+ with working_dir('source'):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-python-daemon/package.py b/var/spack/packages/py-python-daemon/package.py
new file mode 100644
index 0000000000..12cbe9101c
--- /dev/null
+++ b/var/spack/packages/py-python-daemon/package.py
@@ -0,0 +1,26 @@
+from spack import *
+
+class PyPythonDaemon(Package):
+ """Library to implement a well-behaved Unix daemon process.
+
+ This library implements the well-behaved daemon specification of
+ PEP Standard daemon process.
+
+ A well-behaved Unix daemon process is tricky to get right, but the
+ required steps are much the same for every daemon program. A
+ DaemonContext instance holds the behaviour and configured process
+ environment for the program; use the instance as a context manager
+ to enter a daemon state.
+ """
+ homepage = "https://pypi.python.org/pypi/python-daemon/"
+ url = "https://pypi.python.org/packages/source/p/python-daemon/python-daemon-2.0.5.tar.gz"
+
+ 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)
+
diff --git a/var/spack/packages/py-pytz/package.py b/var/spack/packages/py-pytz/package.py
index 80bcfe82ca..da6311a784 100644
--- a/var/spack/packages/py-pytz/package.py
+++ b/var/spack/packages/py-pytz/package.py
@@ -6,6 +6,7 @@ class PyPytz(Package):
url = "https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.gz"
version('2014.10', 'eb1cb941a20c5b751352c52486aa1dd7')
+ version('2015.4', '417a47b1c432d90333e42084a605d3d8')
extends('python')
diff --git a/var/spack/packages/py-rpy2/package.py b/var/spack/packages/py-rpy2/package.py
index dd0c0672af..a0b03d03e3 100644
--- a/var/spack/packages/py-rpy2/package.py
+++ b/var/spack/packages/py-rpy2/package.py
@@ -6,6 +6,7 @@ class PyRpy2(Package):
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')
diff --git a/var/spack/packages/py-scientificpython/package.py b/var/spack/packages/py-scientificpython/package.py
index 020d830703..df2c86caac 100644
--- a/var/spack/packages/py-scientificpython/package.py
+++ b/var/spack/packages/py-scientificpython/package.py
@@ -7,8 +7,7 @@ class PyScientificpython(Package):
visualization, and parallelization."""
homepage = "https://sourcesup.renater.fr/projects/scientific-py/"
- url = "https://sourcesup.renater.fr/frs/download.php/4411/ScientificPython-2.8.1.tar.gz"
-
+ url = "https://sourcesup.renater.fr/frs/download.php/file/4411/ScientificPython-2.8.1.tar.gz"
version('2.8.1', '73ee0df19c7b58cdf2954261f0763c77')
extends('python')
diff --git a/var/spack/packages/py-scikit-learn/package.py b/var/spack/packages/py-scikit-learn/package.py
index c59c05a619..5b078ce901 100644
--- a/var/spack/packages/py-scikit-learn/package.py
+++ b/var/spack/packages/py-scikit-learn/package.py
@@ -6,6 +6,7 @@ class PyScikitLearn(Package):
url = "https://pypi.python.org/packages/source/s/scikit-learn/scikit-learn-0.15.2.tar.gz"
version('0.15.2', 'd9822ad0238e17b382a3c756ea94fe0d')
+ version('0.16.1', '363ddda501e3b6b61726aa40b8dbdb7e')
extends('python')
diff --git a/var/spack/packages/py-scipy/package.py b/var/spack/packages/py-scipy/package.py
index b5325b919f..3a1124cc15 100644
--- a/var/spack/packages/py-scipy/package.py
+++ b/var/spack/packages/py-scipy/package.py
@@ -6,10 +6,13 @@ class PyScipy(Package):
url = "https://pypi.python.org/packages/source/s/scipy/scipy-0.15.0.tar.gz"
version('0.15.0', '639112f077f0aeb6d80718dc5019dc7a')
+ version('0.15.1', 'be56cd8e60591d6332aac792a5880110')
extends('python')
depends_on('py-nose')
depends_on('py-numpy')
+ depends_on('blas')
+ depends_on('lapack')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-setuptools/package.py b/var/spack/packages/py-setuptools/package.py
index 755288d55c..760ad4d6db 100644
--- a/var/spack/packages/py-setuptools/package.py
+++ b/var/spack/packages/py-setuptools/package.py
@@ -6,6 +6,8 @@ class PySetuptools(Package):
url = "https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz"
version('11.3.1', '01f69212e019a2420c1693fb43593930')
+ version('16.0', '0ace0b96233516fc5f7c857d086aa3ad')
+ version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06')
extends('python')
diff --git a/var/spack/packages/py-sip/package.py b/var/spack/packages/py-sip/package.py
index 6753bdd2a5..e4a6fb6961 100644
--- a/var/spack/packages/py-sip/package.py
+++ b/var/spack/packages/py-sip/package.py
@@ -7,6 +7,7 @@ class PySip(Package):
url = "http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.5/sip-4.16.5.tar.gz"
version('4.16.5', '6d01ea966a53e4c7ae5c5e48c40e49e5')
+ version('4.16.7', '32abc003980599d33ffd789734de4c36')
extends('python')
diff --git a/var/spack/packages/py-virtualenv/package.py b/var/spack/packages/py-virtualenv/package.py
index 2d10d440a6..037a6fc59f 100644
--- a/var/spack/packages/py-virtualenv/package.py
+++ b/var/spack/packages/py-virtualenv/package.py
@@ -7,6 +7,7 @@ class PyVirtualenv(Package):
url = "https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz"
version('1.11.6', 'f61cdd983d2c4e6aeabb70b1060d6f49')
+ version('13.0.1', '1ffc011bde6667f0e37ecd976f4934db')
extends('python')
depends_on('py-setuptools')
diff --git a/var/spack/packages/py-yapf/package.py b/var/spack/packages/py-yapf/package.py
new file mode 100644
index 0000000000..12ef191515
--- /dev/null
+++ b/var/spack/packages/py-yapf/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyYapf(Package):
+ """ Yet Another Python Formatter """
+ homepage = "https://github.com/google/yapf"
+ # base https://pypi.python.org/pypi/cffi
+ url = "https://github.com/google/yapf/archive/v0.2.1.tar.gz"
+
+ version('0.2.1', '348ccf86cf2057872e4451b204fb914c')
+
+ extends('python')
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/python/package.py b/var/spack/packages/python/package.py
index 31a12ea653..000881a846 100644
--- a/var/spack/packages/python/package.py
+++ b/var/spack/packages/python/package.py
@@ -15,6 +15,7 @@ class Python(Package):
extendable = True
version('2.7.8', 'd235bdfa75b8396942e360a70487ee00')
+ version('2.7.10', 'c685ef0b8e9f27b5e3db5db12b268ac6')
depends_on("openssl")
depends_on("bzip2")
@@ -139,7 +140,9 @@ class Python(Package):
def activate(self, ext_pkg, **args):
- args.update(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)
diff --git a/var/spack/packages/qt/package.py b/var/spack/packages/qt/package.py
index 4a9a867511..0e4abe3b1d 100644
--- a/var/spack/packages/qt/package.py
+++ b/var/spack/packages/qt/package.py
@@ -50,9 +50,11 @@ class Qt(Package):
def patch(self):
if self.spec.satisfies('@4'):
- qmake_conf = 'mkspecs/common/g++-base.conf'
+ 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_conf = 'qtbase/mkspecs/common/g++-base.conf'
+ qmake_unix_conf = 'qtbase/mkspecs/common/g++-unix.conf'
else:
return
@@ -60,7 +62,7 @@ class Qt(Package):
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)
@property
diff --git a/var/spack/packages/ruby/package.py b/var/spack/packages/ruby/package.py
index 718fd0a3be..6b6242362c 100644
--- a/var/spack/packages/ruby/package.py
+++ b/var/spack/packages/ruby/package.py
@@ -1,4 +1,6 @@
from spack import *
+import spack
+import os
class Ruby(Package):
"""A dynamic, open source programming language with a focus on
@@ -7,6 +9,8 @@ class Ruby(Package):
homepage = "https://www.ruby-lang.org/"
url = "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz"
+ extendable = True
+
version('2.2.0', 'cd03b28fd0b555970f5c4fd481700852')
def install(self, spec, prefix):
@@ -14,3 +18,24 @@ class Ruby(Package):
make()
make("install")
+
+ def setup_dependent_environment(self, module, spec, ext_spec):
+ """Called before ruby modules' install() methods. Sets GEM_HOME
+ and GEM_PATH to values appropriate for the package being built.
+
+ In most cases, extensions will only need to have one line::
+
+ gem('install', '<gem-name>.gem')
+ """
+ # Ruby extension builds have global ruby and gem functions
+ module.ruby = Executable(join_path(spec.prefix.bin, 'ruby'))
+ module.gem = Executable(join_path(spec.prefix.bin, 'gem'))
+
+ # Set GEM_PATH to include dependent gem directories
+ ruby_paths = []
+ for d in ext_spec.traverse():
+ if d.package.extends(self.spec):
+ ruby_paths.append(d.prefix)
+ os.environ['GEM_PATH'] = ':'.join(ruby_paths)
+ # The actual installation path for this gem
+ os.environ['GEM_HOME'] = ext_spec.prefix
diff --git a/var/spack/packages/samtools/package.py b/var/spack/packages/samtools/package.py
new file mode 100644
index 0000000000..72900398d8
--- /dev/null
+++ b/var/spack/packages/samtools/package.py
@@ -0,0 +1,18 @@
+from spack import *
+
+class Samtools(Package):
+ """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")
+
+ depends_on("zlib")
+ depends_on("mpc")
+ parallel=False
+ patch("samtools1.2.patch",level=0)
+
+ def install(self, spec, prefix):
+ make("prefix=%s" % prefix, "install")
+
diff --git a/var/spack/packages/samtools/samtools1.2.patch b/var/spack/packages/samtools/samtools1.2.patch
new file mode 100644
index 0000000000..ead3ab4e2c
--- /dev/null
+++ b/var/spack/packages/samtools/samtools1.2.patch
@@ -0,0 +1,20 @@
+--- 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/packages/scorep/package.py b/var/spack/packages/scorep/package.py
index 32a772e3db..f013bd1cbb 100644
--- a/var/spack/packages/scorep/package.py
+++ b/var/spack/packages/scorep/package.py
@@ -1,11 +1,10 @@
# FIXME: Add copyright statement
from spack import *
-from contextlib import closing
class Scorep(Package):
- """The Score-P measurement infrastructure is a highly scalable and
- easy-to-use tool suite for profiling, event tracing, and online
+ """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."""
# FIXME: add a proper url for your package's homepage here.
@@ -20,7 +19,7 @@ class Scorep(Package):
depends_on("mpi")
depends_on("papi")
# depends_on("otf2@1.2:1.2.1") # only Score-P 1.2.x
- depends_on("otf2")
+ depends_on("otf2")
depends_on("opari2")
depends_on("cube@4.2:4.2.3")
@@ -53,12 +52,12 @@ MPI_CXXFLAGS=-fPIC
# Use a custom compiler configuration, otherwise the score-p
# build system messes with spack's compiler settings.
# Create these three files in the build directory
- with closing(open("platform-backend-user-provided", "w")) as backend_file:
+ with open("platform-backend-user-provided", "w") as backend_file:
backend_file.write(self.backend_user_provided)
- with closing(open("platform-frontend-user-provided", "w")) as frontend_file:
+ with open("platform-frontend-user-provided", "w") as frontend_file:
frontend_file.write(self.frontend_user_provided)
- with closing(open("platform-mpi-user-provided", "w")) as mpi_file:
- mpi_file.write(self.mpi_user_provided)
+ with open("platform-mpi-user-provided", "w") as mpi_file:
+ mpi_file.write(self.mpi_user_provided)
configure_args = ["--prefix=%s" % prefix,
"--with-custom-compilers",
diff --git a/var/spack/packages/scr/package.py b/var/spack/packages/scr/package.py
index 74b75a8742..9fb758f072 100644
--- a/var/spack/packages/scr/package.py
+++ b/var/spack/packages/scr/package.py
@@ -28,12 +28,14 @@ class Scr(Package):
"""SCR caches checkpoint data in storage on the compute nodes of a
Linux cluster to provide a fast, scalable checkpoint/restart
capability for MPI codes"""
+
homepage = "https://computation.llnl.gov/project/scr/"
- url = "http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz"
depends_on("mpi")
+# depends_on("dtcmp")
- version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd')
+ 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/packages/silo/package.py b/var/spack/packages/silo/package.py
new file mode 100644
index 0000000000..9eda11df15
--- /dev/null
+++ b/var/spack/packages/silo/package.py
@@ -0,0 +1,19 @@
+from spack import *
+
+class Silo(Package):
+ """Silo is a library for reading and writing a wide variety of scientific data to binary, disk files."""
+
+ homepage = "http://wci.llnl.gov/simulation/computer-codes/silo"
+ url = "https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.8/silo-4.8.tar.gz"
+
+ #version('4.9', 'a83eda4f06761a86726e918fc55e782a')
+ version('4.8', 'b1cbc0e7ec435eb656dc4b53a23663c9')
+
+ depends_on("hdf5@:1.8.12")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "--with-hdf5=%s" %spec['hdf5'].prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/snappy/package.py b/var/spack/packages/snappy/package.py
new file mode 100644
index 0000000000..c8f9ceef7d
--- /dev/null
+++ b/var/spack/packages/snappy/package.py
@@ -0,0 +1,15 @@
+import os
+from spack import *
+
+class Snappy(Package):
+ """A fast compressor/decompressor: https://code.google.com/p/snappy"""
+
+ homepage = "https://code.google.com/p/snappy"
+ url = "https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz"
+
+ version('1.1.3', '7358c82f133dc77798e4c2062a749b73')
+
+ def install(self, spec, prefix):
+ configure("--prefix=" + prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/stat/package.py b/var/spack/packages/stat/package.py
index 05e74b6a84..5d81e62731 100644
--- a/var/spack/packages/stat/package.py
+++ b/var/spack/packages/stat/package.py
@@ -5,19 +5,24 @@ class Stat(Package):
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')
+ variant('dysect', default=False, description="enable DySectAPI")
+
+ depends_on('libelf')
depends_on('libdwarf')
depends_on('dyninst')
depends_on('graphlib')
+ depends_on('graphviz')
depends_on('launchmon')
depends_on('mrnet')
- patch('configure_mpicxx.patch', when='@2.1.0:')
+ patch('configure_mpicxx.patch', when='@2.1.0')
def install(self, spec, prefix):
- configure(
+ configure_args = [
"--enable-gui",
"--prefix=%s" % prefix,
"--disable-examples", # Examples require MPI: avoid this dependency.
@@ -25,7 +30,11 @@ class Stat(Package):
"--with-mrnet=%s" % spec['mrnet'].prefix,
"--with-graphlib=%s" % spec['graphlib'].prefix,
"--with-stackwalker=%s" % spec['dyninst'].prefix,
- "--with-libdwarf=%s" % spec['libdwarf'].prefix)
+ "--with-libdwarf=%s" % spec['libdwarf'].prefix
+ ]
+ if '+dysect' in spec:
+ configure_args.append('--enable-dysectapi')
+ configure(*configure_args)
make(parallel=False)
make("install")
diff --git a/var/spack/packages/swig/package.py b/var/spack/packages/swig/package.py
index d7a3d815b9..ee536d7063 100644
--- a/var/spack/packages/swig/package.py
+++ b/var/spack/packages/swig/package.py
@@ -38,6 +38,8 @@ class Swig(Package):
version('3.0.2', '62f9b0d010cef36a13a010dc530d0d41')
+ depends_on('pcre')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
diff --git a/var/spack/packages/task/package.py b/var/spack/packages/task/package.py
new file mode 100644
index 0000000000..07f44cc45b
--- /dev/null
+++ b/var/spack/packages/task/package.py
@@ -0,0 +1,20 @@
+from spack import *
+
+class Task(Package):
+ """Feature-rich console based todo list manager"""
+ homepage = "http://www.taskwarrior.org"
+ url = "http://taskwarrior.org/download/task-2.4.4.tar.gz"
+
+ version('2.4.4', '517450c4a23a5842df3e9905b38801b3')
+
+ depends_on("gnutls")
+ depends_on("libuuid")
+ # depends_on("gcc@4.8:")
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('-DCMAKE_BUILD_TYPE=release',
+ '..',
+ *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/taskd/package.py b/var/spack/packages/taskd/package.py
new file mode 100644
index 0000000000..66bc0cb484
--- /dev/null
+++ b/var/spack/packages/taskd/package.py
@@ -0,0 +1,20 @@
+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("libuuid")
+ depends_on("gnutls")
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('-DCMAKE_BUILD_TYPE=release',
+ '..',
+ *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/the_silver_searcher/package.py b/var/spack/packages/the_silver_searcher/package.py
new file mode 100644
index 0000000000..e4020b6766
--- /dev/null
+++ b/var/spack/packages/the_silver_searcher/package.py
@@ -0,0 +1,17 @@
+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"
+
+ version('0.30.0', '95e2e7859fab1156c835aff7413481db')
+
+ depends_on('pcre')
+ depends_on('xz')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/thrift/package.py b/var/spack/packages/thrift/package.py
new file mode 100644
index 0000000000..0e15052f64
--- /dev/null
+++ b/var/spack/packages/thrift/package.py
@@ -0,0 +1,44 @@
+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."""
+
+ homepage = "http://thrift.apache.org"
+ url = "http://apache.mirrors.ionfish.org/thrift/0.9.2/thrift-0.9.2.tar.gz"
+
+ version('0.9.2', '89f63cc4d0100912f4a1f8a9dee63678')
+
+ extends("python")
+
+ depends_on("autoconf")
+ depends_on("automake")
+ depends_on("bison")
+ depends_on("boost")
+ depends_on("flex")
+ depends_on("jdk")
+ depends_on("libtool")
+ depends_on("openssl")
+ depends_on("python")
+
+ # Compilation fails for most languages, fortunately cpp installs fine
+ # All other languages (yes, including C) are omitted until someone needs them
+ def install(self, spec, prefix):
+ env["PY_PREFIX"] = prefix
+ env["JAVA_PREFIX"] = prefix
+
+ configure("--prefix=%s" % prefix,
+ "--with-boost=%s" % spec['boost'].prefix,
+ "--with-c=no",
+ "--with-go=no",
+ "--with-python=yes",
+ "--with-lua=no",
+ "--with-php=no",
+ "--with-qt4=no",
+ "--enable-tests=no")
+
+ make()
+ make("install")
diff --git a/var/spack/packages/tmuxinator/package.py b/var/spack/packages/tmuxinator/package.py
new file mode 100644
index 0000000000..26c061cbd6
--- /dev/null
+++ b/var/spack/packages/tmuxinator/package.py
@@ -0,0 +1,17 @@
+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')
+
+ extends('ruby')
+
+ def install(self, spec, prefix):
+ gem('build', 'tmuxinator.gemspec')
+ gem('install', 'tmuxinator-{}.gem'.format(self.version))
+
diff --git a/var/spack/packages/trilinos/package.py b/var/spack/packages/trilinos/package.py
new file mode 100644
index 0000000000..7c43f796a4
--- /dev/null
+++ b/var/spack/packages/trilinos/package.py
@@ -0,0 +1,50 @@
+from spack import *
+
+
+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.
+ 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"
+
+ 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')
+
+ variant('mpi', default=True, description='Add a dependency on MPI and enables MPI dependent packages')
+
+ # Everything should be compiled with -fpic
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('boost')
+ depends_on('netcdf')
+ depends_on('matio')
+ depends_on('glm')
+ depends_on('swig')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+
+ options = [
+ '-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON',
+ '-DTrilinos_ENABLE_TESTS:BOOL=OFF',
+ '-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF',
+ '-DBUILD_SHARED_LIBS:BOOL=ON',
+ '-DBLAS_LIBRARY_DIRS:PATH=%s' % spec['blas'].prefix,
+ '-DLAPACK_LIBRARY_DIRS:PATH=%s' % spec['lapack'].prefix
+ ]
+ if '+mpi' in spec:
+ mpi_options = ['-DTPL_ENABLE_MPI:BOOL=ON']
+ options.extend(mpi_options)
+
+ # -DCMAKE_INSTALL_PREFIX and all the likes...
+ options.extend(std_cmake_args)
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+ make()
+ make('install')
diff --git a/var/spack/packages/uncrustify/package.py b/var/spack/packages/uncrustify/package.py
new file mode 100644
index 0000000000..d3f2d1b473
--- /dev/null
+++ b/var/spack/packages/uncrustify/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Uncrustify(Package):
+ """Source Code Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA"""
+
+ homepage = "http://uncrustify.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/uncrustify/uncrustify/uncrustify-0.61/uncrustify-0.61.tar.gz"
+
+ version('0.61', 'b6140106e74c64e831d0b1c4b6cf7727')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/vim/package.py b/var/spack/packages/vim/package.py
index 5c6d7cb56b..4099b3257f 100644
--- a/var/spack/packages/vim/package.py
+++ b/var/spack/packages/vim/package.py
@@ -25,8 +25,59 @@ class Vim(Package):
version('6.1', '7fd0f915adc7c0dab89772884268b030')
version('6.0', '9d9ca84d489af6b3f54639dd97af3774')
+ feature_sets = ('huge', 'big', 'normal', 'small', 'tiny')
+ for fs in feature_sets:
+ variant(fs, default=False, description="Use '%s' feature set" % fs)
+
+ variant('python', default=False, description="build with Python")
+ depends_on('python', when='+python')
+
+ variant('ruby', default=False, description="build with Ruby")
+ depends_on('ruby', when='+ruby')
+
+ variant('cscope', default=False, description="build with cscope support")
+ depends_on('cscope', when='+cscope')
+
+ variant('gui', default=False, description="build with gui (gvim)")
+ # virtual dependency?
+
def install(self, spec, prefix):
- configure("--prefix=%s" % 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")
+ make()
+ make("install")
diff --git a/var/spack/packages/xz/package.py b/var/spack/packages/xz/package.py
index 88c5793018..ba6c9733a7 100644
--- a/var/spack/packages/xz/package.py
+++ b/var/spack/packages/xz/package.py
@@ -8,9 +8,13 @@ class Xz(Package):
homepage = "http://tukaani.org/xz/"
url = "http://tukaani.org/xz/xz-5.2.0.tar.bz2"
- version('5.2.0', '867cc8611760240ebf3440bd6e170bb9')
-
+ version('5.2.0', '867cc8611760240ebf3440bd6e170bb9',
+ url = 'http://tukaani.org/xz/xz-5.2.0.tar.bz2')
+ version('5.2.2', 'f90c9a0c8b259aee2234c4e0d7fd70af',
+ url = 'http://tukaani.org/xz/xz-5.2.2.tar.bz2')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
+
diff --git a/var/spack/packages/zeromq/package.py b/var/spack/packages/zeromq/package.py
new file mode 100644
index 0000000000..b5a1e3d4cd
--- /dev/null
+++ b/var/spack/packages/zeromq/package.py
@@ -0,0 +1,20 @@
+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.2', '159c0c56a895472f02668e692d122685')
+ version('4.1.1', '0a4b44aa085644f25c177f79dc13f253')
+ version('4.0.7', '9b46f7e7b0704b83638ef0d461fd59ab')
+ version('4.0.6', 'd47dd09ed7ae6e7fd6f9a816d7f5fdf6')
+ version('4.0.5', '73c39f5eb01b9d7eaf74a5d899f1d03d')
+
+ depends_on("libsodium")
+
+ def install(self, spec, prefix):
+ configure("--with-libsodium","--prefix=%s" % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/zsh/package.py b/var/spack/packages/zsh/package.py
new file mode 100644
index 0000000000..99ef9de2e5
--- /dev/null
+++ b/var/spack/packages/zsh/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class Zsh(Package):
+ """ The ZSH shell """
+ homepage = "http://www.zsh.org"
+ url = "http://www.zsh.org/pub/zsh-5.0.8.tar.bz2"
+
+ version('5.0.8', 'e6759e8dd7b714d624feffd0a73ba0fe')
+
+ depends_on("pcre")
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")