summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/SAMRAI/package.py3
-rw-r--r--var/spack/packages/cleverleaf/package.py21
-rw-r--r--var/spack/packages/cmake/package.py3
-rw-r--r--var/spack/packages/damselfly/package.py14
-rw-r--r--var/spack/packages/hdf5/package.py5
-rw-r--r--var/spack/packages/hwloc/package.py2
-rw-r--r--var/spack/packages/hypre/package.py4
-rw-r--r--var/spack/packages/jdk/package.py4
-rw-r--r--var/spack/packages/jemalloc/package.py14
-rw-r--r--var/spack/packages/judy/package.py15
-rw-r--r--var/spack/packages/mvapich2/package.py224
-rw-r--r--var/spack/packages/openmpi/configure.patch31
-rw-r--r--var/spack/packages/openmpi/package.py9
-rw-r--r--var/spack/packages/openssl/package.py1
-rw-r--r--var/spack/packages/papi/package.py12
-rw-r--r--var/spack/packages/paraview/package.py12
-rw-r--r--var/spack/packages/py-matplotlib/package.py13
-rw-r--r--var/spack/packages/py-pyside/package.py2
-rw-r--r--var/spack/packages/py-twisted/package.py16
-rw-r--r--var/spack/packages/rsync/package.py14
20 files changed, 307 insertions, 112 deletions
diff --git a/var/spack/packages/SAMRAI/package.py b/var/spack/packages/SAMRAI/package.py
index eef041f0d5..5ee90cf400 100644
--- a/var/spack/packages/SAMRAI/package.py
+++ b/var/spack/packages/SAMRAI/package.py
@@ -12,6 +12,7 @@ class Samrai(Package):
list_url = homepage
version('3.9.1', '232d04d0c995f5abf20d94350befd0b2')
+ version('3.8.0', 'c18fcffa706346bfa5828b36787ce5fe')
version('3.7.3', '12d574eacadf8c9a70f1bb4cd1a69df6')
version('3.7.2', 'f6a716f171c9fdbf3cb12f71fa6e2737')
version('3.6.3-beta', 'ef0510bf2893042daedaca434e5ec6ce')
@@ -37,8 +38,6 @@ class Samrai(Package):
configure(
"--prefix=%s" % prefix,
- "--with-CXX=%s" % spec[mpi].prefix.bin + "/mpic++",
- "--with-CC=%s" % spec[mpi].prefix.bin + "/mpicc",
"--with-hdf5=%s" % spec['hdf5'].prefix,
"--with-boost=%s" % spec['boost'].prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
diff --git a/var/spack/packages/cleverleaf/package.py b/var/spack/packages/cleverleaf/package.py
new file mode 100644
index 0000000000..ddbe57f019
--- /dev/null
+++ b/var/spack/packages/cleverleaf/package.py
@@ -0,0 +1,21 @@
+from spack import *
+
+class Cleverleaf(Package):
+ """
+ CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with Adaptive
+ Mesh Refinement using the SAMRAI toolkit from Lawrence Livermore National
+ Laboratory. The primary goal of CleverLeaf is to evaluate the application of
+ AMR to the Lagrangian-Eulerian hydrodynamics scheme used by CloverLeaf.
+ """
+
+ homepage = "http://uk-mac.github.io/CleverLeaf/"
+ url = "https://github.com/UK-MAC/CleverLeaf/tarball/master"
+
+ version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git', branch='develop')
+
+ depends_on("SAMRAI@3.8.0")
+
+ def install(self, spec, prefix):
+ cmake(*std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/cmake/package.py b/var/spack/packages/cmake/package.py
index 9efa370c8b..fcfbca0705 100644
--- a/var/spack/packages/cmake/package.py
+++ b/var/spack/packages/cmake/package.py
@@ -34,6 +34,9 @@ class Cmake(Package):
version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f',
url = 'http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz')
+
+ version('3.4.0', 'cd3034e0a44256a0917e254167217fc8',
+ url = 'https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz')
# version('3.0.1', 'e2e05d84cb44a42f1371d9995631dcf5')
# version('3.0.0', '21a1c85e1a3b803c4b48e7ff915a863e')
diff --git a/var/spack/packages/damselfly/package.py b/var/spack/packages/damselfly/package.py
new file mode 100644
index 0000000000..54df528c4a
--- /dev/null
+++ b/var/spack/packages/damselfly/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Damselfly(Package):
+ """Damselfly is a model-based parallel network simulator."""
+ homepage = "https://github.com/scalability-llnl/damselfly"
+ url = "https://github.com/scalability-llnl/damselfly"
+
+ version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895', git='https://github.com/scalability-llnl/damselfly.git', tag='v1.0')
+
+ 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/hdf5/package.py b/var/spack/packages/hdf5/package.py
index 15e0ef9338..48997425cd 100644
--- a/var/spack/packages/hdf5/package.py
+++ b/var/spack/packages/hdf5/package.py
@@ -11,6 +11,7 @@ class Hdf5(Package):
list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
+ version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
version('1.8.13', 'c03426e9e77d7766944654280b467289')
@@ -25,8 +26,8 @@ class Hdf5(Package):
"--with-zlib=%s" % spec['zlib'].prefix,
"--enable-parallel",
"--enable-shared",
- "CC=%s" % spec['mpich'].prefix.bin + "/mpicc",
- "CXX=%s" % spec['mpich'].prefix.bin + "/mpic++")
+ "CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
+ "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++")
make()
make("install")
diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py
index 31a31f376a..2f46399afd 100644
--- a/var/spack/packages/hwloc/package.py
+++ b/var/spack/packages/hwloc/package.py
@@ -15,6 +15,8 @@ class Hwloc(Package):
homepage = "http://www.open-mpi.org/projects/hwloc/"
url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz"
+ version('1.11.1', '002742efd3a8431f98d6315365a2b543',
+ url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.1.tar.bz2')
version('1.9', '1f9f9155682fe8946a97c08896109508')
def install(self, spec, prefix):
diff --git a/var/spack/packages/hypre/package.py b/var/spack/packages/hypre/package.py
index 198b3f00dc..0f7f14dd89 100644
--- a/var/spack/packages/hypre/package.py
+++ b/var/spack/packages/hypre/package.py
@@ -5,8 +5,8 @@ class Hypre(Package):
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"
+ homepage = "http://computation.llnl.gov/project/linear_solvers/software.php"
+ url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
version('2.10.0b', '768be38793a35bb5d055905b271f5b8e')
diff --git a/var/spack/packages/jdk/package.py b/var/spack/packages/jdk/package.py
index 8f8076dd14..f8f5fc21bd 100644
--- a/var/spack/packages/jdk/package.py
+++ b/var/spack/packages/jdk/package.py
@@ -14,8 +14,8 @@ class Jdk(Package):
in the form of a binary product aimed at Java developers."""
homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
- version('8u25-linux-x64', 'e145c03a7edc845215092786bcfba77e',
- url="http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz")
+ version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf',
+ url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz")
# Oracle requires that you accept their License Agreement in order
# to access the Java packages in download.oracle.com. In order to
diff --git a/var/spack/packages/jemalloc/package.py b/var/spack/packages/jemalloc/package.py
new file mode 100644
index 0000000000..ff946ae821
--- /dev/null
+++ b/var/spack/packages/jemalloc/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Jemalloc(Package):
+ """jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support."""
+ homepage = "http://www.canonware.com/jemalloc/"
+ url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2"
+
+ version('4.0.4', '687c5cc53b9a7ab711ccd680351ff988')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/judy/package.py b/var/spack/packages/judy/package.py
new file mode 100644
index 0000000000..b8d8701383
--- /dev/null
+++ b/var/spack/packages/judy/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class Judy(Package):
+ """A general-purpose dynamic array, associative array and hash-trie - Judy"""
+ homepage = "http://judy.sourceforge.net/"
+ url = "http://downloads.sourceforge.net/project/judy/judy/Judy-1.0.5/Judy-1.0.5.tar.gz"
+
+ version('1.0.5', '115a0d26302676e962ae2f70ec484a54')
+ parallel = False
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")
diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py
index ca0b1287c1..dc2b2cb23f 100644
--- a/var/spack/packages/mvapich2/package.py
+++ b/var/spack/packages/mvapich2/package.py
@@ -1,104 +1,156 @@
-import os
from spack import *
+
class Mvapich2(Package):
- """mvapich2 is an MPI implmenetation for infiniband networks."""
+ """MVAPICH2 is an MPI implementation for Infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
- version('1.9', '5dc58ed08fd3142c260b70fe297e127c',
- url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz")
- patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
+ version('2.2a', 'b8ceb4fc5f5a97add9b3ff1b9cbe39d2',
+ url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2a.tar.gz')
version('2.0', '9fbb68a4111a8b6338e476dc657388b4',
url='http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz')
- provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2
- provides('mpi@:3.0', when='@2.0') # MVAPICH2-2.0 supports MPI 3.0
-
-
- def install(self, spec, prefix):
- # we'll set different configure flags depending on our environment
- configure_args = []
-
- # TODO: The MPICH*_FLAGS have a different name for 1.9
+ version('1.9', '5dc58ed08fd3142c260b70fe297e127c',
+ url="http://mvapich.cse.ohio-state.edu/download/mvapich2/mv2/mvapich2-1.9.tgz")
+ patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
+ provides('mpi@:2.2', when='@1.9') # MVAPICH2-1.9 supports MPI 2.2
+ provides('mpi@:3.0', when='@2.0:') # MVAPICH2-2.0 supports MPI 3.0
+
+ variant('debug', default=False, description='Enables debug information and error messages at run-time')
+
+ ##########
+ # TODO : Process managers should be grouped into the same variant, as soon as variant capabilities will be extended
+ # See https://groups.google.com/forum/#!topic/spack/F8-f8B4_0so
+ SLURM = 'slurm'
+ HYDRA = 'hydra'
+ GFORKER = 'gforker'
+ REMSHELL = 'remshell'
+ SLURM_INCOMPATIBLE_PMS = (HYDRA, GFORKER, REMSHELL)
+ variant(SLURM, default=False, description='Sets slurm as the only process manager')
+ variant(HYDRA, default=False, description='Sets hydra as one of the process managers')
+ variant(GFORKER, default=False, description='Sets gforker as one of the process managers')
+ variant(REMSHELL, default=False, description='Sets remshell as one of the process managers')
+ ##########
+
+ ##########
+ # TODO : Network types should be grouped into the same variant, as soon as variant capabilities will be extended
+ PSM = 'psm'
+ SOCK = 'sock'
+ NEMESISIBTCP = 'nemesisibtcp'
+ NEMESISIB = 'nemesisib'
+ NEMESIS = 'nemesis'
+ SUPPORTED_NETWORKS = (PSM, SOCK, NEMESIS, NEMESISIB, NEMESISIBTCP)
+ variant(PSM, default=False, description='Configures a build for QLogic PSM-CH3')
+ variant(SOCK, default=False, description='Configures a build for TCP/IP-CH3')
+ variant(NEMESISIBTCP, default=False, description='Configures a build for both OFA-IB-Nemesis and TCP/IP-Nemesis')
+ variant(NEMESISIB, default=False, description='Configures a build for OFA-IB-Nemesis')
+ variant(NEMESIS, default=False, description='Configures a build for TCP/IP-Nemesis')
+ ##########
+
+ # FIXME : CUDA support is missing
+
+ @staticmethod
+ def enabled(x):
+ """
+ Given a variant name returns the string that means the variant is enabled
+
+ :param x: variant name
+ :return:
+ """
+ return '+' + x
+
+ def set_build_type(self, spec, configure_args):
+ """
+ Appends to configure_args the flags that depends only on the build type (i.e. release or debug)
+
+ :param spec: spec
+ :param configure_args: list of current configure arguments
+ """
if '+debug' in spec:
- # set configure flags for debug build
- configure_args.append("--disable-fast")
- configure_args.append("--enable-g=dbg")
- configure_args.append("--enable-error-checking=runtime")
- configure_args.append("--enable-error-messages=all")
- configure_args.append("--enable-nmpi-as-mpi")
-
- if "%gnu" in spec:
- # set variables for GNU compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fno-second-underscore"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fno-second-underscore"
- elif "%intel" in spec:
- # set variables for Inel compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O0"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O0"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O0"
- elif "%pgi" in spec:
- # set variables for PGI compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O0 -fPIC"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O0 -fPIC"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O0 -fPIC"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O0 -fPIC"
-
+ build_type_options = [
+ "--disable-fast",
+ "--enable-error-checking=runtime",
+ "--enable-error-messages=all",
+ "--enable-g=dbg", "--enable-debuginfo" # Permits debugging with TotalView
+ ]
else:
- # set configure flags for normal optimizations
- configure_args.append("--enable-fast=all")
- configure_args.append("--enable-g=dbg")
- configure_args.append("--enable-nmpi-as-mpi")
-
- if "%gnu" in spec:
- # set variables for what compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fno-second-underscore"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fno-second-underscore"
- elif "%intel" in spec:
- # set variables for Inel compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O2"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O2"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O2"
- elif "%pgi" in spec:
- # set variables for PGI compilers
- os.environ['MPICHLIB_CFLAGS'] = "-g -O2 -fPIC"
- os.environ['MPICHLIB_CXXFLAGS'] = "-g -O2 -fPIC"
- os.environ['MPICHLIB_FFLAGS'] = "-g -O2 -fPIC"
- os.environ['MPICHLIB_F90FLAGS'] = "-g -O2 -fPIC"
-
- # determine network type by variant
- if "+psm" in spec:
- # throw this flag on QLogic systems to use PSM
- configure_args.append("--with-device=ch3:psm")
+ build_type_options = ["--enable-fast=all"]
+
+ configure_args.extend(build_type_options)
+
+ def set_process_manager(self, spec, configure_args):
+ """
+ Appends to configure_args the flags that will enable the appropriate process managers
+
+ :param spec: spec
+ :param configure_args: list of current configure arguments
+ """
+ # Check that slurm variant is not activated together with other pm variants
+ has_slurm_incompatible_variants = any(self.enabled(x) in spec for x in Mvapich2.SLURM_INCOMPATIBLE_PMS)
+ if self.enabled(Mvapich2.SLURM) in spec and has_slurm_incompatible_variants:
+ raise RuntimeError(" %s : 'slurm' cannot be activated together with other process managers" % self.name)
+
+ process_manager_options = []
+ if self.enabled(Mvapich2.SLURM) in spec:
+ process_manager_options = [
+ "--with-pm=slurm"
+ ]
+ elif has_slurm_incompatible_variants:
+ pms = []
+ # The variant name is equal to the process manager name in the configuration options
+ for x in Mvapich2.SLURM_INCOMPATIBLE_PMS:
+ if self.enabled(x) in spec:
+ pms.append(x)
+ process_manager_options = [
+ "--with-pm=%s" % ':'.join(pms)
+ ]
+ configure_args.extend(process_manager_options)
+
+ def set_network_type(self, spec, configure_args):
+ # Check that at most one variant has been activated
+ count = 0
+ for x in Mvapich2.SUPPORTED_NETWORKS:
+ if self.enabled(x) in spec:
+ count += 1
+ if count > 1:
+ raise RuntimeError('network variants are mutually exclusive (only one can be selected at a time)')
+
+ # From here on I can suppose that ony one variant has been selected
+ if self.enabled(Mvapich2.PSM) in spec:
+ network_options = ["--with-device=ch3:psm"]
+ elif self.enabled(Mvapich2.SOCK) in spec:
+ network_options = ["--with-device=ch3:sock"]
+ elif self.enabled(Mvapich2.NEMESISIBTCP) in spec:
+ network_options = ["--with-device=ch3:nemesis:ib,tcp"]
+ elif self.enabled(Mvapich2.NEMESISIB) in spec:
+ network_options = ["--with-device=ch3:nemesis:ib"]
+ elif self.enabled(Mvapich2.NEMESIS) in spec:
+ network_options = ["--with-device=ch3:nemesis"]
else:
- # throw this flag on IB systems
- configure_args.append("--with-device=ch3:mrail", "--with-rdma=gen2")
-
- # TODO: shared-memory build
-
- # TODO: CUDA
+ network_options = ["--with-device=ch3:mrail", "--with-rdma=gen2"]
- # TODO: other file systems like panasis
+ configure_args.extend(network_options)
- configure(
- "--prefix=" + prefix,
- "--enable-f77", "--enable-fc", "--enable-cxx",
- "--enable-shared", "--enable-sharedlibs=gcc",
- "--enable-debuginfo",
- "--with-pm=no", "--with-pmi=slurm",
- "--enable-romio", "--with-file-system=lustre+nfs+ufs",
- "--disable-mpe", "--without-mpe",
+ def install(self, spec, prefix):
+ # we'll set different configure flags depending on our environment
+ configure_args = [
+ "--prefix=%s" % prefix,
+ "--enable-shared",
+ "--enable-romio",
"--disable-silent-rules",
- *configure_args)
-
+ ]
+ if not self.compiler.f77 and not self.compiler.fc:
+ configure_args.append("--enable-fortran=none")
+
+ # Set the type of the build (debug, release)
+ self.set_build_type(spec, configure_args)
+ # Set the process manager
+ self.set_process_manager(spec, configure_args)
+ # Determine network type by variant
+ self.set_network_type(spec, configure_args)
+
+ configure(*configure_args)
make()
-
make("install")
diff --git a/var/spack/packages/openmpi/configure.patch b/var/spack/packages/openmpi/configure.patch
new file mode 100644
index 0000000000..18fb42c1d1
--- /dev/null
+++ b/var/spack/packages/openmpi/configure.patch
@@ -0,0 +1,31 @@
+This patch addresses <https://github.com/open-mpi/ompi/issues/576>.
+--- a/configure
++++ b/configure
+@@ -301130,10 +301130,11 @@
+ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+- # Some compilers place space between "-{L,R}" and the path.
++ # Some compilers place space between "-{L,R,l}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+- test $p = "-R"; then
++ test $p = "-R" ||
++ test $p = "-l"; then
+ prev=$p
+ continue
+ fi
+@@ -303036,10 +303037,11 @@
+ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+- # Some compilers place space between "-{L,R}" and the path.
++ # Some compilers place space between "-{L,R,l}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+- test $p = "-R"; then
++ test $p = "-R" ||
++ test $p = "-l"; then
+ prev=$p
+ continue
+ fi
diff --git a/var/spack/packages/openmpi/package.py b/var/spack/packages/openmpi/package.py
index 5e429dedf5..be2202fbbd 100644
--- a/var/spack/packages/openmpi/package.py
+++ b/var/spack/packages/openmpi/package.py
@@ -14,6 +14,8 @@ class Openmpi(Package):
homepage = "http://www.open-mpi.org"
+ version('1.10.1', 'f0fcd77ed345b7eafb431968124ba16e',
+ url = "http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.1.tar.bz2")
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',
@@ -23,10 +25,15 @@ class Openmpi(Package):
patch('ad_lustre_rwcontig_open_source.patch', when="@1.6.5")
patch('llnl-platforms.patch', when="@1.6.5")
+ patch('configure.patch', when="@1.10.0:")
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
+ provides('mpi@:3.0', when='@1.10.1') # Open MPI 1.10.1 supports MPI-3.0
+
+
+ depends_on('hwloc')
def setup_dependent_environment(self, module, spec, dep_spec):
@@ -40,6 +47,8 @@ class Openmpi(Package):
def install(self, spec, prefix):
config_args = ["--prefix=%s" % prefix]
+ config_args.append("--with-hwloc=%s" % spec['hwloc'].prefix)
+
# TODO: use variants for this, e.g. +lanl, +llnl, etc.
# use this for LANL builds, but for LLNL builds, we need:
# "--with-platform=contrib/platform/llnl/optimized"
diff --git a/var/spack/packages/openssl/package.py b/var/spack/packages/openssl/package.py
index c5a8aeb9dc..4bf1f832d4 100644
--- a/var/spack/packages/openssl/package.py
+++ b/var/spack/packages/openssl/package.py
@@ -10,6 +10,7 @@ class Openssl(Package):
url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz"
version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf')
+ version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a')
depends_on("zlib")
parallel = False
diff --git a/var/spack/packages/papi/package.py b/var/spack/packages/papi/package.py
index 596f7114d6..097b8c41ec 100644
--- a/var/spack/packages/papi/package.py
+++ b/var/spack/packages/papi/package.py
@@ -13,6 +13,7 @@ class Papi(Package):
homepage = "http://icl.cs.utk.edu/papi/index.html"
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.3.0.tar.gz"
+ version('5.4.1', '9134a99219c79767a11463a76b0b01a2')
version('5.3.0', '367961dd0ab426e5ae367c2713924ffb')
def install(self, spec, prefix):
@@ -20,13 +21,10 @@ class Papi(Package):
configure_args=["--prefix=%s" % prefix]
- # need to force consistency in the use of compilers
- if spec.satisfies('%gcc'):
- configure_args.append('CC=gcc')
- configure_args.append('MPICH_CC=gcc')
- if spec.satisfies('%intel'):
- configure_args.append('CC=icc')
- configure_args.append('MPICH_CC=icc')
+ # PAPI uses MPI if MPI is present; since we don't require an
+ # MPI package, we ensure that all attempts to use MPI fail, so
+ # that PAPI does not get confused
+ configure_args.append('MPICC=:')
configure(*configure_args)
diff --git a/var/spack/packages/paraview/package.py b/var/spack/packages/paraview/package.py
index b341053dd2..b0893237e9 100644
--- a/var/spack/packages/paraview/package.py
+++ b/var/spack/packages/paraview/package.py
@@ -7,8 +7,6 @@ class Paraview(Package):
version('4.4.0', 'fa1569857dd680ebb4d7ff89c2227378', url='http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz')
variant('python', default=False, description='Enable Python support')
- variant('matplotlib', default=False, description='Enable Matplotlib support')
- variant('numpy', default=False, description='Enable NumPy support')
variant('tcl', default=False, description='Enable TCL support')
@@ -18,11 +16,11 @@ class Paraview(Package):
variant('qt', default=False, description='Enable Qt support')
depends_on('python', when='+python')
- depends_on('py-numpy', when='+python+numpy')
- depends_on('py-matplotlib', when='+python+matplotlib')
+ depends_on('py-numpy', when='+python')
+ depends_on('py-matplotlib', when='+python')
depends_on('tcl', when='+tcl')
depends_on('mpi', when='+mpi')
- depends_on('qt', when='+qt')
+ depends_on('qt@:4', when='+qt')
depends_on('bzip2')
depends_on('freetype')
@@ -49,7 +47,11 @@ class Paraview(Package):
feature_args = std_cmake_args[:]
feature_args.append('-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % feature_to_bool('+qt'))
feature_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=%s' % feature_to_bool('+python'))
+ if '+python' in spec:
+ feature_args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python' % spec['python'].prefix)
feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' % feature_to_bool('+mpi'))
+ if '+mpi' in spec:
+ feature_args.append('-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix)
feature_args.append('-DVTK_ENABLE_TCL_WRAPPING:BOOL=%s' % feature_to_bool('+tcl'))
feature_args.append('-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' % feature_to_bool('+osmesa'))
feature_args.append('-DVTK_USE_X:BOOL=%s' % nfeature_to_bool('+osmesa'))
diff --git a/var/spack/packages/py-matplotlib/package.py b/var/spack/packages/py-matplotlib/package.py
index e7ce3dfd24..a5fee39d42 100644
--- a/var/spack/packages/py-matplotlib/package.py
+++ b/var/spack/packages/py-matplotlib/package.py
@@ -9,10 +9,13 @@ class PyMatplotlib(Package):
version('1.4.2', '7d22efb6cce475025733c50487bd8898')
version('1.4.3', '86af2e3e3c61849ac7576a6f5ca44267')
+ variant('gui', default=False, description='Enable GUI')
+ variant('ipython', default=False, description='Enable ipython support')
+
extends('python', ignore=r'bin/nosetests.*$')
- depends_on('py-pyside')
- depends_on('py-ipython')
+ depends_on('py-pyside', when='+gui')
+ depends_on('py-ipython', when='+ipython')
depends_on('py-pyparsing')
depends_on('py-six')
depends_on('py-dateutil')
@@ -20,10 +23,10 @@ class PyMatplotlib(Package):
depends_on('py-nose')
depends_on('py-numpy')
- depends_on('qt')
+ depends_on('qt', when='+gui')
depends_on('bzip2')
- depends_on('tcl')
- depends_on('tk')
+ depends_on('tcl', when='+gui')
+ depends_on('tk', when='+gui')
depends_on('qhull')
def install(self, spec, prefix):
diff --git a/var/spack/packages/py-pyside/package.py b/var/spack/packages/py-pyside/package.py
index bb5da44d02..ffa433e18e 100644
--- a/var/spack/packages/py-pyside/package.py
+++ b/var/spack/packages/py-pyside/package.py
@@ -2,7 +2,7 @@ from spack import *
import os
class PyPyside(Package):
- """array processing for numbers, strings, records, and objects."""
+ """Python bindings for Qt."""
homepage = "https://pypi.python.org/pypi/pyside"
url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz"
diff --git a/var/spack/packages/py-twisted/package.py b/var/spack/packages/py-twisted/package.py
new file mode 100644
index 0000000000..2fdebb6cb9
--- /dev/null
+++ b/var/spack/packages/py-twisted/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class PyTwisted(Package):
+ """An asynchronous networking framework written in Python"""
+ homepage = "https://twistedmatrix.com/"
+ url = "https://pypi.python.org/packages/source/T/Twisted/Twisted-15.3.0.tar.bz2"
+
+ version('15.4.0', '5337ffb6aeeff3790981a2cd56db9655')
+ version('15.3.0', 'b58e83da2f00b3352afad74d0c5c4599')
+
+ depends_on('py-setuptools')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/rsync/package.py b/var/spack/packages/rsync/package.py
new file mode 100644
index 0000000000..8ae21b1cb9
--- /dev/null
+++ b/var/spack/packages/rsync/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Rsync(Package):
+ """rsync is an open source utility that provides fast incremental file transfer."""
+ homepage = "https://rsync.samba.org"
+ url = "https://download.samba.org/pub/rsync/rsync-3.1.1.tar.gz"
+
+ version('3.1.1', '43bd6676f0b404326eee2d63be3cdcfe')
+
+ def install(self, spec, prefix):
+ configure('--prefix=%s' % prefix)
+
+ make()
+ make("install")