summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/clang/package.py50
-rw-r--r--var/spack/packages/hdf5/package.py6
-rw-r--r--var/spack/packages/hwloc/package.py3
-rw-r--r--var/spack/packages/libedit/package.py14
-rw-r--r--var/spack/packages/libpciaccess/package.py7
-rw-r--r--var/spack/packages/llvm/package.py22
-rw-r--r--var/spack/packages/ninja/package.py22
-rw-r--r--var/spack/packages/py-blessings/package.py15
-rw-r--r--var/spack/packages/py-coverage/package.py16
-rw-r--r--var/spack/packages/py-mysqldb1/package.py15
-rw-r--r--var/spack/packages/py-numpy/package.py7
-rw-r--r--var/spack/packages/py-tappy/package.py15
-rw-r--r--var/spack/packages/py-urwid/package.py16
-rw-r--r--var/spack/packages/python/package.py32
-rw-r--r--var/spack/packages/rsync/package.py1
-rw-r--r--var/spack/packages/valgrind/package.py55
16 files changed, 274 insertions, 22 deletions
diff --git a/var/spack/packages/clang/package.py b/var/spack/packages/clang/package.py
index 20a5ac2c94..e46e08d5f1 100644
--- a/var/spack/packages/clang/package.py
+++ b/var/spack/packages/clang/package.py
@@ -22,8 +22,13 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+
+
from spack import *
+import os
+import os.path
+
class Clang(Package):
"""The goal of the Clang project is to create a new C, C++,
Objective C and Objective C++ front-end for the LLVM compiler.
@@ -39,13 +44,52 @@ class Clang(Package):
version('3.6.2', 'ff862793682f714bb7862325b9c06e20', url='http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz')
version('3.5.1', '93f9532f8f7e6f1d8e5c1116907051cb', url='http://llvm.org/releases/3.5.1/cfe-3.5.1.src.tar.xz')
+ ##########
+ # @3.7.0
+ resource(name='clang-tools-extra',
+ url='http://llvm.org/releases/3.7.0/clang-tools-extra-3.7.0.src.tar.xz',
+ md5='d5a87dacb65d981a427a536f6964642e', destination='tools', when='@3.7.0')
+ ##########
+
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
with working_dir('spack-build', create=True):
+
+ options = []
+ if '@3.7.0:' in spec:
+ options.append('-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp')
+ options.extend(std_cmake_args)
+
cmake('..',
- '-DCLANG_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix,
- '-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix,
- *std_cmake_args)
+ '-DCLANG_PATH_TO_LLVM_BUILD:PATH=%s' % spec['llvm'].prefix,
+ '-DLLVM_MAIN_SRC_DIR:PATH=%s' % spec['llvm'].prefix,
+ *options)
make()
make("install")
+ # CLang doesn't look in llvm folders for system headers...
+ self.link_llvm_directories(spec)
+
+ def link_llvm_directories(self, spec):
+
+ def clang_include_dir_at(root):
+ return join_path(root, 'include')
+
+ def clang_lib_dir_at(root):
+ return join_path(root, 'lib/clang/', str(self.version), 'include')
+
+ def do_link(source_dir, destination_dir):
+ if os.path.exists(source_dir):
+ for name in os.listdir(source_dir):
+ source = join_path(source_dir, name)
+ link = join_path(destination_dir, name)
+ os.symlink(source, link)
+
+ # Link folder and files in include
+ llvm_dir = clang_include_dir_at(spec['llvm'].prefix)
+ clang_dir = clang_include_dir_at(self.prefix)
+ do_link(llvm_dir, clang_dir)
+ # Link folder and files in lib
+ llvm_dir = clang_lib_dir_at(spec['llvm'].prefix)
+ clang_dir = clang_lib_dir_at(self.prefix)
+ do_link(llvm_dir, clang_dir) \ No newline at end of file
diff --git a/var/spack/packages/hdf5/package.py b/var/spack/packages/hdf5/package.py
index 44d4ede278..adac79d9bb 100644
--- a/var/spack/packages/hdf5/package.py
+++ b/var/spack/packages/hdf5/package.py
@@ -26,16 +26,14 @@ class Hdf5(Package):
if '+mpi' in spec:
extra_args.extend([
"--enable-parallel",
- "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++",
])
configure(
"--prefix=%s" % prefix,
"--with-zlib=%s" % spec['zlib'].prefix,
"--enable-shared",
- "CC=%s" % spec['mpi'].prefix.bin + "/mpicc",
- "CXX=%s" % spec['mpi'].prefix.bin + "/mpic++",
*extra_args)
make()
diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py
index 452a7d7ce3..7ebede76a3 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.2', '486169cbe111cdea57be12638828ebbf',
+ url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.2.tar.bz2')
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')
@@ -26,4 +28,3 @@ class Hwloc(Package):
make()
make("install")
-
diff --git a/var/spack/packages/libedit/package.py b/var/spack/packages/libedit/package.py
new file mode 100644
index 0000000000..bcd5212b9e
--- /dev/null
+++ b/var/spack/packages/libedit/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class Libedit(Package):
+ """An autotools compatible port of the NetBSD editline library"""
+ homepage = "http://thrysoee.dk/editline/"
+ url = "http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz"
+
+ version('3.1', '43cdb5df3061d78b5e9d59109871b4f6', url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz")
+
+ 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
index 6022fc34a3..403bafbbd2 100644
--- a/var/spack/packages/libpciaccess/package.py
+++ b/var/spack/packages/libpciaccess/package.py
@@ -1,4 +1,5 @@
from spack import *
+import os.path
class Libpciaccess(Package):
"""Generic PCI access library."""
@@ -13,6 +14,12 @@ class Libpciaccess(Package):
depends_on('libtool')
def install(self, spec, prefix):
+ # libpciaccess does not support OS X
+ if spec.satisfies('=darwin-x86_64'):
+ # create a dummy directory
+ mkdir(prefix.lib)
+ return
+
from subprocess import call
call(["./autogen.sh"])
configure("--prefix=%s" % prefix)
diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py
index b3ca488809..a3307584e0 100644
--- a/var/spack/packages/llvm/package.py
+++ b/var/spack/packages/llvm/package.py
@@ -42,13 +42,31 @@ class Llvm(Package):
depends_on('python@2.7:')
+ variant('libcxx', default=False, description="Builds the LLVM Standard C++ library targeting C++11")
+
+ ##########
+ # @3.7.0
+ resource(name='compiler-rt',
+ url='http://llvm.org/releases/3.7.0/compiler-rt-3.7.0.src.tar.xz', md5='383c10affd513026f08936b5525523f5',
+ destination='projects', when='@3.7.0')
+ resource(name='openmp',
+ url='http://llvm.org/releases/3.7.0/openmp-3.7.0.src.tar.xz', md5='f482c86fdead50ba246a1a2b0bbf206f',
+ destination='projects', when='@3.7.0')
+ resource(name='libcxx',
+ url='http://llvm.org/releases/3.7.0/libcxx-3.7.0.src.tar.xz', md5='46aa5175cbe1ad42d6e9c995968e56dd',
+ destination='projects', placement='libcxx', when='+libcxx@3.7.0')
+ resource(name='libcxxabi',
+ url='http://llvm.org/releases/3.7.0/libcxxabi-3.7.0.src.tar.xz', md5='5aa769e2fca79fa5335cfae8f6258772',
+ destination='projects', placement='libcxxabi', when='+libcxx@3.7.0')
+ ##########
+
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
with working_dir('spack-build', create=True):
cmake('..',
- '-DLLVM_REQUIRES_RTTI=1',
- '-DPYTHON_EXECUTABLE=%s/bin/python' % spec['python'].prefix,
+ '-DLLVM_REQUIRES_RTTI:BOOL=ON',
+ '-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix,
*std_cmake_args)
make()
make("install")
diff --git a/var/spack/packages/ninja/package.py b/var/spack/packages/ninja/package.py
new file mode 100644
index 0000000000..9e6bf4e358
--- /dev/null
+++ b/var/spack/packages/ninja/package.py
@@ -0,0 +1,22 @@
+from spack import *
+import os
+
+class Ninja(Package):
+ """ A small, fast Make alternative """
+ homepage = "https://martine.github.io/ninja/"
+ url = "https://github.com/martine/ninja/archive/v1.6.0.tar.gz"
+
+ version('1.6.0', '254133059f2da79d8727f654d7198f43')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ sh = which('sh')
+ python('configure.py', '--bootstrap')
+
+ cp = which('cp')
+
+ bindir = os.path.join(prefix, 'bin')
+ mkdir(bindir)
+ cp('-a', '-t', bindir, 'ninja')
+ cp('-ra', 'misc', prefix)
diff --git a/var/spack/packages/py-blessings/package.py b/var/spack/packages/py-blessings/package.py
new file mode 100644
index 0000000000..f2475a0efd
--- /dev/null
+++ b/var/spack/packages/py-blessings/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyBlessings(Package):
+ """A nicer, kinder way to write to the terminal """
+ homepage = "https://github.com/erikrose/blessings"
+ url = "https://pypi.python.org/packages/source/b/blessings/blessings-1.6.tar.gz"
+
+ version('1.6', '4f552a8ebcd4982693c92571beb99394')
+
+ depends_on('py-setuptools')
+
+ extends("python")
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-coverage/package.py b/var/spack/packages/py-coverage/package.py
new file mode 100644
index 0000000000..39b2ac3b01
--- /dev/null
+++ b/var/spack/packages/py-coverage/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class PyCoverage(Package):
+ """ Testing coverage checker for python """
+ # FIXME: add a proper url for your package's homepage here.
+ homepage = "http://nedbatchelder.com/code/coverage/"
+ url = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz"
+
+ version('4.0a6', '1bb4058062646148965bef0796b61efc')
+
+ depends_on('py-setuptools')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-mysqldb1/package.py b/var/spack/packages/py-mysqldb1/package.py
new file mode 100644
index 0000000000..fda02b4982
--- /dev/null
+++ b/var/spack/packages/py-mysqldb1/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyMysqldb1(Package):
+ """Legacy mysql bindings for python"""
+ homepage = "https://github.com/farcepest/MySQLdb1"
+ url = "https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz"
+
+ version('1.2.5', '332c8f4955b6bc0c79ea15170bf7321b')
+
+ extends('python')
+ depends_on('py-setuptools')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
diff --git a/var/spack/packages/py-numpy/package.py b/var/spack/packages/py-numpy/package.py
index efa109a3e9..4c085fba6e 100644
--- a/var/spack/packages/py-numpy/package.py
+++ b/var/spack/packages/py-numpy/package.py
@@ -13,13 +13,6 @@ class PyNumpy(Package):
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')
diff --git a/var/spack/packages/py-tappy/package.py b/var/spack/packages/py-tappy/package.py
new file mode 100644
index 0000000000..df61a909da
--- /dev/null
+++ b/var/spack/packages/py-tappy/package.py
@@ -0,0 +1,15 @@
+from spack import *
+
+class PyTappy(Package):
+ """Python TAP interface module for unit tests"""
+ homepage = "https://github.com/mblayman/tappy"
+ # base https://pypi.python.org/pypi/cffi
+ url = "https://pypi.python.org/packages/source/t/tap.py/tap.py-1.6.tar.gz"
+
+ version('1.6', 'c8bdb93ad66e05f939905172a301bedf')
+
+ 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-urwid/package.py b/var/spack/packages/py-urwid/package.py
new file mode 100644
index 0000000000..aaa11c681d
--- /dev/null
+++ b/var/spack/packages/py-urwid/package.py
@@ -0,0 +1,16 @@
+from spack import *
+
+class PyUrwid(Package):
+ """A full-featured console UI library"""
+ homepage = "http://urwid.org/"
+ url = "https://pypi.python.org/packages/source/u/urwid/urwid-1.3.0.tar.gz"
+
+ version('1.3.0', 'a989acd54f4ff1a554add464803a9175')
+
+ depends_on('py-setuptools')
+
+ extends("python")
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
+
diff --git a/var/spack/packages/python/package.py b/var/spack/packages/python/package.py
index 31fb8b3d5a..eae2566b57 100644
--- a/var/spack/packages/python/package.py
+++ b/var/spack/packages/python/package.py
@@ -2,6 +2,7 @@ import os
import re
from contextlib import closing
from llnl.util.lang import match_predicate
+from spack.util.environment import *
from spack import *
import spack
@@ -16,22 +17,40 @@ class Python(Package):
version('2.7.8', 'd235bdfa75b8396942e360a70487ee00')
version('2.7.10', 'c685ef0b8e9f27b5e3db5db12b268ac6')
+ version('2.7.11', '1dbcc848b4cd8399a8199d000f9f823c', preferred=True)
+ version('3.5.0', 'd149d2812f10cbe04c042232e7964171')
+ version('3.5.1', 'e9ea6f2623fffcdd871b7b19113fde80')
depends_on("openssl")
depends_on("bzip2")
depends_on("readline")
depends_on("ncurses")
depends_on("sqlite")
+ depends_on("zlib")
def install(self, spec, prefix):
# Need this to allow python build to find the Python installation.
env['PYTHONHOME'] = prefix
env['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
- # Rest of install is pretty standard.
- configure("--prefix=%s" % prefix,
+ # Rest of install is pretty standard except setup.py needs to be able to read the CPPFLAGS
+ # and LDFLAGS as it scans for the library and headers to build
+ configure_args= [
+ "--prefix=%s" % prefix,
"--with-threads",
- "--enable-shared")
+ "--enable-shared",
+ "CPPFLAGS=-I%s/include -I%s/include -I%s/include -I%s/include -I%s/include -I%s/include" % (
+ spec['openssl'].prefix, spec['bzip2'].prefix,
+ spec['readline'].prefix, spec['ncurses'].prefix,
+ spec['sqlite'].prefix, spec['zlib'].prefix),
+ "LDFLAGS=-L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib -L%s/lib" % (
+ spec['openssl'].prefix, spec['bzip2'].prefix,
+ spec['readline'].prefix, spec['ncurses'].prefix,
+ spec['sqlite'].prefix, spec['zlib'].prefix)
+ ]
+ if spec.satisfies('@3:'):
+ configure_args.append('--without-ensurepip')
+ configure(*configure_args)
make()
make("install")
@@ -63,7 +82,10 @@ class Python(Package):
python('setup.py', 'install', '--prefix=%s' % prefix)
"""
# Python extension builds can have a global python executable function
- module.python = Executable(join_path(spec.prefix.bin, 'python'))
+ if self.version >= Version("3.0.0") and self.version < Version("4.0.0"):
+ module.python = Executable(join_path(spec.prefix.bin, 'python3'))
+ else:
+ module.python = Executable(join_path(spec.prefix.bin, 'python'))
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
@@ -95,7 +117,7 @@ class Python(Package):
# Ignore pieces of setuptools installed by other packages.
if ext_pkg.name != 'py-setuptools':
- patterns.append(r'/site\.pyc?$')
+ patterns.append(r'/site[^/]*\.pyc?$')
patterns.append(r'setuptools\.pth')
patterns.append(r'bin/easy_install[^/]*$')
patterns.append(r'setuptools.*egg$')
diff --git a/var/spack/packages/rsync/package.py b/var/spack/packages/rsync/package.py
index 8ae21b1cb9..76aec3096d 100644
--- a/var/spack/packages/rsync/package.py
+++ b/var/spack/packages/rsync/package.py
@@ -5,6 +5,7 @@ class Rsync(Package):
homepage = "https://rsync.samba.org"
url = "https://download.samba.org/pub/rsync/rsync-3.1.1.tar.gz"
+ version('3.1.2', '0f758d7e000c0f7f7d3792610fad70cb')
version('3.1.1', '43bd6676f0b404326eee2d63be3cdcfe')
def install(self, spec, prefix):
diff --git a/var/spack/packages/valgrind/package.py b/var/spack/packages/valgrind/package.py
new file mode 100644
index 0000000000..0b030d73e9
--- /dev/null
+++ b/var/spack/packages/valgrind/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Valgrind(Package):
+ """
+ Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can
+ automatically detect many memory management and threading bugs, and profile your programs in detail. You can also
+ use Valgrind to build new tools.
+
+ Valgrind is Open Source / Free Software, and is freely available under the GNU General Public License, version 2.
+ """
+ homepage = "http://valgrind.org/"
+ url = "http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2"
+
+ version('3.11.0', '4ea62074da73ae82e0162d6550d3f129')
+ version('3.10.1', '60ddae962bc79e7c95cfc4667245707f')
+ version('3.10.0', '7c311a72a20388aceced1aa5573ce970')
+
+ variant('mpi', default=True, description='Activates MPI support for valgrind')
+ variant('boost', default=True, description='Activates boost support for valgrind')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('boost', when='+boost')
+
+ def install(self, spec, prefix):
+ options = ['--prefix=%s' % prefix,
+ '--enable-ubsan']
+ configure(*options)
+ make()
+ make("install")