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
This commit is contained in:
alalazo
2016-10-11 16:28:08 +02:00
186 changed files with 5440 additions and 1639 deletions

View File

@@ -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

View File

@@ -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 @@ def determine_b2_options(self, spec, options):
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 @@ def determine_b2_options(self, spec, options):
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 @@ def install(self, spec, prefix):
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):

View File

@@ -96,8 +96,7 @@ def install(self, spec, prefix):
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')

View File

@@ -85,7 +85,7 @@ def install(self, spec, prefix):
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')

View File

@@ -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 @@ def install(self, spec, prefix):
# 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"))

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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')

View File

@@ -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'))

View File

@@ -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'))

View File

@@ -143,7 +143,7 @@ def cmake_is_on(self, option):
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(

View File

@@ -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")

View File

@@ -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

View File

@@ -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')

View File

@@ -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 @@ def install(self, spec, prefix):
'--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')

View File

@@ -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 @@ def configure_args(self):
# 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 @@ def check_install(self):
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

View File

@@ -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')

View File

@@ -61,9 +61,9 @@ def install(self, spec, prefix):
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:

View File

@@ -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")

View File

@@ -26,20 +26,25 @@
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")

View File

@@ -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')

View File

@@ -27,9 +27,10 @@
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')

View File

@@ -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 @@ def check_variants(self, spec):
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 @@ def install(self, spec, prefix):
'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 @@ def install(self, spec, prefix):
'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 @@ def install(self, spec, prefix):
'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')

View File

@@ -66,13 +66,6 @@ def install(self, spec, prefix):
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)

View File

@@ -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

View File

@@ -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)

View File

@@ -27,9 +27,10 @@
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 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
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 @@ def install(self, spec, prefix):
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.
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')
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)

View File

@@ -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')

View File

@@ -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,

View File

@@ -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()

View File

@@ -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 @@ def install(self, spec, prefix):
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 @@ def install(self, spec, prefix):
configure(*config_args)
make()
if self.run_tests:
make("check")
make("install")

View File

@@ -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))

View File

@@ -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)

View File

@@ -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')

View File

@@ -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")

View File

@@ -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')

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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"""
homepage = "https://github.com/hhatto/autopep8"
url = "https://github.com/hhatto/autopep8/archive/ver1.2.2.tar.gz"
"""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/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))

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -49,4 +49,4 @@ def install(self, spec, prefix):
# 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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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))

View File

@@ -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)

View File

@@ -28,13 +28,40 @@
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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -66,21 +66,21 @@ def setup_dependent_package(self, module, dep_spec):
'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))

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -129,5 +129,5 @@ def variant_to_flag(variant):
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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

Some files were not shown because too many files have changed in this diff Show More