summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authoralalazo <massimiliano.culpo@googlemail.com>2016-10-11 16:28:08 +0200
committeralalazo <massimiliano.culpo@googlemail.com>2016-10-11 16:28:08 +0200
commitab995df777ca8bd0340f66be5624fa543517c13d (patch)
tree660335e5d00ae68ab61b3cd21faef3e9135aacb1 /var
parent7a26c60dbd73e0d5c5c6ec1fce8087c889fd0f25 (diff)
parent4d939802ae208a79ef685fe59b204bcc86df4b6b (diff)
downloadspack-ab995df777ca8bd0340f66be5624fa543517c13d.tar.gz
spack-ab995df777ca8bd0340f66be5624fa543517c13d.tar.bz2
spack-ab995df777ca8bd0340f66be5624fa543517c13d.tar.xz
spack-ab995df777ca8bd0340f66be5624fa543517c13d.zip
Merge branch 'develop' of https://github.com/LLNL/spack into features/install_with_phases_rebase
Conflicts: lib/spack/spack/build_environment.py lib/spack/spack/cmd/install.py lib/spack/spack/cmd/setup.py lib/spack/spack/package.py var/spack/repos/builtin/packages/gmp/package.py var/spack/repos/builtin/packages/hdf5/package.py
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/atlas/package.py3
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py29
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py3
-rw-r--r--var/spack/repos/builtin/packages/cgal/package.py8
-rw-r--r--var/spack/repos/builtin/packages/charm/package.py18
-rw-r--r--var/spack/repos/builtin/packages/charm/strictpass.patch16
-rw-r--r--var/spack/repos/builtin/packages/converge/package.py69
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py4
-rw-r--r--var/spack/repos/builtin/packages/everytrace-example/package.py46
-rw-r--r--var/spack/repos/builtin/packages/everytrace/package.py52
-rw-r--r--var/spack/repos/builtin/packages/fenics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/flint/package.py66
-rw-r--r--var/spack/repos/builtin/packages/gmp/package.py7
-rw-r--r--var/spack/repos/builtin/packages/gsl/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hdf/package.py22
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py12
-rw-r--r--var/spack/repos/builtin/packages/hpx5/package.py5
-rw-r--r--var/spack/repos/builtin/packages/hypre/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libcerf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libjpeg-turbo/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libsplash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libtiff/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py70
-rw-r--r--var/spack/repos/builtin/packages/mkl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mpc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mpfr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py80
-rw-r--r--var/spack/repos/builtin/packages/mpir/package.py62
-rw-r--r--var/spack/repos/builtin/packages/mumps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py20
-rw-r--r--var/spack/repos/builtin/packages/netcdf/package.py10
-rw-r--r--var/spack/repos/builtin/packages/nettle/package.py1
-rw-r--r--var/spack/repos/builtin/packages/pango/package.py1
-rw-r--r--var/spack/repos/builtin/packages/piranha/package.py73
-rw-r--r--var/spack/repos/builtin/packages/pixman/package.py12
-rw-r--r--var/spack/repos/builtin/packages/pngwriter/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-3to2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-SQLAlchemy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-argcomplete/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-astroid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-astropy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-autopep8/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-basemap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-beautifulsoup4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-biopython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-blessings/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-bottleneck/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cffi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-configparser/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-coverage/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-csvkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dask/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dateutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dbf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-decorator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-emcee/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-enum34/package.py45
-rw-r--r--var/spack/repos/builtin/packages/py-epydoc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-flake8/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-funcsigs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-genshi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gnuplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-iminuit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ipython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-jdcal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lockfile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-logilab-common/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mako/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mccabe/package.py53
-rw-r--r--var/spack/repos/builtin/packages/py-mistune/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mock/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mpi4py/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mpmath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mysqldb1/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-nestle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-netcdf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-nose/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-numexpr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-openpyxl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ordereddict/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-pandas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pbr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pep8/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-periodictable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pexpect/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-phonopy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pillow/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ply/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pmw/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-prettytable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-py2neo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pychecker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pycodestyle/package.py52
-rw-r--r--var/spack/repos/builtin/packages/py-pycparser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pydatalog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyelftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyflakes/package.py52
-rw-r--r--var/spack/repos/builtin/packages/py-pylint/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pypar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyparsing/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pytables/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-python-daemon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyyaml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-restview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-rpy2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scientificpython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-image/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-shiboken/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sncosmo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-storm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-symengine/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-sympy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-tappy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-tuiview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-twisted/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2py3k/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-urwid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-virtualenv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wcsaxes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wheel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-xlrd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-yapf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py11
-rw-r--r--var/spack/repos/builtin/packages/symengine/package.py113
-rw-r--r--var/spack/repos/builtin/packages/tethex/package.py49
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vtk/package.py6
138 files changed, 1329 insertions, 259 deletions
diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py
index b31e365336..89b61b3ecb 100644
--- a/var/spack/repos/builtin/packages/atlas/package.py
+++ b/var/spack/repos/builtin/packages/atlas/package.py
@@ -37,6 +37,9 @@ class Atlas(Package):
"""
homepage = "http://math-atlas.sourceforge.net/"
+ version('3.10.3', 'd6ce4f16c2ad301837cfb3dade2f7cef',
+ url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.3/atlas3.10.3.tar.bz2')
+
version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
# not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 22351a2c3a..90fe28fc2c 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -110,12 +110,14 @@ class Boost(Package):
description="Additionally build shared libraries")
variant('multithreaded', default=True,
description="Build multi-threaded versions of libraries")
- variant('singlethreaded', default=True,
+ variant('singlethreaded', default=False,
description="Build single-threaded versions of libraries")
variant('icu', default=False,
description="Build with Unicode and ICU suport")
variant('graph', default=False,
description="Build the Boost Graph library")
+ variant('taggedlayout', default=False,
+ description="Augment library names with build options")
depends_on('icu4c', when='+icu')
depends_on('python', when='+python')
@@ -208,12 +210,20 @@ class Boost(Package):
if '+singlethreaded' in spec:
threadingOpts.append('single')
if not threadingOpts:
- raise RuntimeError("""At least one of {singlethreaded,
- multithreaded} must be enabled""")
+ raise RuntimeError("At least one of {singlethreaded, " +
+ "multithreaded} must be enabled")
+
+ if '+taggedlayout' in spec:
+ layout = 'tagged'
+ else:
+ if len(threadingOpts) > 1:
+ raise RuntimeError("Cannot build both single and " +
+ "multi-threaded targets with system layout")
+ layout = 'system'
options.extend([
'link=%s' % ','.join(linkTypes),
- '--layout=tagged'
+ '--layout=%s' % layout
])
if not spec.satisfies('%intel'):
@@ -223,6 +233,12 @@ class Boost(Package):
return threadingOpts
+ def add_buildopt_symlinks(self, prefix):
+ with working_dir(prefix.lib):
+ for lib in os.listdir(os.curdir):
+ prefix, remainder = lib.split('.', 1)
+ symlink(lib, '%s-mt.%s' % (prefix, remainder))
+
def install(self, spec, prefix):
# On Darwin, Boost expects the Darwin libtool. However, one of the
# dependencies may have pulled in Spack's GNU libtool, and these two
@@ -281,11 +297,16 @@ class Boost(Package):
threadingOpts = self.determine_b2_options(spec, b2_options)
+ b2('--clean')
+
# In theory it could be done on one call but it fails on
# Boost.MPI if the threading options are not separated.
for threadingOpt in threadingOpts:
b2('install', 'threading=%s' % threadingOpt, *b2_options)
+ if '+multithreaded' in spec and '~taggedlayout' in spec:
+ self.add_buildopt_symlinks(prefix)
+
# The shared libraries are not installed correctly
# on Darwin; correct this
if (sys.platform == 'darwin') and ('+shared' in spec):
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 9a9bc5bdbd..66e1197669 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -96,8 +96,7 @@ class Cantera(Package):
options.extend([
'build_thread_safe=yes',
'boost_inc_dir={0}'.format(spec['boost'].prefix.include),
- 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib),
- 'boost_thread_lib=boost_thread-mt,boost_system-mt'
+ 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib)
])
else:
options.append('build_thread_safe=no')
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index d986f77487..ebfd3f9250 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -85,7 +85,7 @@ class Cgal(Package):
else:
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
- cmake('.', *options)
-
- make()
- make('install')
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py
index d67ac80de1..1ec53c2138 100644
--- a/var/spack/repos/builtin/packages/charm/package.py
+++ b/var/spack/repos/builtin/packages/charm/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+import os
import platform
import shutil
import sys
@@ -47,6 +48,8 @@ class Charm(Package):
# Support OpenMPI; see
# <https://charm.cs.illinois.edu/redmine/issues/1206>
patch("mpi.patch")
+ # Ignore compiler warnings while configuring
+ patch("strictpass.patch")
# Communication mechanisms (choose exactly one)
# TODO: Support Blue Gene/Q PAMI, Cray GNI, Cray shmem, CUDA
@@ -169,4 +172,19 @@ class Charm(Package):
# this wouldn't be difficult.
build = Executable(join_path(".", "build"))
build(target, version, *options)
+
+ # Charm++'s install script does not copy files, it only creates
+ # symbolic links. Fix this.
+ for dirpath, dirnames, filenames in os.walk(prefix):
+ for filename in filenames:
+ filepath = join_path(dirpath, filename)
+ if os.path.islink(filepath):
+ tmppath = filepath + ".tmp"
+ # Skip dangling symbolic links
+ try:
+ shutil.copy2(filepath, tmppath)
+ os.remove(filepath)
+ os.rename(tmppath, filepath)
+ except:
+ pass
shutil.rmtree(join_path(prefix, "tmp"))
diff --git a/var/spack/repos/builtin/packages/charm/strictpass.patch b/var/spack/repos/builtin/packages/charm/strictpass.patch
new file mode 100644
index 0000000000..44aa4fbd38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charm/strictpass.patch
@@ -0,0 +1,16 @@
+--- old/src/scripts/configure
++++ new/src/scripts/configure
+@@ -2146,13 +2146,6 @@
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
+- if test $pass -eq 1
+- then
+- if cat out | grep -i "warn" > /dev/null 2>&1
+- then
+- strictpass="0" && strictfail="1"
+- fi
+- fi
+ cat out >> $charmout
+ /bin/rm -f out
+ }
diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py
new file mode 100644
index 0000000000..429be8542d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/converge/package.py
@@ -0,0 +1,69 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+import os
+
+
+class Converge(Package):
+ """CONVERGE is a revolutionary computational fluid dynamics (CFD) program
+ that eliminates the grid generation bottleneck from the simulation process.
+ CONVERGE was developed by engine simulation experts and is straightforward
+ to use for both engine and non-engine simulations. Unlike many CFD
+ programs, CONVERGE automatically generates a perfectly orthogonal,
+ structured grid at runtime based on simple, user-defined grid control
+ parameters. This grid generation method completely eliminates the need to
+ manually generate a grid. In addition, CONVERGE offers many other features
+ to expedite the setup process and to ensure that your simulations are as
+ computationally efficient as possible.
+
+ Note: CONVERGE is licensed software. You will need to create an account on
+ the CONVERGE homepage and download CONVERGE yourself. Spack will search
+ your current directory for the download file. Alternatively, add this file
+ to a mirror so that Spack can find it. For instructions on how to set up a
+ mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://www.convergecfd.com/"
+ url = "file://%s/converge_install_2.3.16.tar.gz" % os.getcwd()
+
+ version('2.3.16', '8b80f1e73a63181c427c7732ad279986')
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ # The Converge Getting Started Guide recommends:
+ # MPICH: 3.1.4
+ # HP-MPI: 2.0.3+
+ # OpenMPI: 1.6.*
+ depends_on('mpi', when='+mpi')
+
+ # Licensing
+ license_required = True
+ license_comment = '#'
+ license_files = ['license/license.lic']
+ license_vars = ['RLM_LICENSE']
+ license_url = 'http://www.reprisesoftware.com/RLM_License_Administration.pdf'
+
+ def install(self, spec, prefix):
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 0d293e5d92..1dee94bfff 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -32,6 +32,10 @@ class Dealii(Package):
homepage = "https://www.dealii.org"
url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
+ # Don't add RPATHs to this package for the full build DAG.
+ # only add for immediate deps.
+ transitive_rpaths = False
+
version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7')
version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d')
version('8.4.0', 'ac5dbf676096ff61e092ce98c80c2b00')
diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py
new file mode 100644
index 0000000000..8a85423192
--- /dev/null
+++ b/var/spack/repos/builtin/packages/everytrace-example/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class EverytraceExample(CMakePackage):
+ """Get stack trace EVERY time a program exits."""
+
+ homepage = "https://github.com/citibeth/everytrace-example"
+ version('develop',
+ git='https://github.com/citibeth/everytrace-example.git',
+ branch='develop')
+
+ depends_on('cmake', type='build')
+ depends_on('everytrace+mpi+fortran')
+
+ # Currently the only MPI this everytrace works with.
+ depends_on('openmpi')
+
+ def configure_args(self):
+ return []
+
+ def setup_environment(self, spack_env, env):
+ env.prepend_path('PATH', join_path(self.prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py
new file mode 100644
index 0000000000..ee1a058009
--- /dev/null
+++ b/var/spack/repos/builtin/packages/everytrace/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Everytrace(CMakePackage):
+ """Get stack trace EVERY time a program exits."""
+
+ homepage = "https://github.com/citibeth/everytrace"
+ url = "https://github.com/citibeth/everytrace/tarball/0.2.0"
+
+ version('0.2.0', '2af0e5b6255064d5191accebaa70d222')
+ version('develop',
+ git='https://github.com/citibeth/everytrace.git', branch='develop')
+
+ variant('mpi', default=True, description='Enables MPI parallelism')
+ variant('fortran', default=True,
+ description='Enable use with Fortran programs')
+
+ depends_on('cmake', type='build')
+ depends_on('mpi', when='+mpi')
+
+ def configure_args(self):
+ spec = self.spec
+ return [
+ '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'),
+ '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO')]
+
+ def setup_environment(self, spack_env, env):
+ env.prepend_path('PATH', join_path(self.prefix, 'bin'))
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
index fd9a37df1b..1dc302fdff 100644
--- a/var/spack/repos/builtin/packages/fenics/package.py
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -143,7 +143,7 @@ class Fenics(Package):
def install(self, spec, prefix):
for package in ['ufl', 'ffc', 'fiat', 'instant']:
with working_dir(join_path('depends', package)):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
cmake_args = [
'-DCMAKE_BUILD_TYPE:STRING={0}'.format(
diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py
new file mode 100644
index 0000000000..c39b17db2c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flint/package.py
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Flint(Package):
+ """FLINT (Fast Library for Number Theory)."""
+
+ homepage = "http://www.flintlib.org"
+ url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz"
+
+ version('2.5.2', 'cda885309362150196aed66a5e0f0383')
+ version('2.4.5', '6504b9deabeafb9313e57153a1730b33')
+ version('develop', git='https://github.com/wbhart/flint2.git')
+
+ # Overlap in functionality between gmp and mpir
+ # All other dependencies must also be built with
+ # one or the other
+ # variant('mpir', default=False,
+ # description='Compile with the MPIR library')
+
+ # Build dependencies
+ depends_on('autoconf', type='build')
+
+ # Other dependencies
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
+
+ def install(self, spec, prefix):
+ options = []
+ options = ["--prefix=%s" % prefix,
+ "--with-gmp=%s" % spec['gmp'].prefix,
+ "--with-mpfr=%s" % spec['mpfr'].prefix]
+
+ # if '+mpir' in spec:
+ # options.extend([
+ # "--with-mpir=%s" % spec['mpir'].prefix
+ # ])
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make("check")
+ make("install")
diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py
index ddc2dbb935..de872f09e0 100644
--- a/var/spack/repos/builtin/packages/gmp/package.py
+++ b/var/spack/repos/builtin/packages/gmp/package.py
@@ -40,4 +40,9 @@ class Gmp(AutotoolsPackage):
depends_on('m4', type='build')
def configure_args(self):
- return ['--enable-cxx']
+ args = ['--enable-cxx']
+ # We need this flag if we want all the following checks to pass.
+ if spec.compiler.name == 'intel':
+ args.append('CXXFLAGS=-no-ftz')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py
index 574d3b9402..da17c4a330 100644
--- a/var/spack/repos/builtin/packages/gsl/package.py
+++ b/var/spack/repos/builtin/packages/gsl/package.py
@@ -38,6 +38,7 @@ class Gsl(Package):
homepage = "http://www.gnu.org/software/gsl"
url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz"
+ version('2.2.1', '3d90650b7cfe0a6f4b29c2d7b0f86458')
version('2.1', 'd8f70abafd3e9f0bae03c52d1f4e8de5')
version('2.0', 'ae44cdfed78ece40e73411b63a78c375')
version('1.16', 'e49a664db13d81c968415cd53f62bc8b')
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 9a44184256..2554bd0f96 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -34,13 +34,14 @@ class Hdf(Package):
list_url = "https://www.hdfgroup.org/ftp/HDF/releases/"
list_depth = 3
+ version('4.2.12', '79fd1454c899c05e34a3da0456ab0c1c')
version('4.2.11', '063f9928f3a19cc21367b71c3b8bbf19')
variant('szip', default=False, description="Enable szip support")
- depends_on('jpeg')
+ depends_on('jpeg@6b:')
depends_on('szip', when='+szip')
- depends_on('zlib')
+ depends_on('zlib@1.1.4:')
depends_on('bison', type='build')
depends_on('flex', type='build')
@@ -48,9 +49,9 @@ class Hdf(Package):
def install(self, spec, prefix):
config_args = [
'CFLAGS=-fPIC',
- '--prefix=%s' % prefix,
- '--with-jpeg=%s' % spec['jpeg'].prefix,
- '--with-zlib=%s' % spec['zlib'].prefix,
+ '--prefix={0}'.format(prefix),
+ '--with-jpeg={0}'.format(spec['jpeg'].prefix),
+ '--with-zlib={0}'.format(spec['zlib'].prefix),
'--disable-netcdf', # must be disabled to build NetCDF with HDF4
'--enable-fortran',
'--disable-shared', # fortran and shared libs are not compatible
@@ -58,12 +59,17 @@ class Hdf(Package):
'--enable-production'
]
- # SZip support
+ # Szip support
if '+szip' in spec:
- config_args.append('--with-szlib=%s' % spec['szip'].prefix)
+ config_args.append('--with-szlib={0}'.format(spec['szip'].prefix))
+ else:
+ config_args.append('--without-szlib')
configure(*config_args)
make()
- make('check')
+
+ if self.run_tests:
+ make('check')
+
make('install')
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index b5a7a65083..6b18aa4ab8 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -60,7 +60,7 @@ class Hdf5(AutotoolsPackage):
depends_on('mpi', when='+mpi')
depends_on('szip', when='+szip')
- depends_on('zlib')
+ depends_on('zlib@1.1.2:')
@AutotoolsPackage.precondition('configure')
def validate(self):
@@ -123,16 +123,14 @@ class Hdf5(AutotoolsPackage):
# this is not actually a problem.
extra_args.extend([
"--enable-parallel",
- "CC=%s" % join_path(spec['mpi'].prefix.bin, "mpicc"),
+ "CC=%s" % spec['mpi'].mpicc
])
if '+cxx' in spec:
- extra_args.append("CXX=%s" % join_path(spec['mpi'].prefix.bin,
- "mpic++"))
+ extra_args.append("CXX=%s" % spec['mpi'].mpicxx)
if '+fortran' in spec:
- extra_args.append("FC=%s" % join_path(spec['mpi'].prefix.bin,
- "mpifort"))
+ extra_args.append("FC=%s" % spec['mpi'].mpifc)
if '+szip' in spec:
extra_args.append("--with-szlib=%s" % spec['szip'].prefix)
@@ -172,7 +170,7 @@ HDF5 version {version} {version}
with open("check.c", 'w') as f:
f.write(source)
if '+mpi' in spec:
- cc = which(join_path(spec['mpi'].prefix.bin, "mpicc"))
+ cc = which('%s' % spec['mpi'].mpicc)
else:
cc = which('cc')
# TODO: Automate these path and library settings
diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py
index 686e959719..fe75c256f8 100644
--- a/var/spack/repos/builtin/packages/hpx5/package.py
+++ b/var/spack/repos/builtin/packages/hpx5/package.py
@@ -37,15 +37,16 @@ class Hpx5(Package):
applications enabling scientists to write code that performs and
scales better than contemporary runtimes."""
homepage = "http://hpx.crest.iu.edu"
- url = "http://hpx.crest.iu.edu/release/hpx-2.0.0.tar.gz"
+ url = "http://hpx.crest.iu.edu/release/hpx-3.1.0.tar.gz"
+ version('3.1.0', '9e90b8ac46788c009079632828c77628')
version('2.0.0', '3d2ff3aab6c46481f9ec65c5b2bfe7a6')
version('1.3.0', '2260ecc7f850e71a4d365a43017d8cee')
version('1.2.0', '4972005f85566af4afe8b71afbf1480f')
version('1.1.0', '646afb460ecb7e0eea713a634933ce4f')
version('1.0.0', '8020822adf6090bd59ed7fe465f6c6cb')
- variant('debug', default=False, description='Build a debug version of HPX-5')
+ variant('debug', default=False, description='Build debug version of HPX-5')
variant('photon', default=False, description='Enable Photon support')
variant('mpi', default=False, description='Enable MPI support')
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py
index f22303a864..53c3b851b3 100644
--- a/var/spack/repos/builtin/packages/hypre/package.py
+++ b/var/spack/repos/builtin/packages/hypre/package.py
@@ -61,9 +61,9 @@ class Hypre(Package):
configure_args = [
'--prefix=%s' % prefix,
'--with-lapack-libs=%s' % ' '.join(lapack.names),
- '--with-lapack-lib-dirs=%s' % spec['lapack'].prefix.lib,
+ '--with-lapack-lib-dirs=%s' % ' '.join(lapack.directories),
'--with-blas-libs=%s' % ' '.join(blas.names),
- '--with-blas-lib-dirs=%s' % spec['blas'].prefix.lib
+ '--with-blas-lib-dirs=%s' % ' '.join(blas.directories)
]
if '+shared' in self.spec:
diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py
index 7fb47f8dcd..1964f03b95 100644
--- a/var/spack/repos/builtin/packages/libcerf/package.py
+++ b/var/spack/repos/builtin/packages/libcerf/package.py
@@ -38,6 +38,12 @@ class Libcerf(Package):
version('1.3', 'b3504c467204df71e62aeccf73a25612')
def install(self, spec, prefix):
- configure('--prefix=%s' % prefix)
+ options = []
+ # Clang reports unused functions as errors, see
+ # http://clang.debian.net/status.php?version=3.8.1&key=UNUSED_FUNCTION
+ if spec.satisfies('%clang'):
+ options.append('CFLAGS=-Wno-unused-function')
+
+ configure('--prefix=%s' % prefix, *options)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
index 6252a88542..3fe159d7b9 100644
--- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
@@ -26,20 +26,25 @@ from spack import *
class LibjpegTurbo(Package):
- """libjpeg-turbo is a fork of the original IJG libjpeg which uses
- SIMD to accelerate baseline JPEG compression and
- decompression. libjpeg is a library that implements JPEG image
- encoding, decoding and transcoding."""
+ """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to
+ accelerate baseline JPEG compression and decompression. libjpeg is a
+ library that implements JPEG image encoding, decoding and
+ transcoding."""
+
homepage = "http://libjpeg-turbo.virtualgl.org"
url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz"
+ version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257')
version('1.3.1', '2c3a68129dac443a72815ff5bb374b05')
- # Can use either of these.
- depends_on("yasm", type='build')
+ # Can use either of these. But in the current version of the package
+ # only nasm is used. In order to use yasm an environmental variable
+ # NASM must be set.
+ # TODO: Implement the selection between two supported assemblers.
+ # depends_on("yasm", type='build')
depends_on("nasm", type='build')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure("--prefix=" + prefix)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py
index 21a6eede3f..c20e6fe192 100644
--- a/var/spack/repos/builtin/packages/libsplash/package.py
+++ b/var/spack/repos/builtin/packages/libsplash/package.py
@@ -37,6 +37,10 @@ class Libsplash(Package):
homepage = "https://github.com/ComputationalRadiationPhysics/libSplash"
url = "https://github.com/ComputationalRadiationPhysics/libSplash/archive/v1.4.0.tar.gz"
+ version('dev', branch='dev',
+ git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
+ version('master', branch='master',
+ git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
version('1.4.0', '2de37bcef6fafa1960391bf44b1b50e0')
version('1.3.1', '524580ba088d97253d03b4611772f37c')
version('1.2.4', '3fccb314293d22966beb7afd83b746d0')
diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py
index cef9fcaae5..6c282dee7c 100644
--- a/var/spack/repos/builtin/packages/libtiff/package.py
+++ b/var/spack/repos/builtin/packages/libtiff/package.py
@@ -27,9 +27,10 @@ from spack import *
class Libtiff(Package):
"""libtiff graphics format library"""
- homepage = "http://www.remotesensing.org/libtiff/"
- url = "http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz"
+ homepage = "http://www.simplesystems.org/libtiff/"
+ url = "ftp://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz"
+ version('4.0.6', 'd1d2e940dea0b5ad435f21f03d96dd72')
version('4.0.3', '051c1068e6a0627f461948c365290410')
depends_on('jpeg')
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index cbf9059f65..9aa4ab8cf0 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -23,8 +23,6 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import glob
-import string
class Mfem(Package):
@@ -35,11 +33,11 @@ class Mfem(Package):
version('3.2',
'2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
- url='http://goo.gl/Y9T75B', expand=False, preferred=True)
+ url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz')
version('3.1',
'841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
- url='http://goo.gl/xrScXn', expand=False)
+ url='http://goo.gl/xrScXn', extension='.tar.gz')
# version('3.1', git='https://github.com/mfem/mfem.git',
# commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574')
@@ -48,8 +46,11 @@ class Mfem(Package):
variant('suite-sparse', default=False,
description='Activate support for SuiteSparse')
variant('mpi', default=False, description='Activate support for MPI')
+ variant('superlu-dist', default=False,
+ description='Activate support for SuperLU_Dist')
variant('lapack', default=False, description='Activate support for LAPACK')
variant('debug', default=False, description='Build debug version')
+ variant('netcdf', default=False, description='Activate NetCDF support')
depends_on('blas', when='+lapack')
depends_on('lapack', when='+lapack')
@@ -68,6 +69,12 @@ class Mfem(Package):
depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:')
depends_on('cmake', when='^metis@5:', type='build')
+ depends_on('superlu-dist', when='@3.2: +superlu-dist')
+
+ depends_on('netcdf', when='@3.2: +netcdf')
+ depends_on('zlib', when='@3.2: +netcdf')
+ depends_on('hdf5', when='@3.2: +netcdf')
+
def check_variants(self, spec):
if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec):
raise InstallError('mfem+mpi must be built with +hypre ' +
@@ -81,6 +88,12 @@ class Mfem(Package):
raise InstallError('To work around CMake bug with clang, must ' +
'build mfem with mfem[+variants] %clang ' +
'^cmake %gcc to force CMake to build with gcc')
+ if '@:3.1' in spec and '+superlu-dist' in spec:
+ raise InstallError('MFEM does not support SuperLU_DIST for ' +
+ 'versions 3.1 and earlier')
+ if '@:3.1' in spec and '+netcdf' in spec:
+ raise InstallError('MFEM does not support NetCDF for versions' +
+ '3.1 and earlier')
return
def install(self, spec, prefix):
@@ -102,7 +115,14 @@ class Mfem(Package):
'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib +
' -lHYPRE'])
- if '+metis' in spec:
+ if 'parmetis' in spec:
+ metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib
+ metis_str = 'MFEM_USE_METIS_5=YES'
+ options.extend([metis_str,
+ 'METIS_DIR=%s' % spec['parmetis'].prefix,
+ 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib])
+ elif 'metis' in spec:
metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib
if spec['metis'].satisfies('@5:'):
metis_str = 'MFEM_USE_METIS_5=YES'
@@ -114,14 +134,27 @@ class Mfem(Package):
'METIS_OPT=-I%s' % spec['metis'].prefix.include,
'METIS_LIB=%s' % metis_lib])
- if '+mpi' in spec:
+ if 'mpi' in spec:
options.extend(['MFEM_USE_MPI=YES'])
+ if '+superlu-dist' in spec:
+ superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib
+ superlu_lib += ' -lsuperlu_dist'
+ sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include
+ options.extend(['MFEM_USE_SUPERLU=YES',
+ 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix,
+ sl_inc,
+ 'SUPERLU_LIB=%s' % superlu_lib])
+
if '+suite-sparse' in spec:
ssp = spec['suite-sparse'].prefix
ss_lib = '-L%s' % ssp.lib
- ss_lib += (' -lumfpack -lcholmod -lcolamd -lamd -lcamd' +
- ' -lccolamd -lsuitesparseconfig')
+
+ if '@3.2:' in spec:
+ ss_lib += ' -lklu -lbtf'
+
+ ss_lib += (' -lumfpack -lcholmod -lcolamd' +
+ ' -lamd -lcamd -lccolamd -lsuitesparseconfig')
no_librt_archs = ['darwin-i686', 'darwin-x86_64']
no_rt = any(map(lambda a: spec.satisfies('=' + a),
@@ -135,16 +168,23 @@ class Mfem(Package):
'SUITESPARSE_OPT=-I%s' % ssp.include,
'SUITESPARSE_LIB=%s' % ss_lib])
+ if '+netcdf' in spec:
+ np = spec['netcdf'].prefix
+ zp = spec['zlib'].prefix
+ h5p = spec['hdf5'].prefix
+ nlib = '-L%s -lnetcdf ' % np.lib
+ nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib
+ nlib += '-L%s -lz' % zp.lib
+ options.extend(['MFEM_USE_NETCDF=YES',
+ 'NETCDF_DIR=%s' % np,
+ 'HDF5_DIR=%s' % h5p,
+ 'ZLIB_DIR=%s' % zp,
+ 'NETCDF_OPT=-I%s' % np.include,
+ 'NETCDF_LIB=%s' % nlib])
+
if '+debug' in spec:
options.extend(['MFEM_DEBUG=YES'])
- # Dirty hack to cope with URL redirect
- tgz_file = string.split(self.url, '/')[-1]
- tar = which('tar')
- tar('xzvf', tgz_file)
- cd(glob.glob('mfem*')[0])
- # End dirty hack to cope with URL redirect
-
make('config', *options)
make('all')
diff --git a/var/spack/repos/builtin/packages/mkl/package.py b/var/spack/repos/builtin/packages/mkl/package.py
index 8a31858bf5..4a9a8785f7 100644
--- a/var/spack/repos/builtin/packages/mkl/package.py
+++ b/var/spack/repos/builtin/packages/mkl/package.py
@@ -66,13 +66,6 @@ class Mkl(IntelInstaller):
for f in os.listdir(mkl_dir):
os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f))
- # Unfortunately MKL libs are natively distrubted in prefix/lib/intel64.
- # To make MKL play nice with Spack, symlink all files to prefix/lib:
- mkl_lib_dir = os.path.join(prefix, "lib", "intel64")
- for f in os.listdir(mkl_lib_dir):
- os.symlink(os.path.join(mkl_lib_dir, f),
- os.path.join(self.prefix, "lib", f))
-
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up MKLROOT for everyone using MKL package
spack_env.set('MKLROOT', self.prefix)
diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py
index 71cacd5dfe..2fe3900981 100644
--- a/var/spack/repos/builtin/packages/mpc/package.py
+++ b/var/spack/repos/builtin/packages/mpc/package.py
@@ -35,12 +35,12 @@ class Mpc(Package):
version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26')
version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3')
- depends_on("gmp")
- depends_on("mpfr")
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
def url_for_version(self, version):
if version < Version("1.0.1"):
- return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version
+ return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version # NOQA
else:
return "ftp://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version
diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py
index 5777cd1926..4612d03849 100644
--- a/var/spack/repos/builtin/packages/mpfr/package.py
+++ b/var/spack/repos/builtin/packages/mpfr/package.py
@@ -35,7 +35,7 @@ class Mpfr(Package):
version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138')
version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19')
- depends_on('gmp')
+ depends_on('gmp') # mpir is a drop-in replacement for this
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index a36ab4206e..bb034f9fc7 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -27,9 +27,10 @@ from spack import *
class Mpich(Package):
"""MPICH is a high performance and widely portable implementation of
- the Message Passing Interface (MPI) standard."""
+ the Message Passing Interface (MPI) standard."""
+
homepage = "http://www.mpich.org"
- url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
+ url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
list_url = "http://www.mpich.org/static/downloads/"
list_depth = 2
@@ -41,10 +42,10 @@ class Mpich(Package):
version('3.1', '5643dd176499bfb7d25079aaff25f2ec')
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
- variant('verbs', default=False,
- description='Build support for OpenFabrics verbs.')
- variant('pmi', default=True, description='Build with PMI support')
- variant('hydra', default=True, description='Build the hydra process manager')
+ variant('hydra', default=True, description='Build the hydra process manager')
+ variant('pmi', default=True, description='Build with PMI support')
+ variant('romio', default=True, description='Enable ROMIO MPI I/O implementation')
+ variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
@@ -62,26 +63,32 @@ class Mpich(Package):
spack_env.set('MPICH_FC', spack_fc)
def setup_dependent_package(self, module, dep_spec):
- self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
- self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
- self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
- self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+ # Is this a Cray machine? (TODO: We need a better test than this.)
+ if os.environ.get('CRAYPE_VERSION'):
+ self.spec.mpicc = spack_cc
+ self.spec.mpicxx = spack_cxx
+ self.spec.mpifc = spack_fc
+ self.spec.mpif77 = spack_f77
+ else:
+ self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
+ self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
+ self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
+ self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+
self.spec.mpicxx_shared_libs = [
join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
]
def install(self, spec, prefix):
- config_args = ["--prefix=" + prefix,
- "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'),
- "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'),
- "--enable-shared"]
-
- # Variants
- if '+verbs' in spec:
- config_args.append("--with-ibverbs")
- else:
- config_args.append("--without-ibverbs")
+ config_args = [
+ '--prefix={0}'.format(prefix),
+ '--enable-shared',
+ '--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'),
+ '--with-pmi={0}'.format('yes' if '+pmi' in spec else 'no'),
+ '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'),
+ '--{0}-ibverbs'.format('with' if '+verbs' in spec else 'without')
+ ]
# TODO: Spack should make it so that you can't actually find
# these compilers if they're "disabled" for the current
@@ -96,32 +103,33 @@ class Mpich(Package):
config_args.append("--disable-fortran")
configure(*config_args)
+
make()
- make("install")
+ make('check')
+ make('install')
- self.filter_compilers()
+ self.filter_compilers(prefix)
- def filter_compilers(self):
+ def filter_compilers(self, prefix):
"""Run after install to make the MPI compilers use the
- compilers that Spack built the package with.
-
- If this isn't done, they'll have CC, CXX, F77, and FC set
- to Spack's generic cc, c++, f77, and f90. We want them to
- be bound to whatever compiler they were built with.
- """
- bin = self.prefix.bin
- mpicc = join_path(bin, 'mpicc')
- mpicxx = join_path(bin, 'mpicxx')
- mpif77 = join_path(bin, 'mpif77')
- mpif90 = join_path(bin, 'mpif90')
+ compilers that Spack built the package with.
+
+ If this isn't done, they'll have CC, CXX, F77, and FC set
+ to Spack's generic cc, c++, f77, and f90. We want them to
+ be bound to whatever compiler they were built with."""
+
+ mpicc = join_path(prefix.bin, 'mpicc')
+ mpicxx = join_path(prefix.bin, 'mpicxx')
+ mpif77 = join_path(prefix.bin, 'mpif77')
+ mpif90 = join_path(prefix.bin, 'mpif90')
# Substitute Spack compile wrappers for the real
# underlying compiler
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
- filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
+ filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
- filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
+ filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
# Remove this linking flag if present
# (it turns RPATH into RUNPATH)
diff --git a/var/spack/repos/builtin/packages/mpir/package.py b/var/spack/repos/builtin/packages/mpir/package.py
new file mode 100644
index 0000000000..b939a690b2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpir/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mpir(Package):
+ """Multiple Precision Integers and Rationals."""
+
+ homepage = "https://github.com/wbhart/mpir"
+ url = "https://github.com/wbhart/mpir/archive/mpir-2.7.0.tar.gz"
+
+ version('2.7.0', '985b5d57bd0e74c74125ee885b9c8f71')
+ version('2.6.0', 'ec17d6a7e026114ceb734b2466aa0a91')
+ version('develop', git='https://github.com/wbhart/mpir.git')
+
+ # This setting allows mpir to act as a drop-in replacement for gmp
+ variant('gmp_compat', default=False,
+ description='Compile with GMP library compatibility')
+
+ # Build dependencies
+ depends_on('autoconf', type='build')
+
+ # Other dependencies
+ depends_on('yasm')
+
+ def install(self, spec, prefix):
+ # We definitely don't want to have MPIR build its
+ # own version of YASM. This tries to install it
+ # to a system directory.
+ options = ['--prefix={0}'.format(prefix),
+ '--with-system-yasm']
+
+ if '+gmp_compat' in spec:
+ options.extend(['--enable-gmpcompat'])
+
+ configure(*options)
+ make()
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py
index 3466f091a0..e0d7a00c55 100644
--- a/var/spack/repos/builtin/packages/mumps/package.py
+++ b/var/spack/repos/builtin/packages/mumps/package.py
@@ -34,6 +34,8 @@ class Mumps(Package):
homepage = "http://mumps.enseeiht.fr"
url = "http://mumps.enseeiht.fr/MUMPS_5.0.1.tar.gz"
+ # Alternate location if main server is down.
+ # version('5.0.1', 'b477573fdcc87babe861f62316833db0', url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz')
version('5.0.1', 'b477573fdcc87babe861f62316833db0')
variant('mpi', default=True,
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
index a25d69d9f6..28dfe8f059 100644
--- a/var/spack/repos/builtin/packages/nco/package.py
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -32,6 +32,7 @@ class Nco(Package):
homepage = "https://sourceforge.net/projects/nco"
url = "https://github.com/nco/nco/archive/4.5.5.tar.gz"
+ version('4.6.1', 'ef43cc989229c2790a9094bd84728fd8')
version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce')
# See "Compilation Requirements" at:
@@ -39,18 +40,21 @@ class Nco(Package):
variant('mpi', default=True)
depends_on('netcdf')
- depends_on('netcdf+mpi', when='+mpi')
- depends_on('netcdf~mpi', when='~mpi')
- depends_on('antlr@2.7.7+cxx') # (required for ncap2)
- depends_on('gsl') # (desirable for ncap2)
- depends_on('udunits2') # (allows dimensional unit transformations)
- # depends_on('opendap') # (enables network transparency),
+ depends_on('antlr@2.7.7+cxx') # required for ncap2
+ depends_on('gsl') # desirable for ncap2
+ depends_on('udunits2') # allows dimensional unit transformations
+ # depends_on('opendap') # enables network transparency
def install(self, spec, prefix):
+ # Workaround until variant forwarding works properly
+ if '+mpi' in spec and spec.satisfies('^netcdf~mpi'):
+ raise RuntimeError('Invalid spec. Package netcdf requires '
+ 'netcdf+mpi, but spec asked for netcdf~mpi.')
+
opts = [
'--prefix=%s' % prefix,
- '--disable-openmp', # TODO: Make this a variant
- '--disable-dap', # TODO: Make this a variant
+ '--disable-openmp', # TODO: Make this a variant
+ '--disable-dap', # TODO: Make this a variant
'--disable-esmf']
configure(*opts)
make()
diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py
index 5dc686c907..d4d7fd1691 100644
--- a/var/spack/repos/builtin/packages/netcdf/package.py
+++ b/var/spack/repos/builtin/packages/netcdf/package.py
@@ -46,10 +46,10 @@ class Netcdf(Package):
depends_on("hdf", when='+hdf4')
# Required for DAP support
- depends_on("curl")
+ depends_on("curl@7.18.0:")
# Required for NetCDF-4 support
- depends_on("zlib")
+ depends_on("zlib@1.2.5:")
depends_on('hdf5')
# NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later
@@ -105,7 +105,7 @@ class Netcdf(Package):
LDFLAGS.append("-L%s/lib" % spec['hdf'].prefix)
LIBS.append("-l%s" % "jpeg")
- if 'szip' in spec:
+ if '+szip' in spec:
CPPFLAGS.append("-I%s/include" % spec['szip'].prefix)
LDFLAGS.append("-L%s/lib" % spec['szip'].prefix)
LIBS.append("-l%s" % "sz")
@@ -120,4 +120,8 @@ class Netcdf(Package):
configure(*config_args)
make()
+
+ if self.run_tests:
+ make("check")
+
make("install")
diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py
index b4c873a8a1..7e2b758bc0 100644
--- a/var/spack/repos/builtin/packages/nettle/package.py
+++ b/var/spack/repos/builtin/packages/nettle/package.py
@@ -36,6 +36,7 @@ class Nettle(Package):
version('2.7', '2caa1bd667c35db71becb93c5d89737f')
depends_on('gmp')
+ depends_on('m4', type='build')
def install(self, spec, prefix):
configure('--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py
index 75c4ac807d..5cf3edb8da 100644
--- a/var/spack/repos/builtin/packages/pango/package.py
+++ b/var/spack/repos/builtin/packages/pango/package.py
@@ -41,6 +41,7 @@ class Pango(Package):
depends_on("pkg-config", type="build")
depends_on("harfbuzz")
depends_on("cairo")
+ depends_on("glib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py
new file mode 100644
index 0000000000..dbf949f000
--- /dev/null
+++ b/var/spack/repos/builtin/packages/piranha/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Piranha(Package):
+ """Piranha is a computer-algebra library for the symbolic manipulation of
+ sparse multivariate polynomials and other closely-related symbolic objects
+ (such as Poisson series)."""
+
+ homepage = "https://bluescarni.github.io/piranha/sphinx/"
+ url = "https://github.com/bluescarni/piranha/archive/v0.5.tar.gz"
+
+ version('0.5', '99546bae2be115737b6316751eb0b84d')
+ version('develop', git='https://github.com/bluescarni/piranha.git')
+
+ variant('python', default=True,
+ description='Build the Python bindings')
+
+ # Build dependencies
+ depends_on('cmake@3.0:', type='build')
+ extends('python', when='+pyranha')
+ depends_on('python@2.6:', type='build', when='+pyranha')
+
+ # Other dependencies
+ depends_on('boost+iostreams+regex+serialization',
+ when='~python')
+ depends_on('boost+iostreams+regex+serialization+python',
+ when='+python')
+ depends_on('bzip2')
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpfr') # Could also be built against mpir
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ # Python bindings
+ options.extend([
+ '-DBUILD_PYRANHA=%s' % (
+ 'ON' if '+python' in spec else 'OFF'),
+ '-DBUILD_TESTS:BOOL=ON',
+ ])
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+
+ make()
+ make('install')
+ if self.run_tests:
+ make('test')
diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py
index 41aad0c90a..8fe3e1f9d9 100644
--- a/var/spack/repos/builtin/packages/pixman/package.py
+++ b/var/spack/repos/builtin/packages/pixman/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
class Pixman(Package):
@@ -38,8 +39,13 @@ class Pixman(Package):
depends_on("libpng")
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--disable-mmx",
- "--disable-gtk")
+ config_args = ["--prefix=" + prefix,
+ "--disable-gtk"]
+
+ if sys.platform == "darwin":
+ config_args.append("--disable-mmx")
+
+ configure(*config_args)
+
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py
index c51f1f82a8..4c0370a7ef 100644
--- a/var/spack/repos/builtin/packages/pngwriter/package.py
+++ b/var/spack/repos/builtin/packages/pngwriter/package.py
@@ -38,6 +38,10 @@ class Pngwriter(Package):
homepage = "http://pngwriter.sourceforge.net/"
url = "https://github.com/pngwriter/pngwriter/archive/0.5.6.tar.gz"
+ version('dev', branch='dev',
+ git='https://github.com/pngwriter/pngwriter.git')
+ version('master', branch='master',
+ git='https://github.com/pngwriter/pngwriter.git')
version('0.5.6', 'c13bd1fdc0e331a246e6127b5f262136')
depends_on('cmake', type='build')
diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py
index 1071a3c209..d0b6857aaf 100644
--- a/var/spack/repos/builtin/packages/py-3to2/package.py
+++ b/var/spack/repos/builtin/packages/py-3to2/package.py
@@ -37,4 +37,4 @@ class Py3to2(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py
index ca59105b4c..73e144b00e 100644
--- a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py
+++ b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py
@@ -36,4 +36,4 @@ class PySqlalchemy(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py
index 2549972a6d..64312da9dc 100644
--- a/var/spack/repos/builtin/packages/py-argcomplete/package.py
+++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py
@@ -36,4 +36,4 @@ class PyArgcomplete(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py
index a47b7ffa33..ff5683c705 100644
--- a/var/spack/repos/builtin/packages/py-astroid/package.py
+++ b/var/spack/repos/builtin/packages/py-astroid/package.py
@@ -42,4 +42,4 @@ class PyAstroid(Package):
depends_on('py-six', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py
index 25dce87e49..1565db0bdd 100644
--- a/var/spack/repos/builtin/packages/py-astropy/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy/package.py
@@ -56,6 +56,5 @@ class PyAstropy(Package):
depends_on('expat')
def install(self, spec, prefix):
- python('setup.py', 'build', '--use-system-cfitsio',
- '--use-system-expat')
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('build', '--use-system-cfitsio', '--use-system-expat')
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py
index f6c08e2728..6d093f32f6 100644
--- a/var/spack/repos/builtin/packages/py-autopep8/package.py
+++ b/var/spack/repos/builtin/packages/py-autopep8/package.py
@@ -1,16 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
from spack import *
class PyAutopep8(Package):
- """Automatic pep8 formatter"""
+ """autopep8 automatically formats Python code to conform to the
+ PEP 8 style guide."""
+
homepage = "https://github.com/hhatto/autopep8"
- url = "https://github.com/hhatto/autopep8/archive/ver1.2.2.tar.gz"
+ url = "https://github.com/hhatto/autopep8/archive/v1.2.4.tar.gz"
+ version('1.2.4', '0458db85159a9e1b45f3e71ce6c158da')
version('1.2.2', 'def3d023fc9dfd1b7113602e965ad8e1')
- extends('python')
+ extends('python', ignore='bin/pep8')
+ depends_on('python@2.6:2.7,3.2:')
+
+ depends_on('py-pycodestyle@1.5.7:1.7.0', type=nolink)
+
depends_on('py-setuptools', type='build')
- depends_on('py-pep8', type=nolink)
+
+ def url_for_version(self, version):
+ url = "https://github.com/hhatto/autopep8/archive/{0}{1}.tar.gz"
+ if version >= Version('1.2.3'):
+ return url.format('v', version)
+ else:
+ return url.format('ver', version)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py
index 9c7f6454df..5b0026eda9 100644
--- a/var/spack/repos/builtin/packages/py-basemap/package.py
+++ b/var/spack/repos/builtin/packages/py-basemap/package.py
@@ -43,4 +43,4 @@ class PyBasemap(Package):
def install(self, spec, prefix):
env['GEOS_DIR'] = spec['geos'].prefix
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
index d3a260bd7f..71014b5bdb 100644
--- a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
+++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
@@ -40,4 +40,4 @@ class PyBeautifulsoup4(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py
index c3edf9735b..9e1b693a0d 100644
--- a/var/spack/repos/builtin/packages/py-biopython/package.py
+++ b/var/spack/repos/builtin/packages/py-biopython/package.py
@@ -41,4 +41,4 @@ class PyBiopython(Package):
depends_on('py-numpy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py
index e6fc6aa983..700c0ff4b3 100644
--- a/var/spack/repos/builtin/packages/py-blessings/package.py
+++ b/var/spack/repos/builtin/packages/py-blessings/package.py
@@ -37,4 +37,4 @@ class PyBlessings(Package):
extends("python")
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
index ad2ee749d3..20d78846bb 100644
--- a/var/spack/repos/builtin/packages/py-bottleneck/package.py
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -36,4 +36,4 @@ class PyBottleneck(Package):
depends_on('py-numpy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py
index 7c08e51de8..5cd983b343 100644
--- a/var/spack/repos/builtin/packages/py-cffi/package.py
+++ b/var/spack/repos/builtin/packages/py-cffi/package.py
@@ -49,4 +49,4 @@ class PyCffi(Package):
# building the shared library.
os.environ['LDSHARED'] = "{0} -shared -pthread".format(spack_cc)
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py
new file mode 100644
index 0000000000..1ad4ed619e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-configparser/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyConfigparser(Package):
+ """This library brings the updated configparser from Python 3.5 to
+ Python 2.6-3.5."""
+
+ homepage = "https://pypi.python.org/pypi/configparser"
+ url = "https://pypi.python.org/packages/source/c/configparser/configparser-3.5.0.tar.gz"
+
+ version('3.5.0', 'cfdd915a5b7a6c09917a64a573140538',
+ url="https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz")
+
+ extends('python')
+ depends_on('python@2.6:2.7,3.4:')
+
+ depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=nolink)
+
+ depends_on('py-setuptools', type='build')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py
index 1a5b6df3d7..8cd8440b7e 100644
--- a/var/spack/repos/builtin/packages/py-coverage/package.py
+++ b/var/spack/repos/builtin/packages/py-coverage/package.py
@@ -38,4 +38,4 @@ class PyCoverage(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py
index 5f50e3b6c2..5b0394a138 100644
--- a/var/spack/repos/builtin/packages/py-csvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-csvkit/package.py
@@ -44,4 +44,4 @@ class PyCsvkit(Package):
depends_on('py-openpyxl', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py
index 4b3e1cabe1..e532286081 100644
--- a/var/spack/repos/builtin/packages/py-cython/package.py
+++ b/var/spack/repos/builtin/packages/py-cython/package.py
@@ -40,4 +40,4 @@ class PyCython(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py
index 4bc2c6fc99..c72046b627 100644
--- a/var/spack/repos/builtin/packages/py-dask/package.py
+++ b/var/spack/repos/builtin/packages/py-dask/package.py
@@ -37,4 +37,4 @@ class PyDask(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py
index 40945232c1..f147e2357b 100644
--- a/var/spack/repos/builtin/packages/py-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-dateutil/package.py
@@ -39,4 +39,4 @@ class PyDateutil(Package):
depends_on('py-six', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py
index 7f83bce75e..eff893cc82 100644
--- a/var/spack/repos/builtin/packages/py-dbf/package.py
+++ b/var/spack/repos/builtin/packages/py-dbf/package.py
@@ -37,4 +37,4 @@ class PyDbf(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py
index 9101b07a0d..30f764edc3 100644
--- a/var/spack/repos/builtin/packages/py-decorator/package.py
+++ b/var/spack/repos/builtin/packages/py-decorator/package.py
@@ -39,4 +39,4 @@ class PyDecorator(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py
index 397f737cb1..2045ec9d59 100644
--- a/var/spack/repos/builtin/packages/py-emcee/package.py
+++ b/var/spack/repos/builtin/packages/py-emcee/package.py
@@ -38,4 +38,4 @@ class PyEmcee(Package):
depends_on('py-numpy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py
new file mode 100644
index 0000000000..2f294bac12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-enum34/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyEnum34(Package):
+ """Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4."""
+
+ homepage = "https://pypi.python.org/pypi/enum34"
+ url = "https://pypi.python.org/packages/source/e/enum34/enum34-1.1.6.tar.gz"
+
+ version('1.1.6', '5f13a0841a61f7fc295c514490d120d0',
+ url="https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz")
+
+ extends('python')
+ depends_on('python@2.4:2.8,3.3:')
+
+ depends_on('py-ordereddict', when='^python@:2.6.999', type=nolink)
+
+ depends_on('py-setuptools', type='build')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py
index 9d4b93dad4..ed490cb396 100644
--- a/var/spack/repos/builtin/packages/py-epydoc/package.py
+++ b/var/spack/repos/builtin/packages/py-epydoc/package.py
@@ -36,4 +36,4 @@ class PyEpydoc(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py
index 2fabe03d66..8bb36bc02f 100644
--- a/var/spack/repos/builtin/packages/py-flake8/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8/package.py
@@ -28,13 +28,40 @@ from spack import *
class PyFlake8(Package):
"""Flake8 is a wrapper around PyFlakes, pep8 and Ned Batchelder's
McCabe script."""
- homepage = "http://flake8.readthedocs.io/en/latest/"
- url = "https://pypi.python.org/packages/source/f/flake8/flake8-2.5.4.tar.gz"
- version('2.5.4', 'a4585b3569b95c3f66acb8294a7f06ef')
+ homepage = "https://github.com/PyCQA/flake8"
+ url = "https://github.com/PyCQA/flake8/archive/3.0.4.tar.gz"
- extends('python')
- depends_on('py-setuptools', type='build')
+ version('3.0.4', 'cf2a7d8c92070f7b62253404ffb54df7')
+ version('2.5.4', '366dd1de6c300254c830b81e66979f06')
+
+ extends('python', ignore='bin/(pyflakes|pycodestyle)')
+ depends_on('python@2.7:2.8,3.4:')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-flake8 requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=nolink)
+
+ # pyflakes >= 0.8.1, != 1.2.0, != 1.2.1, != 1.2.2, < 1.3.0
+ depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=nolink) # noqa
+ # pyflakes >= 0.8.1, < 1.1
+ depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=nolink)
+
+ # pycodestyle >= 2.0.0, < 2.1.0
+ depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=nolink)
+ # pep8 >= 1.5.7, != 1.6.0, != 1.6.1, != 1.6.2
+ depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=nolink)
+
+ # mccabe >= 0.5.0, < 0.6.0
+ depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=nolink)
+ # mccabe >= 0.2.1, < 0.5
+ depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=nolink)
+
+ depends_on('py-configparser', when='^python@:3.3.999', type=nolink)
+ depends_on('py-enum34', when='^python@:3.1.999', type=nolink)
+
+ # TODO: Add test dependencies
+ # depends_on('py-nose', type='test')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py
index c3d37f6b98..b82a37cae9 100644
--- a/var/spack/repos/builtin/packages/py-funcsigs/package.py
+++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py
@@ -37,4 +37,4 @@ class PyFuncsigs(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py
index ea8d26c796..e7eb7bebdd 100644
--- a/var/spack/repos/builtin/packages/py-genshi/package.py
+++ b/var/spack/repos/builtin/packages/py-genshi/package.py
@@ -39,4 +39,4 @@ class PyGenshi(Package):
depends_on("py-setuptools", type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py
index a448a66e51..cc273103f2 100644
--- a/var/spack/repos/builtin/packages/py-gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py
@@ -37,4 +37,4 @@ class PyGnuplot(Package):
depends_on('py-numpy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index 90a67c51bd..0579787ba2 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -56,11 +56,10 @@ class PyH5py(Package):
depends_on('py-six', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'configure',
- '--hdf5={0}'.format(spec['hdf5'].prefix))
+ setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix))
if '+mpi' in spec:
env['CC'] = spec['mpi'].mpicc
- python('setup.py', 'configure', '--mpi')
+ setup_py('configure', '--mpi')
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py
index d7446c06d4..c58b722e3b 100644
--- a/var/spack/repos/builtin/packages/py-iminuit/package.py
+++ b/var/spack/repos/builtin/packages/py-iminuit/package.py
@@ -43,4 +43,4 @@ class PyIminuit(Package):
depends_on('py-cython', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index ac3291e21e..d7ee2e3c95 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -39,4 +39,4 @@ class PyIpython(Package):
depends_on('py-setuptools', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py
index 32acf75131..60ee91c9b6 100644
--- a/var/spack/repos/builtin/packages/py-jdcal/package.py
+++ b/var/spack/repos/builtin/packages/py-jdcal/package.py
@@ -36,4 +36,4 @@ class PyJdcal(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py
index b873625bdb..856276ec89 100644
--- a/var/spack/repos/builtin/packages/py-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-lockfile/package.py
@@ -45,4 +45,4 @@ class PyLockfile(Package):
depends_on("py-setuptools", type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py
index ac1b933e43..e66cdc8479 100644
--- a/var/spack/repos/builtin/packages/py-logilab-common/package.py
+++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py
@@ -38,4 +38,4 @@ class PyLogilabCommon(Package):
depends_on("py-six", type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py
index 18a8dc0e68..ed4ccc7364 100644
--- a/var/spack/repos/builtin/packages/py-mako/package.py
+++ b/var/spack/repos/builtin/packages/py-mako/package.py
@@ -38,4 +38,4 @@ class PyMako(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py
new file mode 100644
index 0000000000..ec913acb16
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mccabe/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMccabe(Package):
+ """Ned's script to check McCabe complexity."""
+
+ homepage = "https://github.com/PyCQA/mccabe"
+ url = "https://github.com/PyCQA/mccabe/archive/0.5.2.tar.gz"
+
+ version('0.5.2', '3cdf2d7faa1464b18905fe9a7063a632')
+ version('0.5.1', '864b364829156701bec797712be8ece0')
+ version('0.5.0', '71c0ce5e5c4676753525154f6c5d3af8')
+ version('0.4.0', '9cf5712e5f1785aaa27273a4328babe4')
+ version('0.3.1', '45c48c0978e6fc1f31fedcb918178abb')
+ version('0.3', 'c583f58ea28be12842c001473d77504d')
+ version('0.2.1', 'fcba311ebd999f48359a8ab28da94b30')
+ version('0.2', '36d4808c37e187dbb1fe2373a0ac6645')
+ version('0.1', '3c9e8e72612a9c01d865630cc569150a')
+
+ extends('python')
+ depends_on('python@2.7:2.8,3.3:')
+
+ depends_on('py-setuptools', type='build')
+
+ # TODO: Add test dependencies
+ # depends_on('py-pytest', type='test')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py
index 399c10005e..2daee1ed9a 100644
--- a/var/spack/repos/builtin/packages/py-mistune/package.py
+++ b/var/spack/repos/builtin/packages/py-mistune/package.py
@@ -43,4 +43,4 @@ class PyMistune(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py
index 2c70535f19..d397b72329 100644
--- a/var/spack/repos/builtin/packages/py-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-mock/package.py
@@ -40,4 +40,4 @@ class PyMock(Package):
depends_on('py-setuptools@17.1:', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py
index 1f0e52804e..11b1584397 100644
--- a/var/spack/repos/builtin/packages/py-mpi4py/package.py
+++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py
@@ -43,4 +43,4 @@ class PyMpi4py(Package):
depends_on('mpi')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py
index e5bae34694..846852aeb5 100644
--- a/var/spack/repos/builtin/packages/py-mpmath/package.py
+++ b/var/spack/repos/builtin/packages/py-mpmath/package.py
@@ -35,4 +35,4 @@ class PyMpmath(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py
index f5631916f6..e72b281665 100644
--- a/var/spack/repos/builtin/packages/py-mx/package.py
+++ b/var/spack/repos/builtin/packages/py-mx/package.py
@@ -40,4 +40,4 @@ class PyMx(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-mysqldb1/package.py b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
index 693fda6dbb..14534a57ca 100644
--- a/var/spack/repos/builtin/packages/py-mysqldb1/package.py
+++ b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
@@ -36,4 +36,4 @@ class PyMysqldb1(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py
index 81f9fe4d09..03096586b9 100644
--- a/var/spack/repos/builtin/packages/py-nestle/package.py
+++ b/var/spack/repos/builtin/packages/py-nestle/package.py
@@ -41,4 +41,4 @@ class PyNestle(Package):
depends_on('py-scipy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-netcdf/package.py b/var/spack/repos/builtin/packages/py-netcdf/package.py
index e4f67d75a6..497f81f86d 100644
--- a/var/spack/repos/builtin/packages/py-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/py-netcdf/package.py
@@ -38,4 +38,4 @@ class PyNetcdf(Package):
depends_on('netcdf')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index 79ad420f8f..aaeaac9674 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -39,4 +39,4 @@ class PyNetworkx(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py
index eb3dd77219..f1872c85b4 100644
--- a/var/spack/repos/builtin/packages/py-nose/package.py
+++ b/var/spack/repos/builtin/packages/py-nose/package.py
@@ -40,4 +40,4 @@ class PyNose(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index b3b2e1d47d..51b4ef2e92 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -37,4 +37,4 @@ class PyNumexpr(Package):
depends_on('py-numpy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index 0d68a892f2..8cb2331637 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -66,21 +66,21 @@ class PyNumpy(Package):
'numpy/core/include')
def install(self, spec, prefix):
- libraries = []
- library_dirs = []
+ # for build notes see http://www.scipy.org/scipylib/building/linux.html
+ lapackblas = LibraryList('')
+ if '+lapack' in spec:
+ lapackblas += spec['lapack'].lapack_libs
if '+blas' in spec:
- libraries.append('blas')
- library_dirs.append(spec['blas'].prefix.lib)
- if '+lapack' in spec:
- libraries.append('lapack')
- library_dirs.append(spec['lapack'].prefix.lib)
+ lapackblas += spec['blas'].blas_libs
if '+blas' in spec or '+lapack' in spec:
with open('site.cfg', 'w') as f:
f.write('[DEFAULT]\n')
- f.write('libraries=%s\n' % ','.join(libraries))
- f.write('library_dirs=%s\n' % ':'.join(library_dirs))
- f.write('rpath=%s\n' % ':'.join(library_dirs))
+ f.write('libraries=%s\n' % ','.join(lapackblas.names))
+ f.write('library_dirs=%s\n' % ':'.join(lapackblas.directories))
+ if not ((platform.system() == "Darwin") and
+ (platform.mac_ver()[0] == '10.12')):
+ f.write('rpath=%s\n' % ':'.join(lapackblas.directories))
setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py
index fa32cb879f..94949076ef 100644
--- a/var/spack/repos/builtin/packages/py-openpyxl/package.py
+++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py
@@ -39,4 +39,4 @@ class PyOpenpyxl(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py
new file mode 100644
index 0000000000..6e038b789c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ordereddict/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyOrdereddict(Package):
+ """A drop-in substitute for Py2.7's new collections.
+ OrderedDict that works in Python 2.4-2.6."""
+
+ homepage = "https://pypi.python.org/pypi/ordereddict"
+ url = "https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz"
+
+ version('1.1', 'a0ed854ee442051b249bfad0f638bbec')
+
+ extends('python')
+ depends_on('python@2.4:2.6.999')
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index 37234ae652..ae797cee40 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -51,4 +51,4 @@ class PyPandas(Package):
depends_on('py-bottleneck', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py
index a0cfe0e5a5..0251e436b1 100644
--- a/var/spack/repos/builtin/packages/py-pbr/package.py
+++ b/var/spack/repos/builtin/packages/py-pbr/package.py
@@ -38,4 +38,4 @@ class PyPbr(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py
deleted file mode 100644
index 87d1da9ab0..0000000000
--- a/var/spack/repos/builtin/packages/py-pep8/package.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from spack import *
-
-
-class PyPep8(Package):
- """python pep8 format checker"""
- homepage = "https://github.com/PyCQA/pycodestyle"
- url = "https://github.com/PyCQA/pycodestyle/archive/1.7.0.tar.gz"
-
- version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9')
-
- extends('python')
- depends_on('py-setuptools', type='build')
-
- def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py
index 51d9cc2046..4a5b015e60 100644
--- a/var/spack/repos/builtin/packages/py-periodictable/package.py
+++ b/var/spack/repos/builtin/packages/py-periodictable/package.py
@@ -39,4 +39,4 @@ class PyPeriodictable(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py
index 8a99c0473b..9e43e4526e 100644
--- a/var/spack/repos/builtin/packages/py-pexpect/package.py
+++ b/var/spack/repos/builtin/packages/py-pexpect/package.py
@@ -35,4 +35,4 @@ class PyPexpect(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py
index d5b3313a98..a4ad03f34d 100644
--- a/var/spack/repos/builtin/packages/py-phonopy/package.py
+++ b/var/spack/repos/builtin/packages/py-phonopy/package.py
@@ -40,4 +40,4 @@ class PyPhonopy(Package):
depends_on('py-pyyaml', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--home=%s' % prefix)
+ setup_py('install', '--home=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py
index 29a86d1e85..f5d684962d 100644
--- a/var/spack/repos/builtin/packages/py-pil/package.py
+++ b/var/spack/repos/builtin/packages/py-pil/package.py
@@ -43,4 +43,4 @@ class PyPil(Package):
depends_on('python@1.5.2:2.8')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py
index 211e3b4199..3125a822b4 100644
--- a/var/spack/repos/builtin/packages/py-pillow/package.py
+++ b/var/spack/repos/builtin/packages/py-pillow/package.py
@@ -129,5 +129,5 @@ class PyPillow(Package):
variants = ['jpeg', 'zlib', 'tiff', 'freetype', 'lcms', 'jpeg2000']
build_args = list(map(variant_to_flag, variants))
- python('setup.py', 'build_ext', *build_args)
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('build_ext', *build_args)
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py
index 47cd3b5dc8..d249de64fa 100644
--- a/var/spack/repos/builtin/packages/py-ply/package.py
+++ b/var/spack/repos/builtin/packages/py-ply/package.py
@@ -35,4 +35,4 @@ class PyPly(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py
index e0a332a6bf..5173864f62 100644
--- a/var/spack/repos/builtin/packages/py-pmw/package.py
+++ b/var/spack/repos/builtin/packages/py-pmw/package.py
@@ -36,4 +36,4 @@ class PyPmw(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py
index fa1c17ae8c..55a323a0d6 100644
--- a/var/spack/repos/builtin/packages/py-prettytable/package.py
+++ b/var/spack/repos/builtin/packages/py-prettytable/package.py
@@ -40,4 +40,4 @@ class PyPrettytable(Package):
depends_on("py-setuptools", type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py
index dd2b5651de..d1186775bb 100644
--- a/var/spack/repos/builtin/packages/py-protobuf/package.py
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -47,4 +47,4 @@ class PyProtobuf(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py
index 97632493af..aed0859021 100644
--- a/var/spack/repos/builtin/packages/py-py2neo/package.py
+++ b/var/spack/repos/builtin/packages/py-py2neo/package.py
@@ -43,4 +43,4 @@ class PyPy2neo(Package):
extends("python")
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pychecker/package.py b/var/spack/repos/builtin/packages/py-pychecker/package.py
index e81c3dbc9b..b1f8aad33f 100644
--- a/var/spack/repos/builtin/packages/py-pychecker/package.py
+++ b/var/spack/repos/builtin/packages/py-pychecker/package.py
@@ -35,4 +35,4 @@ class PyPychecker(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
new file mode 100644
index 0000000000..964822aac9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPycodestyle(Package):
+ """pycodestyle is a tool to check your Python code against some of the
+ style conventions in PEP 8. Note: formerly called pep8."""
+
+ homepage = "https://github.com/PyCQA/pycodestyle"
+ url = "https://github.com/PyCQA/pycodestyle/archive/2.0.0.tar.gz"
+
+ version('2.0.0', '5c3e90001f538bf3b7896d60e92eb6f6')
+ version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9')
+ version('1.6.2', '8df18246d82ddd3d19ffe7518f983955')
+ version('1.6.1', '9d59bdc7c60f46f7cee86c732e28aa1a')
+ version('1.6', '340fa7e39bb44fb08db6eddf7cdc880a')
+ version('1.5.7', '6d0f5fc7d95755999bc9275cad5cbf3e')
+ version('1.5.6', 'c5c30e3d267b48bf3dfe7568e803a813')
+ version('1.5.5', 'cfa12df9b86b3a1dfb13aced1927e12f')
+ version('1.5.4', '3977a760829652543544074c684610ee')
+
+ extends('python')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-pycodestyle requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=nolink)
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py
index ef1b772ffc..e7b91f4495 100644
--- a/var/spack/repos/builtin/packages/py-pycparser/package.py
+++ b/var/spack/repos/builtin/packages/py-pycparser/package.py
@@ -36,4 +36,4 @@ class PyPycparser(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py
index da157d3679..b2203ae04c 100644
--- a/var/spack/repos/builtin/packages/py-pydatalog/package.py
+++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py
@@ -35,4 +35,4 @@ class PyPydatalog(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py
index bf781daf83..96a5645541 100644
--- a/var/spack/repos/builtin/packages/py-pyelftools/package.py
+++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py
@@ -36,4 +36,4 @@ class PyPyelftools(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py
new file mode 100644
index 0000000000..50bc8ab462
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPyflakes(Package):
+ """A simple program which checks Python source files for errors.."""
+
+ homepage = "https://github.com/PyCQA/pyflakes"
+ url = "https://github.com/PyCQA/pyflakes/archive/1.3.0.tar.gz"
+
+ version('1.3.0', 'a76173deb7a84fe860c0b60e2fbcdfe2')
+ version('1.2.3', '2ac2e148a5c46b6bb06c4785be76f7cc')
+ version('1.2.2', 'fe759b9381a6500e67a2ddbbeb5161a4')
+ version('1.2.1', '444a06b256e0a70e41c11698b7190e84')
+ version('1.2.0', '5d1c87bf09696c4c35dc3103f2a1185c')
+ version('1.1.0', '4e18bf78c0455ebcd41e5d6104392c88')
+ version('1.0.0', 'e2ea22a825c5100f12e54b71771cde71')
+ version('0.9.2', 'd02d5f68e944085fd6ec163a34737a96')
+ version('0.9.1', '8108d2248e93ca6a315fa2dd31ee9bb1')
+ version('0.9.0', '43c2bcee88606bde55dbf25a253ef886')
+
+ extends('python')
+
+ # Most Python packages only require py-setuptools as a build dependency.
+ # However, py-pyflakes requires py-setuptools during runtime as well.
+ depends_on('py-setuptools', type=nolink)
+
+ def install(self, spec, prefix):
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py
index c505d44530..10f60f0ab9 100644
--- a/var/spack/repos/builtin/packages/py-pylint/package.py
+++ b/var/spack/repos/builtin/packages/py-pylint/package.py
@@ -38,4 +38,4 @@ class PyPylint(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py
index 6fef71304c..90d1f957b6 100644
--- a/var/spack/repos/builtin/packages/py-pypar/package.py
+++ b/var/spack/repos/builtin/packages/py-pypar/package.py
@@ -39,4 +39,4 @@ class PyPypar(Package):
def install(self, spec, prefix):
with working_dir('source'):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py
index 67d255b02d..c3b4432d33 100644
--- a/var/spack/repos/builtin/packages/py-pyparsing/package.py
+++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py
@@ -35,4 +35,4 @@ class PyPyparsing(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py
index f87e74211f..289d76242b 100644
--- a/var/spack/repos/builtin/packages/py-pytables/package.py
+++ b/var/spack/repos/builtin/packages/py-pytables/package.py
@@ -42,4 +42,4 @@ class PyPytables(Package):
def install(self, spec, prefix):
env["HDF5_DIR"] = spec['hdf5'].prefix
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py
index a30dc00ba4..c696b7490b 100644
--- a/var/spack/repos/builtin/packages/py-python-daemon/package.py
+++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py
@@ -47,4 +47,4 @@ class PyPythonDaemon(Package):
depends_on("py-lockfile", type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py
index 8da391fac1..d760fcaae9 100644
--- a/var/spack/repos/builtin/packages/py-pyyaml/package.py
+++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py
@@ -35,4 +35,4 @@ class PyPyyaml(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py
index 047214c58e..9b0bd437c0 100644
--- a/var/spack/repos/builtin/packages/py-restview/package.py
+++ b/var/spack/repos/builtin/packages/py-restview/package.py
@@ -38,4 +38,4 @@ class PyRestview(Package):
depends_on('py-pygments', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py
index f86d813766..9db55e949b 100644
--- a/var/spack/repos/builtin/packages/py-rpy2/package.py
+++ b/var/spack/repos/builtin/packages/py-rpy2/package.py
@@ -44,4 +44,4 @@ class PyRpy2(Package):
depends_on('R')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-scientificpython/package.py b/var/spack/repos/builtin/packages/py-scientificpython/package.py
index e2273dc164..6e8b9d38c1 100644
--- a/var/spack/repos/builtin/packages/py-scientificpython/package.py
+++ b/var/spack/repos/builtin/packages/py-scientificpython/package.py
@@ -38,4 +38,4 @@ class PyScientificpython(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index fbeb5c95ca..124d2ec4b7 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -45,4 +45,4 @@ class PyScikitImage(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index 3cd7ea74f3..09318a6c56 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -41,4 +41,4 @@ class PyScikitLearn(Package):
depends_on('py-scipy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index abb843f8ee..71bf83c3f0 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -45,15 +45,10 @@ class PyScipy(Package):
# Known not to work with 2.23, 2.25
depends_on('binutils@2.26:', type='build')
depends_on('py-numpy@1.7.1:+blas+lapack', type=nolink)
+ depends_on('blas')
+ depends_on('lapack')
def install(self, spec, prefix):
- if 'atlas' in spec:
- # libatlas.so actually isn't always installed, but this
- # seems to make the build autodetect things correctly.
- env['ATLAS'] = join_path(
- spec['atlas'].prefix.lib, 'libatlas.' + dso_suffix)
- else:
- env['BLAS'] = spec['blas'].blas_libs.joined()
- env['LAPACK'] = spec['lapack'].lapack_libs.joined()
-
+ # NOTE: scipy picks up Blas/Lapack from numpy, see
+ # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0
setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py
index 0713f26ebc..c6c23acd33 100644
--- a/var/spack/repos/builtin/packages/py-shiboken/package.py
+++ b/var/spack/repos/builtin/packages/py-shiboken/package.py
@@ -64,6 +64,4 @@ class PyShiboken(Package):
'shiboken_postinstall.py')
def install(self, spec, prefix):
- python('setup.py', 'install',
- '--prefix=%s' % prefix,
- '--jobs=%s' % make_jobs)
+ setup_py('install', '--prefix=%s' % prefix, '--jobs=%s' % make_jobs)
diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py
index feb3856e8b..d5e32fd5e2 100644
--- a/var/spack/repos/builtin/packages/py-sncosmo/package.py
+++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py
@@ -48,4 +48,4 @@ class PySncosmo(Package):
depends_on('py-nestle', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-storm/package.py b/var/spack/repos/builtin/packages/py-storm/package.py
index 0e972480f3..74fb2add0d 100644
--- a/var/spack/repos/builtin/packages/py-storm/package.py
+++ b/var/spack/repos/builtin/packages/py-storm/package.py
@@ -37,4 +37,4 @@ class PyStorm(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py
new file mode 100644
index 0000000000..7f7cd84a77
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-symengine/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PySymengine(Package):
+ """Python wrappers for SymEngine, a symbolic manipulation library."""
+
+ homepage = "https://github.com/symengine/symengine.py"
+ url = "https://github.com/symengine/symengine.py/archive/v0.2.0.tar.gz"
+
+ version('0.2.0', 'e1d114fa12be4c8c7e9f24007e07718c')
+ version('develop', git='https://github.com/symengine/symengine.py.git')
+
+ # Build dependencies
+ extends('python')
+ depends_on('python@2.7:2.8,3.3:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.19.1:')
+ depends_on('cmake@2.8.7:', type='build')
+ depends_on('symengine@0.2.0:')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s --symengine-dir=%s' %
+ (prefix, spec['symengine'].prefix))
diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py
index 3d8b86ac4d..7d1b016263 100644
--- a/var/spack/repos/builtin/packages/py-sympy/package.py
+++ b/var/spack/repos/builtin/packages/py-sympy/package.py
@@ -37,4 +37,4 @@ class PySympy(Package):
depends_on('py-mpmath', when='@1.0:')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py
index 03e9528ad7..c195d08fd9 100644
--- a/var/spack/repos/builtin/packages/py-tappy/package.py
+++ b/var/spack/repos/builtin/packages/py-tappy/package.py
@@ -37,4 +37,4 @@ class PyTappy(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py
index 5caf3ff143..e20de3ff79 100644
--- a/var/spack/repos/builtin/packages/py-tuiview/package.py
+++ b/var/spack/repos/builtin/packages/py-tuiview/package.py
@@ -41,4 +41,4 @@ class PyTuiview(Package):
depends_on("gdal")
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py
index edf1e7b0d7..80023c2123 100644
--- a/var/spack/repos/builtin/packages/py-twisted/package.py
+++ b/var/spack/repos/builtin/packages/py-twisted/package.py
@@ -38,4 +38,4 @@ class PyTwisted(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py
index 174ab0ca5f..ddd50a37d4 100644
--- a/var/spack/repos/builtin/packages/py-unittest2/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2/package.py
@@ -38,4 +38,4 @@ class PyUnittest2(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
index 95e6dcbff0..4aee545d74 100644
--- a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
@@ -39,4 +39,4 @@ class PyUnittest2py3k(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py
index 943fb250f6..61dec3f1cd 100644
--- a/var/spack/repos/builtin/packages/py-urwid/package.py
+++ b/var/spack/repos/builtin/packages/py-urwid/package.py
@@ -37,4 +37,4 @@ class PyUrwid(Package):
extends("python")
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py
index 0ed567df95..f373067144 100644
--- a/var/spack/repos/builtin/packages/py-virtualenv/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py
@@ -38,4 +38,4 @@ class PyVirtualenv(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
index 9588b879fa..ddc10d3e22 100644
--- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py
+++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
@@ -40,4 +40,4 @@ class PyWcsaxes(Package):
depends_on('py-astropy', type=nolink)
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix={0}'.format(prefix))
+ setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py
index f0ad340835..ce495bf6d0 100644
--- a/var/spack/repos/builtin/packages/py-wheel/package.py
+++ b/var/spack/repos/builtin/packages/py-wheel/package.py
@@ -37,4 +37,4 @@ class PyWheel(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py
index 81c3c928c0..9638b8a36b 100644
--- a/var/spack/repos/builtin/packages/py-xlrd/package.py
+++ b/var/spack/repos/builtin/packages/py-xlrd/package.py
@@ -37,4 +37,4 @@ class PyXlrd(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-yapf/package.py b/var/spack/repos/builtin/packages/py-yapf/package.py
index bc26b82b07..eab4d54abc 100644
--- a/var/spack/repos/builtin/packages/py-yapf/package.py
+++ b/var/spack/repos/builtin/packages/py-yapf/package.py
@@ -37,4 +37,4 @@ class PyYapf(Package):
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index 2c32bde4a1..d20e529384 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -35,4 +35,4 @@ class Scons(Package):
extends('python')
def install(self, spec, prefix):
- python('setup.py', 'install', '--prefix=%s' % prefix)
+ setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index 513f8ec6d4..78c2e14b34 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+from spack import architecture
class Sqlite(Package):
@@ -35,7 +36,15 @@ class Sqlite(Package):
version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed',
url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz')
+ def get_arch(self):
+ arch = architecture.Arch()
+ arch.platform = architecture.platform()
+ return str(arch.platform.target('default_target'))
+
def install(self, spec, prefix):
- configure("--prefix=" + prefix)
+ config = ["--prefix=" + prefix]
+ if self.get_arch() == 'ppc64le':
+ config.append("--build=powerpc64le-redhat-linux-gnu")
+ configure(*config)
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py
new file mode 100644
index 0000000000..f3fc13474c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/symengine/package.py
@@ -0,0 +1,113 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Symengine(Package):
+ """SymEngine is a fast symbolic manipulation library, written in C++."""
+
+ homepage = "https://github.com/symengine/symengine"
+ url = "https://github.com/symengine/symengine/archive/v0.2.0.tar.gz"
+
+ version('0.2.0', '45401561add36a13c1f0b0c5f8d7422d')
+ version('0.1.0', '41ad7daed61fc5a77c285eb6c7303425')
+ version('develop', git='https://github.com/symengine/symengine.git')
+
+ variant('flint', default=True,
+ description='Compile with Flint integer library')
+ variant('mpc', default=True,
+ description='Compile with MPC library')
+ variant('mpfr', default=True,
+ description='Compile with MPFR library')
+ variant('piranha', default=False,
+ description='Compile with Piranha integer library')
+ variant('thread_safe', default=True,
+ description='Enable thread safety option')
+ variant('openmp', default=False,
+ description='Enable OpenMP support')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+
+ # Build dependencies
+ depends_on('cmake', type='build')
+
+ # Other dependencies
+ depends_on('gmp') # mpir is a drop-in replacement for this
+ depends_on('mpc', when='+mpc') # Could also be built against mpir
+ depends_on('mpfr', when='+mpfr') # Could also be built against mpir
+ depends_on('flint', when='+flint') # Could also be built against mpir
+ depends_on('piranha', when='+piranha~flint') # Could also be built against mpir # NOQA
+
+ def install(self, spec, prefix):
+ options = []
+ options.extend(std_cmake_args)
+
+ # CMAKE_BUILD_TYPE should be Debug | Release
+ for word in options[:]:
+ if word.startswith('-DCMAKE_BUILD_TYPE'):
+ options.remove(word)
+
+ # See https://github.com/symengine/symengine/blob/master/README.md
+ # for build options
+ options.extend([
+ '-DCMAKE_BUILD_TYPE=Release',
+ '-DWITH_SYMENGINE_RCP:BOOL=ON',
+ '-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % (
+ 'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'),
+ '-DBUILD_TESTS:BOOL=ON',
+ '-DBUILD_BENCHMARKS:BOOL=ON',
+ '-DWITH_MPC:BOOL=%s' % (
+ 'ON' if '+mpc' in spec else 'OFF'),
+ '-DWITH_MPFR:BOOL=%s' % (
+ 'ON' if '+mpfr' in spec else 'OFF'),
+ '-DINTEGER_CLASS:STRING=gmp',
+ '-DWITH_OPENMP:BOOL=%s' % (
+ 'ON' if '+openmp' in spec else 'OFF'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF'),
+ ])
+
+ if '+flint' in spec:
+ options.extend([
+ '-DWITH_FLINT:BOOL=ON',
+ '-DINTEGER_CLASS:STRING=flint'
+ ])
+ elif '+piranha' in spec:
+ options.extend([
+ '-DWITH_PIRANHA:BOOL=ON',
+ '-DINTEGER_CLASS:STRING=piranha'
+ ])
+ else:
+ options.extend([
+ '-DINTEGER_CLASS:STRING=gmp'
+ ])
+
+ with working_dir('spack-build', create=True):
+ cmake('..', *options)
+
+ make()
+ make('install')
+ if self.run_tests:
+ ctest()
diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py
new file mode 100644
index 0000000000..624942498e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tethex/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tethex(Package):
+ """Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D)
+ Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes
+ can be used in software packages working with hexahedrals only - for
+ example, deal.II.
+ """
+
+ homepage = "https://github.com/martemyev/tethex"
+ url = "https://github.com/martemyev/tethex/archive/v0.0.7.tar.gz"
+
+ version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184')
+ version('develop', git='https://github.com/martemyev/tethex.git')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ cmake('.')
+ make()
+
+ # install by hand
+ mkdirp(prefix.bin)
+ install('tethex', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 203e1502d6..4c7a94ce3f 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -149,10 +149,10 @@ class Trilinos(Package):
'-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
'-DTPL_ENABLE_BLAS=ON',
'-DBLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names),
- '-DBLAS_LIBRARY_DIRS=%s' % spec['blas'].prefix.lib,
+ '-DBLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories),
'-DTPL_ENABLE_LAPACK=ON',
'-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names),
- '-DLAPACK_LIBRARY_DIRS=%s' % spec['lapack'].prefix.lib,
+ '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
'-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON',
'-DTrilinos_ENABLE_CXX11:BOOL=ON',
'-DTPL_ENABLE_Netcdf:BOOL=ON',
diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py
index f7015904b0..fe3ebc9536 100644
--- a/var/spack/repos/builtin/packages/vtk/package.py
+++ b/var/spack/repos/builtin/packages/vtk/package.py
@@ -42,12 +42,16 @@ class Vtk(Package):
patch("gcc.patch")
+ extends('python', when='+python')
+ depends_on('python', when='+python')
depends_on('cmake', type='build')
depends_on("qt")
# VTK7 defaults to OpenGL2 rendering backend
variant('opengl2', default=True,
description='Build with OpenGL instead of OpenGL2 backend')
+ variant('python', default=False,
+ description='Build the python modules')
def install(self, spec, prefix):
def feature_to_bool(feature, on='ON', off='OFF'):
@@ -59,8 +63,8 @@ class Vtk(Package):
cmake_args = [
"..",
"-DBUILD_SHARED_LIBS=ON",
+ "-DVTK_WRAP_PYTHON=" + ("ON" if "+python" in spec else "OFF"),
# Disable wrappers for other languages.
- "-DVTK_WRAP_PYTHON=OFF",
"-DVTK_WRAP_JAVA=OFF",
"-DVTK_WRAP_TCL=OFF"]
cmake_args.extend(std_cmake_args)