diff options
9 files changed, 120 insertions, 14 deletions
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 3ffedbbad9..882901d887 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -329,6 +329,12 @@ class Package(object): """ sanity_check_is_dir = [] + class __metaclass__(type): + """Ensure attributes required by Spack directives are present.""" + def __init__(cls, name, bases, dict): + type.__init__(cls, name, bases, dict) + spack.directives.ensure_dicts(cls) + def __init__(self, spec): # this determines how the package should be built. self.spec = spec @@ -342,9 +348,6 @@ class Package(object): # Allow custom staging paths for packages self.path = None - # Sanity check attributes required by Spack directives. - spack.directives.ensure_dicts(type(self)) - # Check versions in the versions dict. for v in self.versions: assert (isinstance(v, Version)) diff --git a/var/spack/repos/builtin/packages/ImageMagick/package.py b/var/spack/repos/builtin/packages/ImageMagick/package.py index 61d4cc0cb4..0b474285ce 100644 --- a/var/spack/repos/builtin/packages/ImageMagick/package.py +++ b/var/spack/repos/builtin/packages/ImageMagick/package.py @@ -36,19 +36,22 @@ class Imagemagick(Package): version('7.0.2-6', 'aa5689129c39a5146a3212bf5f26d478') depends_on('jpeg') + depends_on('pango') depends_on('libtool', type='build') depends_on('libpng') depends_on('freetype') depends_on('fontconfig') depends_on('libtiff') depends_on('ghostscript') + depends_on('ghostscript-fonts') def url_for_version(self, version): return "https://github.com/ImageMagick/ImageMagick/archive/{0}.tar.gz".format(version) def install(self, spec, prefix): - configure('--prefix={0}'.format(prefix)) - + gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font") + configure('--prefix={0}'.format(prefix), + '--with-gs-font-dir={0}'.format(gs_font_dir)) make() make('check') make('install') diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py index 2de1c390db..5eb7f3347b 100644 --- a/var/spack/repos/builtin/packages/autoconf/package.py +++ b/var/spack/repos/builtin/packages/autoconf/package.py @@ -34,6 +34,8 @@ class Autoconf(Package): version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b') version('2.62', '6c1f3b3734999035d77da5024aab4fbd') + version('2.59', 'd4d45eaa1769d45e59dcb131a4af17a0') + version('2.13', '9de56d4a161a723228220b0f425dc711') depends_on('m4', type='build') diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py new file mode 100644 index 0000000000..0f82ed5fb6 --- /dev/null +++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py @@ -0,0 +1,37 @@ +############################################################################## +# 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 GhostscriptFonts(Package): + """Ghostscript Fonts""" + + homepage = "http://ghostscript.com/" + url = "ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz" + + version('8.11', '6865682b095f8c4500c54b285ff05ef6') + + def install(self, spec, prefix): + install_tree('.', join_path(prefix.share, 'font')) diff --git a/var/spack/repos/builtin/packages/globus_toolkit/package.py b/var/spack/repos/builtin/packages/globus_toolkit/package.py new file mode 100644 index 0000000000..5cec13a5af --- /dev/null +++ b/var/spack/repos/builtin/packages/globus_toolkit/package.py @@ -0,0 +1,40 @@ +############################################################################## +# 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 GlobusToolkit(Package): + """The Globus Toolkit is an open source software toolkit used for building + grids""" + + homepage = "http://toolkit.globus.org" + url = "http://toolkit.globus.org/ftppub/gt6/installers/src/globus_toolkit-6.0.1470089956.tar.gz" + + version('6.0.1470089956', 'b77fe3cc5a5844df995688b0e630d077') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index b0efe27def..f13feb123d 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -50,12 +50,14 @@ def _verbs_dir(): class Openmpi(Package): - """Open MPI is a project combining technologies and resources from - several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) - in order to build the best MPI library available. A completely - new MPI-2 compliant implementation, Open MPI offers advantages - for system and software vendors, application developers and - computer science researchers. + """The Open MPI Project is an open source Message Passing Interface + implementation that is developed and maintained by a consortium + of academic, research, and industry partners. Open MPI is + therefore able to combine the expertise, technologies, and + resources from all across the High Performance Computing + community in order to build the best MPI library available. + Open MPI offers advantages for system and software vendors, + application developers and computer science researchers. """ homepage = "http://www.open-mpi.org" diff --git a/var/spack/repos/builtin/packages/qthreads/package.py b/var/spack/repos/builtin/packages/qthreads/package.py index 634d934938..8d5cc87062 100644 --- a/var/spack/repos/builtin/packages/qthreads/package.py +++ b/var/spack/repos/builtin/packages/qthreads/package.py @@ -54,6 +54,7 @@ class Qthreads(Package): patch("trap.patch") depends_on("autoconf", type="build") + depends_on("automake", type="build") depends_on("hwloc") def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py new file mode 100644 index 0000000000..0d675ef8ff --- /dev/null +++ b/var/spack/repos/builtin/packages/sbt/package.py @@ -0,0 +1,18 @@ +from spack import * +import shutil + + +class Sbt(Package): + """Scala Build Tool""" + + homepage = "http://http://www.scala-sbt.org" + url = "http://http://www.scala-sbt.org/download.html" + + version('0.13.12', 'cec3071d46ef13334c8097cc3467ff28', + url='https://dl.bintray.com/sbt/native-packages/sbt/0.13.12/sbt-0.13.12.tgz') + + depends_on('jdk') + + def install(self, spec, prefix): + shutil.copytree('bin', join_path(prefix, 'bin'), symlinks=True) + shutil.copytree('conf', join_path(prefix, 'conf'), symlinks=True) diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index 01eccfab57..5f2e5e19d9 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -71,14 +71,14 @@ class Vim(Package): for fs in self.feature_sets: if "+" + fs in spec: if feature_set is not None: - tty.error( + raise InstallError( "Only one feature set allowed, specified %s and %s" % (feature_set, fs)) feature_set = fs if '+gui' in spec: if feature_set is not None: - if feature_set is not 'huge': - tty.error( + if feature_set != 'huge': + raise InstallError( "+gui variant requires 'huge' feature set, " "%s was specified" % feature_set) feature_set = 'huge' |