diff options
author | Erik Schnetter <schnetter@gmail.com> | 2016-01-05 13:09:57 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2016-01-05 13:09:57 -0500 |
commit | 25934200dec1f3f4daaec8aa24116ea4142a6c84 (patch) | |
tree | 447ef68bd06bd954438b59b6d58baf35d8df003f /var | |
parent | be12720eb797e5a3a6031067248035db7d291962 (diff) | |
parent | 0dcc87bd21f511048417923914cde654c7fb895e (diff) | |
download | spack-25934200dec1f3f4daaec8aa24116ea4142a6c84.tar.gz spack-25934200dec1f3f4daaec8aa24116ea4142a6c84.tar.bz2 spack-25934200dec1f3f4daaec8aa24116ea4142a6c84.tar.xz spack-25934200dec1f3f4daaec8aa24116ea4142a6c84.zip |
Merge branch 'develop' into eschnett/openssl-darwin
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/packages/boost/package.py | 62 | ||||
-rw-r--r-- | var/spack/packages/cube/package.py | 79 | ||||
-rw-r--r-- | var/spack/packages/fftw/package.py | 55 | ||||
-rw-r--r-- | var/spack/packages/hwloc/package.py | 3 | ||||
-rw-r--r-- | var/spack/packages/julia/package.py | 66 | ||||
-rw-r--r-- | var/spack/packages/libedit/package.py | 14 | ||||
-rw-r--r-- | var/spack/packages/libpciaccess/package.py | 7 | ||||
-rw-r--r-- | var/spack/packages/ninja/package.py | 22 | ||||
-rw-r--r-- | var/spack/packages/opari2/package.py | 81 | ||||
-rw-r--r-- | var/spack/packages/otf2/package.py | 85 | ||||
-rw-r--r-- | var/spack/packages/pcre2/package.py | 15 | ||||
-rw-r--r-- | var/spack/packages/py-blessings/package.py | 15 | ||||
-rw-r--r-- | var/spack/packages/py-coverage/package.py | 16 | ||||
-rw-r--r-- | var/spack/packages/py-mysqldb1/package.py | 15 | ||||
-rw-r--r-- | var/spack/packages/py-tappy/package.py | 15 | ||||
-rw-r--r-- | var/spack/packages/py-urwid/package.py | 16 | ||||
-rw-r--r-- | var/spack/packages/rsync/package.py | 1 | ||||
-rw-r--r-- | var/spack/packages/scalasca/package.py | 96 | ||||
-rw-r--r-- | var/spack/packages/scorep/package.py | 20 |
19 files changed, 410 insertions, 273 deletions
diff --git a/var/spack/packages/boost/package.py b/var/spack/packages/boost/package.py index 81dadbbf61..9b7c22c53d 100644 --- a/var/spack/packages/boost/package.py +++ b/var/spack/packages/boost/package.py @@ -14,6 +14,7 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 + version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe') version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87') version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546') version('1.57.0', '1be49befbdd9a5ce9def2983ba3e7b76') @@ -48,11 +49,11 @@ class Boost(Package): variant('mpi', default=False, description='Activate the component Boost.MPI') variant('compression', default=True, description='Activate the compression Boost.iostreams') - depends_on('mpi', when='+mpi') depends_on('python', when='+python') - depends_on('zlib', when='+compression') + depends_on('mpi', when='+mpi') depends_on('bzip2', when='+compression') - + depends_on('zlib', when='+compression') + def url_for_version(self, version): """Handle Boost's weird URLs, which write the version two different ways.""" parts = [str(p) for p in Version(version)] @@ -61,20 +62,23 @@ class Boost(Package): return "http://downloads.sourceforge.net/project/boost/boost/%s/boost_%s.tar.bz2" % ( dots, underscores) - def determine_toolset(self): - toolsets = {'gcc': 'gcc', + def determine_toolset(self, spec): + if spec.satisfies("=darwin-x86_64"): + return 'darwin' + + toolsets = {'g++': 'gcc', 'icpc': 'intel', 'clang++': 'clang'} for cc, toolset in toolsets.iteritems(): - if(cc in self.compiler.cxx_names): + if cc in self.compiler.cxx_names: return toolset # fallback to gcc if no toolset found return 'gcc' def determine_bootstrap_options(self, spec, options): - options.append('--with-toolset=%s' % self.determine_toolset()) + options.append('--with-toolset=%s' % self.determine_toolset(spec)) without_libs = [] if '~mpi' in spec: @@ -82,17 +86,20 @@ class Boost(Package): if '~python' in spec: without_libs.append('python') else: - options.append('--with-python=%s' % (spec['python'].prefix.bin + '/python')) + options.append('--with-python=%s' % + join_path(spec['python'].prefix.bin, 'python')) if without_libs: options.append('--without-libraries=%s' % ','.join(without_libs)) with open('user-config.jam', 'w') as f: if '+mpi' in spec: - f.write('using mpi : %s ;\n' % (spec['mpi'].prefix.bin + '/mpicxx')) + f.write('using mpi : %s ;\n' % + joinpath(spec['mpi'].prefix.bin, 'mpicxx')) if '+python' in spec: - f.write('using python : %s : %s ;\n' % (spec['python'].version, - (spec['python'].prefix.bin + '/python'))) + f.write('using python : %s : %s ;\n' % + (spec['python'].version, + joinpath(spec['python'].prefix.bin, 'python'))) def determine_b2_options(self, spec, options): if '+debug' in spec: @@ -101,22 +108,26 @@ class Boost(Package): options.append('variant=release') if '~compression' in spec: - options.extend(['-s NO_BZIP2=1', - '-s NO_ZLIB=1', - ]) + options.extend([ + '-s', 'NO_BZIP2=1', + '-s', 'NO_ZLIB=1']) if '+compression' in spec: - options.extend(['-s BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include, - '-s BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib, - '-s ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include, - '-s ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib]) - - options.extend(['toolset=%s' % self.determine_toolset(), - 'link=static,shared', - '--layout=tagged']) + options.extend([ + '-s', 'BZIP2_INCLUDE=%s' % spec['bzip2'].prefix.include, + '-s', 'BZIP2_LIBPATH=%s' % spec['bzip2'].prefix.lib, + '-s', 'ZLIB_INCLUDE=%s' % spec['zlib'].prefix.include, + '-s', 'ZLIB_LIBPATH=%s' % spec['zlib'].prefix.lib, + ]) + + options.extend([ + 'toolset=%s' % self.determine_toolset(spec), + 'link=static,shared', + 'threading=single,multi', + '--layout=tagged']) def install(self, spec, prefix): - # to make him find the user-config.jam + # to make Boost find the user-config.jam env['BOOST_BUILD_PATH'] = './' bootstrap = Executable('./bootstrap.sh') @@ -130,9 +141,8 @@ class Boost(Package): b2name = './b2' if spec.satisfies('@1.47:') else './bjam' b2 = Executable(b2name) - b2_options = ['-j %s' % make_jobs] + b2_options = ['-j', '%s' % make_jobs] self.determine_b2_options(spec, b2_options) - b2('install', 'threading=single', *b2_options) - b2('install', 'threading=multi', *b2_options) + b2('install', *b2_options) diff --git a/var/spack/packages/cube/package.py b/var/spack/packages/cube/package.py index cc1c684594..17d388c33d 100644 --- a/var/spack/packages/cube/package.py +++ b/var/spack/packages/cube/package.py @@ -1,58 +1,55 @@ -# FIXME: Add copyright statement +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. # +# This file is part of Spack. +# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License (as published by +# the Free Software Foundation) version 2.1 dated February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + from spack import * -from contextlib import closing + class Cube(Package): - """Cube the profile viewer for Score-P and Scalasca profiles. It - displays a multi-dimensional performance space consisting - of the dimensions (i) performance metric, (ii) call path, - and (iii) system resource.""" + """ + Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space + consisting of the dimensions: + - performance metric + - call path + - system resource + """ homepage = "http://www.scalasca.org/software/cube-4.x/download.html" - url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz" + url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz" version('4.3.3', '07e109248ed8ffc7bdcce614264a2909', url='http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3.3.tar.gz') - version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20') - - version('4.3TP1', 'a2090fbc7b2ba394bd5c09ba971e237f', - url = 'http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-4.3-TP1.tar.gz') - - # Using CC as C++ compiler provides quirky workaround for a Score-P build system attempt - # to guess a matching C compiler when configuring scorep-score - backend_user_provided = """\ -CC=cc -CXX=CC -F77=f77 -FC=f90 -#CFLAGS=-fPIC -#CXXFLAGS=-fPIC -""" - frontend_user_provided = """\ -CC_FOR_BUILD=cc -CXX_FOR_BUILD=CC -F77_FOR_BUILD=f70 -FC_FOR_BUILD=f90 -""" + version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20', + url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz") - def install(self, spec, prefix): - # Use a custom compiler configuration, otherwise the score-p - # build system messes with spack's compiler settings. - # Create these three files in the build directory - - with closing(open("vendor/common/build-config/platforms/platform-backend-user-provided", "w")) as backend_file: - backend_file.write(self.backend_user_provided) - with closing(open("vendor/common/build-config/platforms/platform-frontend-user-provided", "w")) as frontend_file: - frontend_file.write(self.frontend_user_provided) + # TODO : add variant that builds GUI on top of Qt + def install(self, spec, prefix): configure_args = ["--prefix=%s" % prefix, - "--with-custom-compilers", - "--without-paraver", + "--without-paraver", "--without-gui"] - configure(*configure_args) - make(parallel=False) make("install", parallel=False) diff --git a/var/spack/packages/fftw/package.py b/var/spack/packages/fftw/package.py index 5f71762c4f..4d2b964242 100644 --- a/var/spack/packages/fftw/package.py +++ b/var/spack/packages/fftw/package.py @@ -39,54 +39,21 @@ class Fftw(Package): version('3.3.4', '2edab8c06b24feeb3b82bbb3ebf3e7b3') - ########## - # Floating point precision - FLOAT = 'float' - LONG_DOUBLE = 'long_double' - QUAD_PRECISION = 'quad' - PRECISION_OPTIONS = { - FLOAT: '--enable-float', - LONG_DOUBLE: '--enable--long-double', - QUAD_PRECISION: '--enable-quad-precision' - } - variant(FLOAT, default=False, description='Produces a single precision version of the library') - variant(LONG_DOUBLE, default=False, description='Produces a long double precision version of the library') - variant(QUAD_PRECISION, default=False, description='Produces a quad precision version of the library (works only with GCC and libquadmath)') - ########## + variant('float', default=True, description='Produces a single precision version of the library') + variant('long_double', default=True, description='Produces a long double precision version of the library') + variant('quad', default=False, description='Produces a quad precision version of the library (works only with GCC and libquadmath)') variant('mpi', default=False, description='Activate MPI support') depends_on('mpi', when='+mpi') - @staticmethod - def enabled(x): - """ - Given a variant name returns the string that means the variant is enabled - - :param x: variant name - """ - # FIXME : duplicated from MVAPICH2 - return '+' + x - - def check_fortran_availability(self, options): - if not self.compiler.f77 or not self.compiler.fc: - options.append("--disable-fortran") - - def set_floating_point_precision(self, spec, options): - l = [option for variant, option in Fftw.PRECISION_OPTIONS.iteritems() if self.enabled(variant) in spec] - if len(l) > 1: - raise RuntimeError('At most one floating point precision variant may activated per build.') - options.extend(l) - def install(self, spec, prefix): - options = ['--prefix=%s' % prefix, '--enable-shared', '--enable-threads', '--enable-openmp'] - self.check_fortran_availability(options) - self.set_floating_point_precision(spec, options) - + if not self.compiler.f77 or not self.compiler.fc: + options.append("--disable-fortran") if '+mpi' in spec: options.append('--enable-mpi') @@ -94,3 +61,15 @@ class Fftw(Package): make() make("install") + if '+float' in spec: + configure('--enable-float', *options) + make() + make("install") + if '+long_double' in spec: + configure('--enable-long-double', *options) + make() + make("install") + if '+quad' in spec: + configure('--enable-quad-precision', *options) + make() + make("install") diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py index 452a7d7ce3..7ebede76a3 100644 --- a/var/spack/packages/hwloc/package.py +++ b/var/spack/packages/hwloc/package.py @@ -15,6 +15,8 @@ class Hwloc(Package): homepage = "http://www.open-mpi.org/projects/hwloc/" url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz" + version('1.11.2', '486169cbe111cdea57be12638828ebbf', + url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.2.tar.bz2') version('1.11.1', '002742efd3a8431f98d6315365a2b543', url='http://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-1.11.1.tar.bz2') version('1.9', '1f9f9155682fe8946a97c08896109508') @@ -26,4 +28,3 @@ class Hwloc(Package): make() make("install") - diff --git a/var/spack/packages/julia/package.py b/var/spack/packages/julia/package.py new file mode 100644 index 0000000000..9fd946c905 --- /dev/null +++ b/var/spack/packages/julia/package.py @@ -0,0 +1,66 @@ +from spack import * +import os + +class Julia(Package): + """The Julia Language: A fresh approach to technical computing""" + homepage = "http://julialang.org" + url = "http://github.com/JuliaLang/julia/releases/download/v0.4.2/julia-0.4.2.tar.gz" + + version('0.4.2', 'ccfeb4f4090c8b31083f5e1ccb03eb06') + + # Build-time dependencies + # depends_on("cmake") + # depends_on("awk") + # depends_on("m4") + # depends_on("pkg-config") + + # I think that Julia requires the dependencies above, but it builds find (on + # my system) without these. We should enable them as necessary. + + # Run-time dependencies + # depends_on("arpack") + # depends_on("fftw +float") + # depends_on("gmp") + # depends_on("mpfr") + # depends_on("pcre2") + + # ARPACK: Requires BLAS and LAPACK; needs to use the same version as Julia. + + # BLAS and LAPACK: Julia prefers 64-bit versions on 64-bit systems. OpenBLAS + # has an option for this; make it available as variant. + + # FFTW: Something doesn't work when using a pre-installed FFTW library; need + # to investigate. + + # GMP, MPFR: Something doesn't work when using a pre-installed FFTW library; + # need to investigate. + + # LLVM: Julia works only with specific versions, and might require patches. + # Thus we let Julia install its own LLVM. + + # Other possible dependencies: + # USE_SYSTEM_OPENLIBM=0 + # USE_SYSTEM_OPENSPECFUN=0 + # USE_SYSTEM_DSFMT=0 + # USE_SYSTEM_SUITESPARSE=0 + # USE_SYSTEM_UTF8PROC=0 + # USE_SYSTEM_LIBGIT2=0 + + def install(self, spec, prefix): + # Explicitly setting CC, CXX, or FC breaks building libuv, one of + # Julia's dependencies. This might be a Darwin-specific problem. Given + # how Spack sets up compilers, Julia should still use Spack's compilers, + # even if we don't specify them explicitly. + options = [#"CC=cc", + #"CXX=c++", + #"FC=fc", + #"USE_SYSTEM_ARPACK=1", + #"USE_SYSTEM_FFTW=1", + #"USE_SYSTEM_GMP=1", + #"USE_SYSTEM_MPFR=1", + #TODO "USE_SYSTEM_PCRE=1", + "prefix=%s" % prefix] + with open('Make.user', 'w') as f: + f.write('\n'.join(options) + '\n') + make() + make("install") diff --git a/var/spack/packages/libedit/package.py b/var/spack/packages/libedit/package.py new file mode 100644 index 0000000000..bcd5212b9e --- /dev/null +++ b/var/spack/packages/libedit/package.py @@ -0,0 +1,14 @@ +from spack import * + +class Libedit(Package): + """An autotools compatible port of the NetBSD editline library""" + homepage = "http://thrysoee.dk/editline/" + url = "http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz" + + version('3.1', '43cdb5df3061d78b5e9d59109871b4f6', url="http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz") + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + + make() + make("install") diff --git a/var/spack/packages/libpciaccess/package.py b/var/spack/packages/libpciaccess/package.py index 6022fc34a3..403bafbbd2 100644 --- a/var/spack/packages/libpciaccess/package.py +++ b/var/spack/packages/libpciaccess/package.py @@ -1,4 +1,5 @@ from spack import * +import os.path class Libpciaccess(Package): """Generic PCI access library.""" @@ -13,6 +14,12 @@ class Libpciaccess(Package): depends_on('libtool') def install(self, spec, prefix): + # libpciaccess does not support OS X + if spec.satisfies('=darwin-x86_64'): + # create a dummy directory + mkdir(prefix.lib) + return + from subprocess import call call(["./autogen.sh"]) configure("--prefix=%s" % prefix) diff --git a/var/spack/packages/ninja/package.py b/var/spack/packages/ninja/package.py new file mode 100644 index 0000000000..9e6bf4e358 --- /dev/null +++ b/var/spack/packages/ninja/package.py @@ -0,0 +1,22 @@ +from spack import * +import os + +class Ninja(Package): + """ A small, fast Make alternative """ + homepage = "https://martine.github.io/ninja/" + url = "https://github.com/martine/ninja/archive/v1.6.0.tar.gz" + + version('1.6.0', '254133059f2da79d8727f654d7198f43') + + extends('python') + + def install(self, spec, prefix): + sh = which('sh') + python('configure.py', '--bootstrap') + + cp = which('cp') + + bindir = os.path.join(prefix, 'bin') + mkdir(bindir) + cp('-a', '-t', bindir, 'ninja') + cp('-ra', 'misc', prefix) diff --git a/var/spack/packages/opari2/package.py b/var/spack/packages/opari2/package.py index 3f8c65377d..c68978f5c0 100644 --- a/var/spack/packages/opari2/package.py +++ b/var/spack/packages/opari2/package.py @@ -1,18 +1,38 @@ -# FIXME: Add copyright statement here +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License (as published by +# the Free Software Foundation) version 2.1 dated February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## from spack import * -from contextlib import closing class Opari2(Package): - """OPARI2 is a source-to-source instrumentation tool for OpenMP and - hybrid codes. It surrounds OpenMP directives and runtime library - calls with calls to the POMP2 measurement interface. - OPARI2 will provide you with a new initialization method that allows - for multi-directory and parallel builds as well as the usage of - pre-instrumented libraries. Furthermore, an efficient way of - tracking parent-child relationships was added. Additionally, we - extended OPARI2 to support instrumentation of OpenMP 3.0 - tied tasks. """ + """ + OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and + runtime library calls with calls to the POMP2 measurement interface. OPARI2 will provide you with a new + initialization method that allows for multi-directory and parallel builds as well as the usage of pre-instrumented + libraries. Furthermore, an efficient way of tracking parent-child relationships was added. Additionally, we extended + OPARI2 to support instrumentation of OpenMP 3.0 tied tasks. + """ homepage = "http://www.vi-hps.org/projects/score-p" url = "http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.2.tar.gz" @@ -21,47 +41,8 @@ class Opari2(Package): url='http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.4.tar.gz') version('1.1.2', '9a262c7ca05ff0ab5f7775ae96f3539e') - backend_user_provided = """\ -CC=cc -CXX=c++ -F77=f77 -FC=f90 -CFLAGS=-fPIC -CXXFLAGS=-fPIC -""" - frontend_user_provided = """\ -CC_FOR_BUILD=cc -CXX_FOR_BUILD=c++ -F77_FOR_BUILD=f70 -FC_FOR_BUILD=f90 -CFLAGS_FOR_BUILD=-fPIC -CXXFLAGS_FOR_BUILD=-fPIC -""" - mpi_user_provided = """\ -MPICC=mpicc -MPICXX=mpicxx -MPIF77=mpif77 -MPIFC=mpif90 -MPI_CFLAGS=-fPIC -MPI_CXXFLAGS=-fPIC -""" - def install(self, spec, prefix): - # Use a custom compiler configuration, otherwise the score-p - # build system messes with spack's compiler settings. - # Create these three files in the build directory - with closing(open("platform-backend-user-provided", "w")) as backend_file: - backend_file.write(self.backend_user_provided) - with closing(open("platform-frontend-user-provided", "w")) as frontend_file: - frontend_file.write(self.frontend_user_provided) - with closing(open("platform-mpi-user-provided", "w")) as mpi_file: - mpi_file.write(self.mpi_user_provided) - - # FIXME: Modify the configure line to suit your build system here. configure("--prefix=%s" % prefix, - "--with-custom-compilers", "--enable-shared") - - # FIXME: Add logic to build and install here make() make("install") diff --git a/var/spack/packages/otf2/package.py b/var/spack/packages/otf2/package.py index b3d3a5b663..c3d61bc228 100644 --- a/var/spack/packages/otf2/package.py +++ b/var/spack/packages/otf2/package.py @@ -1,12 +1,35 @@ -# FIXME: Add copyright +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License (as published by +# the Free Software Foundation) version 2.1 dated February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## from spack import * -from contextlib import closing -import os + class Otf2(Package): - """The Open Trace Format 2 is a highly scalable, memory efficient event - trace data format plus support library.""" + """ + The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library. + """ homepage = "http://www.vi-hps.org/score-p" url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz" @@ -22,57 +45,11 @@ class Otf2(Package): version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8', url="http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz") - backend_user_provided = """\ -CC=cc -CXX=c++ -F77=f77 -FC=f90 -CFLAGS=-fPIC -CXXFLAGS=-fPIC -""" - frontend_user_provided = """\ -CC_FOR_BUILD=cc -CXX_FOR_BUILD=c++ -F77_FOR_BUILD=f70 -FC_FOR_BUILD=f90 -CFLAGS_FOR_BUILD=-fPIC -CXXFLAGS_FOR_BUILD=-fPIC -""" - mpi_user_provided = """\ -MPICC=cc -MPICXX=c++ -MPIF77=f77 -MPIFC=f90 -MPI_CFLAGS=-fPIC -MPI_CXXFLAGS=-fPIC -""" - - @when('@:1.2.1') - def version_specific_args(self): - return ["--with-platform=disabled", "CC=cc", "CXX=c++", "F77=f77", "F90=f90", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"] - - @when('@1.3:') - def version_specific_args(self): - # TODO: figure out what scorep's build does as of otf2 1.3 - return ["--with-custom-compilers"] - def install(self, spec, prefix): - # Use a custom compiler configuration, otherwise the score-p - # build system messes with spack's compiler settings. - # Create these three files in the build directory - with closing(open("platform-backend-user-provided", "w")) as backend_file: - backend_file.write(self.backend_user_provided) - with closing(open("platform-frontend-user-provided", "w")) as frontend_file: - frontend_file.write(self.frontend_user_provided) - with closing(open("platform-mpi-user-provided", "w")) as mpi_file: - mpi_file.write(self.mpi_user_provided) - configure_args=["--prefix=%s" % prefix, - "--enable-shared"] - - configure_args.extend(self.version_specific_args()) - + "--enable-shared", + "CFLAGS=-fPIC", + "CXXFLAGS=-fPIC"] configure(*configure_args) - make() make("install") diff --git a/var/spack/packages/pcre2/package.py b/var/spack/packages/pcre2/package.py new file mode 100644 index 0000000000..6a0244a15e --- /dev/null +++ b/var/spack/packages/pcre2/package.py @@ -0,0 +1,15 @@ +from spack import * + +class Pcre2(Package): + """The PCRE2 package contains Perl Compatible Regular Expression + libraries. These are useful for implementing regular expression + pattern matching using the same syntax and semantics as Perl 5.""" + homepage = "http://www.pcre.org""" + url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.bz2" + + version('10.20', 'dcd027c57ecfdc8a6c3af9d0acf5e3f7') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install") diff --git a/var/spack/packages/py-blessings/package.py b/var/spack/packages/py-blessings/package.py new file mode 100644 index 0000000000..f2475a0efd --- /dev/null +++ b/var/spack/packages/py-blessings/package.py @@ -0,0 +1,15 @@ +from spack import * + +class PyBlessings(Package): + """A nicer, kinder way to write to the terminal """ + homepage = "https://github.com/erikrose/blessings" + url = "https://pypi.python.org/packages/source/b/blessings/blessings-1.6.tar.gz" + + version('1.6', '4f552a8ebcd4982693c92571beb99394') + + depends_on('py-setuptools') + + extends("python") + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s' % prefix) diff --git a/var/spack/packages/py-coverage/package.py b/var/spack/packages/py-coverage/package.py new file mode 100644 index 0000000000..39b2ac3b01 --- /dev/null +++ b/var/spack/packages/py-coverage/package.py @@ -0,0 +1,16 @@ +from spack import * + +class PyCoverage(Package): + """ Testing coverage checker for python """ + # FIXME: add a proper url for your package's homepage here. + homepage = "http://nedbatchelder.com/code/coverage/" + url = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz" + + version('4.0a6', '1bb4058062646148965bef0796b61efc') + + depends_on('py-setuptools') + + extends('python') + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s' % prefix) diff --git a/var/spack/packages/py-mysqldb1/package.py b/var/spack/packages/py-mysqldb1/package.py new file mode 100644 index 0000000000..fda02b4982 --- /dev/null +++ b/var/spack/packages/py-mysqldb1/package.py @@ -0,0 +1,15 @@ +from spack import * + +class PyMysqldb1(Package): + """Legacy mysql bindings for python""" + homepage = "https://github.com/farcepest/MySQLdb1" + url = "https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz" + + version('1.2.5', '332c8f4955b6bc0c79ea15170bf7321b') + + extends('python') + depends_on('py-setuptools') + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s' % prefix) + diff --git a/var/spack/packages/py-tappy/package.py b/var/spack/packages/py-tappy/package.py new file mode 100644 index 0000000000..df61a909da --- /dev/null +++ b/var/spack/packages/py-tappy/package.py @@ -0,0 +1,15 @@ +from spack import * + +class PyTappy(Package): + """Python TAP interface module for unit tests""" + homepage = "https://github.com/mblayman/tappy" + # base https://pypi.python.org/pypi/cffi + url = "https://pypi.python.org/packages/source/t/tap.py/tap.py-1.6.tar.gz" + + version('1.6', 'c8bdb93ad66e05f939905172a301bedf') + + extends('python') + depends_on('py-setuptools') + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s' % prefix) diff --git a/var/spack/packages/py-urwid/package.py b/var/spack/packages/py-urwid/package.py new file mode 100644 index 0000000000..aaa11c681d --- /dev/null +++ b/var/spack/packages/py-urwid/package.py @@ -0,0 +1,16 @@ +from spack import * + +class PyUrwid(Package): + """A full-featured console UI library""" + homepage = "http://urwid.org/" + url = "https://pypi.python.org/packages/source/u/urwid/urwid-1.3.0.tar.gz" + + version('1.3.0', 'a989acd54f4ff1a554add464803a9175') + + depends_on('py-setuptools') + + extends("python") + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s' % prefix) + diff --git a/var/spack/packages/rsync/package.py b/var/spack/packages/rsync/package.py index 8ae21b1cb9..76aec3096d 100644 --- a/var/spack/packages/rsync/package.py +++ b/var/spack/packages/rsync/package.py @@ -5,6 +5,7 @@ class Rsync(Package): homepage = "https://rsync.samba.org" url = "https://download.samba.org/pub/rsync/rsync-3.1.1.tar.gz" + version('3.1.2', '0f758d7e000c0f7f7d3792610fad70cb') version('3.1.1', '43bd6676f0b404326eee2d63be3cdcfe') def install(self, spec, prefix): diff --git a/var/spack/packages/scalasca/package.py b/var/spack/packages/scalasca/package.py index cf7a40c1f5..6de14564b2 100644 --- a/var/spack/packages/scalasca/package.py +++ b/var/spack/packages/scalasca/package.py @@ -1,65 +1,63 @@ -# FIXME: Add copyright +############################################################################## +# Copyright (c) 2013, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License (as published by +# the Free Software Foundation) version 2.1 dated February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## from spack import * + class Scalasca(Package): - """Scalasca is a software tool that supports the performance optimization - of parallel programs by measuring and analyzing their runtime behavior. - The analysis identifies potential performance bottlenecks - in - particular those concerning communication and synchronization - and - offers guidance in exploring their causes.""" + """ + Scalasca is a software tool that supports the performance optimization of parallel programs by measuring and + analyzing their runtime behavior. The analysis identifies potential performance bottlenecks - in particular those + concerning communication and synchronization - and offers guidance in exploring their causes. + """ - # FIXME: add a proper url for your package's homepage here. homepage = "http://www.scalasca.org" - url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz" + url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz" - version('2.1', 'bab9c2b021e51e2ba187feec442b96e6', - url = 'http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz' ) + version('2.2.2', '2bafce988b0522d18072f7771e491ab9', + url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.2/dist/scalasca-2.2.2.tar.gz') - depends_on("mpi") - depends_on("otf2@1.4") - depends_on("cube@4.2.3") + version('2.1', 'bab9c2b021e51e2ba187feec442b96e6', + url='http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz') - backend_user_provided = """\ -CC=cc -CXX=c++ -F77=f77 -FC=f90 -CFLAGS=-fPIC -CXXFLAGS=-fPIC -""" - frontend_user_provided = """\ -CC_FOR_BUILD=cc -CXX_FOR_BUILD=c++ -F77_FOR_BUILD=f70 -FC_FOR_BUILD=f90 -CFLAGS_FOR_BUILD=-fPIC -CXXFLAGS_FOR_BUILD=-fPIC -""" - mpi_user_provided = """\ -MPICC=mpicc -MPICXX=mpicxx -MPIF77=mpif77 -MPIFC=mpif90 -MPI_CFLAGS=-fPIC -MPI_CXXFLAGS=-fPIC -""" + depends_on("mpi") + ########## + # Hard-code dependencies for Scalasca according to what stated in the release page + # The OTF2 library path should be detected automatically from SCOREP + # SCALASCA 2.2.2 + depends_on("scorep@1.4:", when='@2.2.2') + depends_on("cube@4.3:", when='@2.2.2') + # SCALASCA 2.1 + depends_on("scorep@1.3", when='@2.1') + depends_on("cube@4.2:", when='@2.1') + ########## def install(self, spec, prefix): configure_args = ["--prefix=%s" % prefix, - "--with-custom-compilers", - "--with-otf2=%s" % spec['otf2'].prefix.bin, "--with-cube=%s" % spec['cube'].prefix.bin, "--enable-shared"] - configure(*configure_args) - - make() - make("install") - - # FIXME: Modify the configure line to suit your build system here. - configure("--prefix=%s" % prefix) - - # FIXME: Add logic to build and install here make() - make("install") + make("install")
\ No newline at end of file diff --git a/var/spack/packages/scorep/package.py b/var/spack/packages/scorep/package.py index 0820f2d8ac..5127e814b6 100644 --- a/var/spack/packages/scorep/package.py +++ b/var/spack/packages/scorep/package.py @@ -28,9 +28,9 @@ from spack import * class Scorep(Package): """ - The Score-P measurement infrastructure is a highly scalable and - easy-to-use tool suite for profiling, event tracing, and online - analysis of HPC applications.""" + The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling, event + tracing, and online analysis of HPC applications. + """ homepage = "http://www.vi-hps.org/projects/score-p" url = "http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.3.tar.gz" @@ -55,15 +55,6 @@ class Scorep(Package): depends_on("mpi") depends_on("papi") - def get_compiler_config_line(self): - backend_user_provided = ['CC=%s' % self.compiler.cc_names[0], - 'CXX=%s' % self.compiler.cxx_names[0], - 'F77=%s' % self.compiler.f77_names[0] if len(self.compiler.f77_names) else "", - 'FC=%s' % self.compiler.fc_names[0] if len(self.compiler.fc_names) else "", - 'CFLAGS=-fPIC %s' % self.rpath_args, - 'CXXFLAGS=-fPIC %s'% self.rpath_args] - return backend_user_provided - def install(self, spec, prefix): configure = Executable( join_path(self.stage.source_path, 'configure') ) with working_dir('spack-build', create=True): @@ -73,8 +64,9 @@ class Scorep(Package): "--with-cube=%s" % spec['cube'].prefix.bin, "--with-papi-header=%s" % spec['papi'].prefix.include, "--with-papi-lib=%s" % spec['papi'].prefix.lib, - "--enable-shared"] - configure_args.extend(self.get_compiler_config_line()) + "--enable-shared", + "CFLAGS=-fPIC", + "CXXFLAGS=-fPIC"] configure(*configure_args) make() make("install") |