summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Galarowicz <jeg@krellinst.org>2015-08-18 08:05:25 -0500
committerJim Galarowicz <jeg@krellinst.org>2015-08-18 08:05:25 -0500
commitfe9959d4da40fec2b1cb151d51176de3c76c3b43 (patch)
tree7d486363a9dd19eb4c13194333fca8fd8275bbed
parent9fee7be695eb92391b8754593877dded097ea8c8 (diff)
parentc8f65c15306683a5d505d4bcafa603e75c09feca (diff)
downloadspack-fe9959d4da40fec2b1cb151d51176de3c76c3b43.tar.gz
spack-fe9959d4da40fec2b1cb151d51176de3c76c3b43.tar.bz2
spack-fe9959d4da40fec2b1cb151d51176de3c76c3b43.tar.xz
spack-fe9959d4da40fec2b1cb151d51176de3c76c3b43.zip
Merge remote-tracking branch 'upstream/develop' into develop
-rw-r--r--.mailmap11
-rwxr-xr-xlib/spack/external/pyqver2.py12
-rw-r--r--lib/spack/spack/build_environment.py8
-rw-r--r--lib/spack/spack/cmd/find.py2
-rw-r--r--lib/spack/spack/fetch_strategy.py15
-rw-r--r--lib/spack/spack/test/python_version.py17
-rw-r--r--lib/spack/spack/util/executable.py27
-rw-r--r--var/spack/packages/asciidoc/package.py18
-rw-r--r--var/spack/packages/bear/package.py17
-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/flux/package.py36
-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/libxml2/package.py5
-rw-r--r--var/spack/packages/lua/package.py26
-rw-r--r--var/spack/packages/mesa/package.py5
-rw-r--r--var/spack/packages/mpfr/package.py2
-rw-r--r--var/spack/packages/munge/package.py20
-rw-r--r--var/spack/packages/ncurses/package.py8
-rw-r--r--var/spack/packages/py-mock/package.py17
-rw-r--r--var/spack/packages/py-pandas/package.py4
-rw-r--r--var/spack/packages/py-setuptools/package.py1
-rw-r--r--var/spack/packages/vim/package.py23
-rw-r--r--var/spack/packages/zeromq/package.py20
-rw-r--r--var/spack/packages/zsh/package.py16
28 files changed, 388 insertions, 31 deletions
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000000..1cc13c1eb1
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,11 @@
+Todd Gamblin <tgamblin@llnl.gov> George Todd Gamblin <gamblin2@llnl.gov>
+Adam Moody <moody20@llnl.gov> Adam T. Moody <moody20@llnl.gov>
+Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Gimenez <alfredo.gimenez@gmail.com>
+David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra324.llnl.gov>
+David Boehme <boehme3@llnl.gov> David Boehme <boehme3@sierra648.llnl.gov>
+Kevin Brandstatter <kjbrandstatter@gmail.com> Kevin Brandstatter <kbrandst@hawk.iit.edu>
+Luc Jaulmes <luc.jaulmes@bsc.es> Luc Jaulmes <jaulmes1@llnl.gov>
+Saravan Pantham <saravan.pantham@gmail.com> Saravan Pantham <pantham1@surface86.llnl.gov
+Tom Scogland <tscogland@llnl.gov> Tom Scogland <scogland1@llnl.gov>
+Tom Scogland <tscogland@llnl.gov> Tom Scogland <tom.scogland@gmail.com>
+Joachim Protze <protze@rz.rwth-aachen.de> jprotze <protze@rz.rwth-aachen.de>
diff --git a/lib/spack/external/pyqver2.py b/lib/spack/external/pyqver2.py
index cd45bf948f..4a16e2811e 100755
--- a/lib/spack/external/pyqver2.py
+++ b/lib/spack/external/pyqver2.py
@@ -165,12 +165,24 @@ class NodeChecker(object):
def rollup(n):
if isinstance(n, compiler.ast.Name):
return n.name
+ elif isinstance(n, compiler.ast.Const):
+ return type(n.value).__name__
elif isinstance(n, compiler.ast.Getattr):
r = rollup(n.expr)
if r:
return r + "." + n.attrname
name = rollup(node.node)
if name:
+ # Special handling for empty format strings, which aren't
+ # allowed in Python 2.6
+ if name in ('unicode.format', 'str.format'):
+ n = node.node
+ if isinstance(n, compiler.ast.Getattr):
+ n = n.expr
+ if isinstance(n, compiler.ast.Const):
+ if '{}' in n.value:
+ self.add(node, (2,7), name + ' with {} format string')
+
v = Functions.get(name)
if v is not None:
self.add(node, v, name)
diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py
index 81fbedc689..a133faa629 100644
--- a/lib/spack/spack/build_environment.py
+++ b/lib/spack/spack/build_environment.py
@@ -88,10 +88,10 @@ def set_compiler_environment_variables(pkg):
compiler = pkg.compiler
# Set compiler variables used by CMake and autotools
- os.environ['CC'] = 'cc'
- os.environ['CXX'] = 'c++'
- os.environ['F77'] = 'f77'
- os.environ['FC'] = 'f90'
+ os.environ['CC'] = join_path(spack.build_env_path, 'cc')
+ os.environ['CXX'] = join_path(spack.build_env_path, 'c++')
+ os.environ['F77'] = join_path(spack.build_env_path, 'f77')
+ os.environ['FC'] = join_path(spack.build_env_path, 'f90')
# Set SPACK compiler variables so that our wrapper knows what to call
if compiler.cc:
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index a0232d2f12..3c993990b1 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -92,7 +92,7 @@ def display_specs(specs, **kwargs):
# Print one spec per line along with prefix path
width = max(len(s) for s in abbreviated)
width += 2
- format = " %-{}s%s".format(width)
+ format = " %%-%ds%%s" % width
for abbrv, spec in zip(abbreviated, specs):
if hashes:
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 0ba0251caa..b810023c5a 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -425,12 +425,21 @@ class GitFetchStrategy(VCSFetchStrategy):
if self.git_version > ver('1.7.10'):
args.append('--single-branch')
+ cloned = False
# Yet more efficiency, only download a 1-commit deep tree
if self.git_version >= ver('1.7.1'):
- args.extend(['--depth','1'])
+ try:
+ self.git(*(args + ['--depth','1', self.url]))
+ cloned = True
+ except spack.error.SpackError:
+ # This will fail with the dumb HTTP transport
+ # continue and try without depth, cleanup first
+ pass
+
+ if not cloned:
+ args.append(self.url)
+ self.git(*args)
- args.append(self.url)
- self.git(*args)
self.stage.chdir_to_source()
# For tags, be conservative and check them out AFTER
diff --git a/lib/spack/spack/test/python_version.py b/lib/spack/spack/test/python_version.py
index 5b803b4cf3..5779d31ed2 100644
--- a/lib/spack/spack/test/python_version.py
+++ b/lib/spack/spack/test/python_version.py
@@ -41,13 +41,10 @@ spack_max_version = (2,6)
class PythonVersionTest(unittest.TestCase):
- def spack_python_files(self):
+ def pyfiles(self, *search_paths):
# first file is the spack script.
yield spack.spack_file
- # Next files are all the source files and package files.
- search_paths = [spack.lib_path, spack.var_path]
-
# Iterate through the whole spack source tree.
for path in search_paths:
for root, dirnames, filenames in os.walk(path):
@@ -56,16 +53,20 @@ class PythonVersionTest(unittest.TestCase):
yield os.path.join(root, filename)
- def all_package_py_files(self):
+ def package_py_files(self):
for name in spack.db.all_package_names():
yield spack.db.filename_for_package_name(name)
- def check_python_versions(self, files):
+ def check_python_versions(self, *files):
# dict version -> filename -> reasons
all_issues = {}
for fn in files:
+ if fn != '/Users/gamblin2/src/spack/var/spack/packages/vim/package.py':
+ continue
+ print fn
+
with open(fn) as pyfile:
versions = pyqver2.get_versions(pyfile.read())
for ver, reasons in versions.items():
@@ -101,8 +102,8 @@ class PythonVersionTest(unittest.TestCase):
def test_core_module_compatibility(self):
- self.check_python_versions(self.spack_python_files())
+ self.check_python_versions(*self.pyfiles(spack.lib_path))
def test_package_module_compatibility(self):
- self.check_python_versions(self.all_package_py_files())
+ self.check_python_versions(*self.pyfiles(spack.packages_path))
diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py
index 67e8cddd98..d1dfb62ffb 100644
--- a/lib/spack/spack/util/executable.py
+++ b/lib/spack/spack/util/executable.py
@@ -34,6 +34,7 @@ import llnl.util.tty as tty
import spack
import spack.error
+
class Executable(object):
"""Class representing a program that can be run on the command line."""
def __init__(self, name):
@@ -58,7 +59,20 @@ class Executable(object):
return_output = kwargs.get("return_output", False)
fail_on_error = kwargs.get("fail_on_error", True)
ignore_errors = kwargs.get("ignore_errors", ())
+
+ output = kwargs.get("output", sys.stdout)
error = kwargs.get("error", sys.stderr)
+ input = kwargs.get("input", None)
+
+ def streamify(arg, mode):
+ if isinstance(arg, basestring):
+ return open(arg, mode), True
+ elif arg is None and mode != 'r':
+ return open(os.devnull, mode), True
+ return arg, False
+ output, ostream = streamify(output, 'w')
+ error, estream = streamify(error, 'w')
+ input, istream = streamify(input, 'r')
# if they just want to ignore one error code, make it a tuple.
if isinstance(ignore_errors, int):
@@ -77,16 +91,12 @@ class Executable(object):
cmd_line = ' '.join(cmd)
tty.debug(cmd_line)
- close_error = False
try:
- if error is None:
- error = open(os.devnull, 'w')
- close_error = True
-
proc = subprocess.Popen(
cmd,
+ stdin=input,
stderr=error,
- stdout=subprocess.PIPE if return_output else sys.stdout)
+ stdout=subprocess.PIPE if return_output else output)
out, err = proc.communicate()
self.returncode = proc.returncode
@@ -110,8 +120,9 @@ class Executable(object):
% (proc.returncode, cmd_line))
finally:
- if close_error:
- error.close()
+ if ostream: output.close()
+ if estream: error.close()
+ if istream: input.close()
def __eq__(self, other):
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/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/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/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/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/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/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/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/mpfr/package.py b/var/spack/packages/mpfr/package.py
index 3cd8ec41e4..9c744a22df 100644
--- a/var/spack/packages/mpfr/package.py
+++ b/var/spack/packages/mpfr/package.py
@@ -33,6 +33,8 @@ class Mpfr(Package):
version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138')
# version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
+ depends_on('gmp')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
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/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/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-pandas/package.py b/var/spack/packages/py-pandas/package.py
index acbb5114a3..5b9997faa9 100644
--- a/var/spack/packages/py-pandas/package.py
+++ b/var/spack/packages/py-pandas/package.py
@@ -16,6 +16,10 @@ class PyPandas(Package):
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-setuptools/package.py b/var/spack/packages/py-setuptools/package.py
index d3f11ed469..760ad4d6db 100644
--- a/var/spack/packages/py-setuptools/package.py
+++ b/var/spack/packages/py-setuptools/package.py
@@ -7,6 +7,7 @@ class PySetuptools(Package):
version('11.3.1', '01f69212e019a2420c1693fb43593930')
version('16.0', '0ace0b96233516fc5f7c857d086aa3ad')
+ version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06')
extends('python')
diff --git a/var/spack/packages/vim/package.py b/var/spack/packages/vim/package.py
index d0cf80b898..4099b3257f 100644
--- a/var/spack/packages/vim/package.py
+++ b/var/spack/packages/vim/package.py
@@ -35,15 +35,26 @@ class Vim(Package):
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):
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 {} and {} specified".format(
- feature_set,
- fs))
+ 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'
@@ -60,6 +71,12 @@ class Vim(Package):
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()
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")