diff options
-rw-r--r-- | lib/spack/docs/conf.py | 3 | ||||
-rw-r--r-- | lib/spack/spack/util/web.py | 2 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/ape/package.py | 55 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/hdf5-blosc/package.py | 5 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/octopus/package.py | 86 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/py-cffi/package.py | 10 |
6 files changed, 157 insertions, 4 deletions
diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py index 3d2a8251aa..f3cb268177 100644 --- a/lib/spack/docs/conf.py +++ b/lib/spack/docs/conf.py @@ -51,7 +51,8 @@ os.environ['SPACK_ROOT'] = spack_root os.environ['PATH'] += os.pathsep + '$SPACK_ROOT/bin' spack_version = subprocess.Popen( - ['spack', '-V'], stderr=subprocess.PIPE).communicate()[1].strip().split('.') + [spack_root + '/bin/spack', '-V'], + stderr=subprocess.PIPE).communicate()[1].strip().split('.') # Set an environment variable so that colify will print output like it would to # a terminal. diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 25f1e605d6..29ed6e0d32 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -109,7 +109,7 @@ def _spider(args): while link_parser.links: raw_link = link_parser.links.pop() - abs_link = urlparse.urljoin(response_url, raw_link) + abs_link = urlparse.urljoin(response_url, raw_link.strip()) links.add(abs_link) diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py new file mode 100644 index 0000000000..b1647798b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/ape/package.py @@ -0,0 +1,55 @@ +############################################################################## +# 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 Ape(Package): + """A tool for generating atomic pseudopotentials within a Density-Functional + Theory framework""" + + homepage = "http://www.tddft.org/programs/APE/" + url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz" + + version('2.2.1', 'ab81da85bd749c0c136af088c7f9ad58') + + depends_on('gsl') + depends_on('libxc') + + def install(self, spec, prefix): + args = [] + args.extend([ + '--prefix=%s' % prefix, + '--with-gsl-prefix=%s' % spec['gsl'].prefix, + '--with-libxc-prefix=%s' % spec['libxc'].prefix + ]) + + if spec.satisfies('%clang') or spec.satisfies('%gcc'): + args.extend([ + 'FCFLAGS=-O2 -ffree-line-length-none' + ]) + + configure(*args) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py index b9c19dff62..088c1e9d9b 100644 --- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py +++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py @@ -49,9 +49,10 @@ def _install_shlib(name, src, dst): class Hdf5Blosc(Package): """Blosc filter for HDF5""" homepage = "https://github.com/Blosc/hdf5-blosc" - url = "https://github.com/Blosc/hdf5-blosc/archive/master.zip" + url = "https://github.com/Blosc/hdf5-blosc" - version('master', '02c04acbf4bec66ec8a35bf157d1c9de') + version('master', git='https://github.com/Blosc/hdf5-blosc', + branch='master') depends_on("c-blosc") depends_on("hdf5") diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py new file mode 100644 index 0000000000..6fa2e0368f --- /dev/null +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -0,0 +1,86 @@ +############################################################################## +# 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 Octopus(Package): + """A real-space finite-difference (time-dependent) density-functional + theory code.""" + + homepage = "http://www.tddft.org/programs/octopus/" + url = "http://www.tddft.org/programs/octopus/down.php?file=5.0.1/octopus-5.0.1.tar.gz" + + version('5.0.1', '2b6392ab67b843f9d4ca7413fc07e822') + + depends_on('blas') + depends_on('gsl') + depends_on('lapack') + depends_on('libxc') + depends_on('mpi') + depends_on('fftw+mpi') + + # optional dependencies: + # TODO: scalapack, metis, parmetis, netcdf, etsf_io, SPARSKIT, ARPACK, + # FEAST, Libfm, PFFT, ISF, PNFFT + + def install(self, spec, prefix): + args = [] + args.extend([ + '--prefix=%s' % prefix, + '--with-blas=%s' % to_link_flags( + spec['blas'].blas_shared_lib), + '--with-lapack=%s' % to_link_flags( + spec['lapack'].lapack_shared_lib), + '--with-gsl-prefix=%s' % spec['gsl'].prefix, + '--with-libxc-prefix=%s' % spec['libxc'].prefix, + 'CC=%s' % spec['mpi'].mpicc, + 'FC=%s' % spec['mpi'].mpifc, + '--enable-mpi', + '--with-fft-lib=-L%s -lfftw3' % spec['fftw'].prefix.lib + # --with-blacs=${prefix}/lib/libscalapack.dylib + # --with-netcdf-prefix=netcdf-fortran + # --with-etsf-io-prefix= + # --with-sparskit=${prefix}/lib/libskit.a + # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix} + # --with-arpack=${prefix}/lib/libarpack.dylib + # --with-parpack=${prefix}/lib/libparpack.dylib + # --with-metis-prefix=${prefix} --with-parmetis-prefix=${prefix} + # --with-berkeleygw-prefix=${prefix} + ]) + + # Supposedly configure does not pick up the required flags for gfortran + # Without it there are: + # Error: Line truncated @ global.F90:157:132 + # Error: Unterminated character constant @ global.F90:157:20 + if spec.satisfies('%clang') or spec.satisfies('%gcc'): + args.extend([ + 'FCFLAGS=-O2 -ffree-line-length-none' + ]) + + configure(*args) + make() + # short tests take forever... + # make('check-short') + make('install') diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py index 3c1044783f..7c08e51de8 100644 --- a/var/spack/repos/builtin/packages/py-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-cffi/package.py @@ -22,6 +22,8 @@ # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## +import os + from spack import * @@ -39,4 +41,12 @@ class PyCffi(Package): depends_on('libffi') def install(self, spec, prefix): + # This sets the compiler (and flags) that distutils will use + # to create the final shared library. It will use the + # compiler specified by the environment variable 'CC' for all + # other compilation. We are setting the 'LDSHARED" to the + # spack compiler wrapper plus a few extra flags necessary for + # building the shared library. + os.environ['LDSHARED'] = "{0} -shared -pthread".format(spack_cc) + python('setup.py', 'install', '--prefix=%s' % prefix) |