From 4e5d340665b954e0046204473bbd33436483dedc Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Wed, 5 Oct 2016 14:16:06 +0200 Subject: boost: set 1.61 as preffered until 1.62 is fixed (#1908) --- var/spack/repos/builtin/packages/boost/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 22351a2c3a..5b50b44038 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -41,8 +41,8 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 - version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') - version('1.61.0', '6095876341956f65f9d35939ccea1a9f') + version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') # TODO: fix build + version('1.61.0', '6095876341956f65f9d35939ccea1a9f', preferred=True) version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe') version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87') version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546') -- cgit v1.2.3-70-g09d2 From ac3e21f8d4be5786761b5009690e09f6ec564c79 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Wed, 5 Oct 2016 15:46:20 +0200 Subject: PNGwriter, libSplash: Add `master` version (#1744) * PNGwriter, libSplash: Add `master` version * PNGwriter, libSplash: Add `dev` versions Can be used for now, `develop` is currently discouraged. --- var/spack/repos/builtin/packages/libsplash/package.py | 4 ++++ var/spack/repos/builtin/packages/pngwriter/package.py | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py index 21a6eede3f..c20e6fe192 100644 --- a/var/spack/repos/builtin/packages/libsplash/package.py +++ b/var/spack/repos/builtin/packages/libsplash/package.py @@ -37,6 +37,10 @@ class Libsplash(Package): homepage = "https://github.com/ComputationalRadiationPhysics/libSplash" url = "https://github.com/ComputationalRadiationPhysics/libSplash/archive/v1.4.0.tar.gz" + version('dev', branch='dev', + git='https://github.com/ComputationalRadiationPhysics/libSplash.git') + version('master', branch='master', + git='https://github.com/ComputationalRadiationPhysics/libSplash.git') version('1.4.0', '2de37bcef6fafa1960391bf44b1b50e0') version('1.3.1', '524580ba088d97253d03b4611772f37c') version('1.2.4', '3fccb314293d22966beb7afd83b746d0') diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py index c51f1f82a8..4c0370a7ef 100644 --- a/var/spack/repos/builtin/packages/pngwriter/package.py +++ b/var/spack/repos/builtin/packages/pngwriter/package.py @@ -38,6 +38,10 @@ class Pngwriter(Package): homepage = "http://pngwriter.sourceforge.net/" url = "https://github.com/pngwriter/pngwriter/archive/0.5.6.tar.gz" + version('dev', branch='dev', + git='https://github.com/pngwriter/pngwriter.git') + version('master', branch='master', + git='https://github.com/pngwriter/pngwriter.git') version('0.5.6', 'c13bd1fdc0e331a246e6127b5f262136') depends_on('cmake', type='build') -- cgit v1.2.3-70-g09d2 From d5e5e4ed1aef6ade3ddef34c4ad7a57988fd8d74 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 5 Oct 2016 12:00:31 -0500 Subject: Add missing dependencies for Flake8 (#1883) * Warn user if flake8 can't find setuptools * Add missing dependencies of flake8 * Updates to py-autopep8, make packages activateable * Check for presence of setuptools for Sphinx too * Fix bug in order of commands --- share/spack/qa/check_dependencies | 26 +++++++++++ share/spack/qa/run-flake8-tests | 8 ++-- .../repos/builtin/packages/py-autopep8/package.py | 47 +++++++++++++++++-- .../builtin/packages/py-configparser/package.py | 46 +++++++++++++++++++ .../repos/builtin/packages/py-enum34/package.py | 45 ++++++++++++++++++ .../repos/builtin/packages/py-flake8/package.py | 39 +++++++++++++--- .../repos/builtin/packages/py-mccabe/package.py | 53 ++++++++++++++++++++++ .../builtin/packages/py-ordereddict/package.py | 41 +++++++++++++++++ .../repos/builtin/packages/py-pep8/package.py | 15 ------ .../builtin/packages/py-pycodestyle/package.py | 52 +++++++++++++++++++++ .../repos/builtin/packages/py-pyflakes/package.py | 52 +++++++++++++++++++++ 11 files changed, 394 insertions(+), 30 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-configparser/package.py create mode 100644 var/spack/repos/builtin/packages/py-enum34/package.py create mode 100644 var/spack/repos/builtin/packages/py-mccabe/package.py create mode 100644 var/spack/repos/builtin/packages/py-ordereddict/package.py delete mode 100644 var/spack/repos/builtin/packages/py-pep8/package.py create mode 100644 var/spack/repos/builtin/packages/py-pycodestyle/package.py create mode 100644 var/spack/repos/builtin/packages/py-pyflakes/package.py (limited to 'var') diff --git a/share/spack/qa/check_dependencies b/share/spack/qa/check_dependencies index cf3d204f48..e999463b03 100755 --- a/share/spack/qa/check_dependencies +++ b/share/spack/qa/check_dependencies @@ -65,6 +65,32 @@ for dep in "$@"; do exit 1 fi + + # Flake8 and Sphinx require setuptools in order to run. + # Otherwise, they print out this error message: + # + # Traceback (most recent call last): + # File: "/usr/bin/flake8", line 5, in + # from pkg_resources import load_entry_point + # ImportError: No module named pkg_resources + # + # Print a more useful error message if setuptools not found. + if [[ $dep == flake8 || $dep == sphinx* ]]; then + # Find which Python is being run + # Spack-installed packages have a hard-coded shebang + python_cmd=$(head -n 1 $(which $dep) | cut -c 3-) + # May not have a shebang + if [[ $python_cmd != *python* ]]; then + python_cmd=python + fi + # Check if setuptools is in the PYTHONPATH + if ! $python_cmd -c "import setuptools" 2> /dev/null; then + echo "ERROR: setuptools is required to run $dep." + echo "Please add it to your PYTHONPATH." + + exit 1 + fi + fi done echo "Dependencies found." diff --git a/share/spack/qa/run-flake8-tests b/share/spack/qa/run-flake8-tests index 350ef3161f..6fe97160e3 100755 --- a/share/spack/qa/run-flake8-tests +++ b/share/spack/qa/run-flake8-tests @@ -23,10 +23,6 @@ deps=( # Check for dependencies "$QA_DIR/check_dependencies" "${deps[@]}" || exit 1 -# Move to root directory of Spack -# Allows script to be run from anywhere -cd "$SPACK_ROOT" - # Gather array of changed files changed=($("$QA_DIR/changed_files" "*.py")) @@ -36,6 +32,10 @@ if [[ ! "${changed[@]}" ]]; then exit 0 fi +# Move to root directory of Spack +# Allows script to be run from anywhere +cd "$SPACK_ROOT" + function cleanup { # Restore original package files after modifying them. for file in "${changed[@]}"; do diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py index f6c08e2728..6d093f32f6 100644 --- a/var/spack/repos/builtin/packages/py-autopep8/package.py +++ b/var/spack/repos/builtin/packages/py-autopep8/package.py @@ -1,16 +1,53 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## from spack import * class PyAutopep8(Package): - """Automatic pep8 formatter""" + """autopep8 automatically formats Python code to conform to the + PEP 8 style guide.""" + homepage = "https://github.com/hhatto/autopep8" - url = "https://github.com/hhatto/autopep8/archive/ver1.2.2.tar.gz" + url = "https://github.com/hhatto/autopep8/archive/v1.2.4.tar.gz" + version('1.2.4', '0458db85159a9e1b45f3e71ce6c158da') version('1.2.2', 'def3d023fc9dfd1b7113602e965ad8e1') - extends('python') + extends('python', ignore='bin/pep8') + depends_on('python@2.6:2.7,3.2:') + + depends_on('py-pycodestyle@1.5.7:1.7.0', type=nolink) + depends_on('py-setuptools', type='build') - depends_on('py-pep8', type=nolink) + + def url_for_version(self, version): + url = "https://github.com/hhatto/autopep8/archive/{0}{1}.tar.gz" + if version >= Version('1.2.3'): + return url.format('v', version) + else: + return url.format('ver', version) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py new file mode 100644 index 0000000000..1ad4ed619e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-configparser/package.py @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyConfigparser(Package): + """This library brings the updated configparser from Python 3.5 to + Python 2.6-3.5.""" + + homepage = "https://pypi.python.org/pypi/configparser" + url = "https://pypi.python.org/packages/source/c/configparser/configparser-3.5.0.tar.gz" + + version('3.5.0', 'cfdd915a5b7a6c09917a64a573140538', + url="https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz") + + extends('python') + depends_on('python@2.6:2.7,3.4:') + + depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=nolink) + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py new file mode 100644 index 0000000000..2f294bac12 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-enum34/package.py @@ -0,0 +1,45 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyEnum34(Package): + """Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4.""" + + homepage = "https://pypi.python.org/pypi/enum34" + url = "https://pypi.python.org/packages/source/e/enum34/enum34-1.1.6.tar.gz" + + version('1.1.6', '5f13a0841a61f7fc295c514490d120d0', + url="https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz") + + extends('python') + depends_on('python@2.4:2.8,3.3:') + + depends_on('py-ordereddict', when='^python@:2.6.999', type=nolink) + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py index 2fabe03d66..8bb36bc02f 100644 --- a/var/spack/repos/builtin/packages/py-flake8/package.py +++ b/var/spack/repos/builtin/packages/py-flake8/package.py @@ -28,13 +28,40 @@ from spack import * class PyFlake8(Package): """Flake8 is a wrapper around PyFlakes, pep8 and Ned Batchelder's McCabe script.""" - homepage = "http://flake8.readthedocs.io/en/latest/" - url = "https://pypi.python.org/packages/source/f/flake8/flake8-2.5.4.tar.gz" - version('2.5.4', 'a4585b3569b95c3f66acb8294a7f06ef') + homepage = "https://github.com/PyCQA/flake8" + url = "https://github.com/PyCQA/flake8/archive/3.0.4.tar.gz" - extends('python') - depends_on('py-setuptools', type='build') + version('3.0.4', 'cf2a7d8c92070f7b62253404ffb54df7') + version('2.5.4', '366dd1de6c300254c830b81e66979f06') + + extends('python', ignore='bin/(pyflakes|pycodestyle)') + depends_on('python@2.7:2.8,3.4:') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-flake8 requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + # pyflakes >= 0.8.1, != 1.2.0, != 1.2.1, != 1.2.2, < 1.3.0 + depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=nolink) # noqa + # pyflakes >= 0.8.1, < 1.1 + depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=nolink) + + # pycodestyle >= 2.0.0, < 2.1.0 + depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=nolink) + # pep8 >= 1.5.7, != 1.6.0, != 1.6.1, != 1.6.2 + depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=nolink) + + # mccabe >= 0.5.0, < 0.6.0 + depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=nolink) + # mccabe >= 0.2.1, < 0.5 + depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=nolink) + + depends_on('py-configparser', when='^python@:3.3.999', type=nolink) + depends_on('py-enum34', when='^python@:3.1.999', type=nolink) + + # TODO: Add test dependencies + # depends_on('py-nose', type='test') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py new file mode 100644 index 0000000000..ec913acb16 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mccabe/package.py @@ -0,0 +1,53 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyMccabe(Package): + """Ned's script to check McCabe complexity.""" + + homepage = "https://github.com/PyCQA/mccabe" + url = "https://github.com/PyCQA/mccabe/archive/0.5.2.tar.gz" + + version('0.5.2', '3cdf2d7faa1464b18905fe9a7063a632') + version('0.5.1', '864b364829156701bec797712be8ece0') + version('0.5.0', '71c0ce5e5c4676753525154f6c5d3af8') + version('0.4.0', '9cf5712e5f1785aaa27273a4328babe4') + version('0.3.1', '45c48c0978e6fc1f31fedcb918178abb') + version('0.3', 'c583f58ea28be12842c001473d77504d') + version('0.2.1', 'fcba311ebd999f48359a8ab28da94b30') + version('0.2', '36d4808c37e187dbb1fe2373a0ac6645') + version('0.1', '3c9e8e72612a9c01d865630cc569150a') + + extends('python') + depends_on('python@2.7:2.8,3.3:') + + depends_on('py-setuptools', type='build') + + # TODO: Add test dependencies + # depends_on('py-pytest', type='test') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py new file mode 100644 index 0000000000..6e038b789c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ordereddict/package.py @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyOrdereddict(Package): + """A drop-in substitute for Py2.7's new collections. + OrderedDict that works in Python 2.4-2.6.""" + + homepage = "https://pypi.python.org/pypi/ordereddict" + url = "https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz" + + version('1.1', 'a0ed854ee442051b249bfad0f638bbec') + + extends('python') + depends_on('python@2.4:2.6.999') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py deleted file mode 100644 index 87d1da9ab0..0000000000 --- a/var/spack/repos/builtin/packages/py-pep8/package.py +++ /dev/null @@ -1,15 +0,0 @@ -from spack import * - - -class PyPep8(Package): - """python pep8 format checker""" - homepage = "https://github.com/PyCQA/pycodestyle" - url = "https://github.com/PyCQA/pycodestyle/archive/1.7.0.tar.gz" - - version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9') - - extends('python') - depends_on('py-setuptools', type='build') - - def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py new file mode 100644 index 0000000000..964822aac9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPycodestyle(Package): + """pycodestyle is a tool to check your Python code against some of the + style conventions in PEP 8. Note: formerly called pep8.""" + + homepage = "https://github.com/PyCQA/pycodestyle" + url = "https://github.com/PyCQA/pycodestyle/archive/2.0.0.tar.gz" + + version('2.0.0', '5c3e90001f538bf3b7896d60e92eb6f6') + version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9') + version('1.6.2', '8df18246d82ddd3d19ffe7518f983955') + version('1.6.1', '9d59bdc7c60f46f7cee86c732e28aa1a') + version('1.6', '340fa7e39bb44fb08db6eddf7cdc880a') + version('1.5.7', '6d0f5fc7d95755999bc9275cad5cbf3e') + version('1.5.6', 'c5c30e3d267b48bf3dfe7568e803a813') + version('1.5.5', 'cfa12df9b86b3a1dfb13aced1927e12f') + version('1.5.4', '3977a760829652543544074c684610ee') + + extends('python') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-pycodestyle requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py new file mode 100644 index 0000000000..50bc8ab462 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPyflakes(Package): + """A simple program which checks Python source files for errors..""" + + homepage = "https://github.com/PyCQA/pyflakes" + url = "https://github.com/PyCQA/pyflakes/archive/1.3.0.tar.gz" + + version('1.3.0', 'a76173deb7a84fe860c0b60e2fbcdfe2') + version('1.2.3', '2ac2e148a5c46b6bb06c4785be76f7cc') + version('1.2.2', 'fe759b9381a6500e67a2ddbbeb5161a4') + version('1.2.1', '444a06b256e0a70e41c11698b7190e84') + version('1.2.0', '5d1c87bf09696c4c35dc3103f2a1185c') + version('1.1.0', '4e18bf78c0455ebcd41e5d6104392c88') + version('1.0.0', 'e2ea22a825c5100f12e54b71771cde71') + version('0.9.2', 'd02d5f68e944085fd6ec163a34737a96') + version('0.9.1', '8108d2248e93ca6a315fa2dd31ee9bb1') + version('0.9.0', '43c2bcee88606bde55dbf25a253ef886') + + extends('python') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-pyflakes requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) -- cgit v1.2.3-70-g09d2 From 42c69b3809c09a3d86e85c237180872ad95d9036 Mon Sep 17 00:00:00 2001 From: Elizabeth Fischer Date: Wed, 5 Oct 2016 13:03:05 -0400 Subject: everytrace: New package (#1543) * everytrace: New package Everytrace ensures that stack trace is obtained every time a program exits, for whatever reason. * everytrace: Change CMake to build dependency * Renamed to everytrace-example, flake8 and copyright issues. * flake8 * Missing type=build --- .../builtin/packages/everytrace-example/package.py | 46 +++++++++++++++++++ .../repos/builtin/packages/everytrace/package.py | 52 ++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 var/spack/repos/builtin/packages/everytrace-example/package.py create mode 100644 var/spack/repos/builtin/packages/everytrace/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py new file mode 100644 index 0000000000..8a85423192 --- /dev/null +++ b/var/spack/repos/builtin/packages/everytrace-example/package.py @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class EverytraceExample(CMakePackage): + """Get stack trace EVERY time a program exits.""" + + homepage = "https://github.com/citibeth/everytrace-example" + version('develop', + git='https://github.com/citibeth/everytrace-example.git', + branch='develop') + + depends_on('cmake', type='build') + depends_on('everytrace+mpi+fortran') + + # Currently the only MPI this everytrace works with. + depends_on('openmpi') + + def configure_args(self): + return [] + + def setup_environment(self, spack_env, env): + env.prepend_path('PATH', join_path(self.prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py new file mode 100644 index 0000000000..ee1a058009 --- /dev/null +++ b/var/spack/repos/builtin/packages/everytrace/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Everytrace(CMakePackage): + """Get stack trace EVERY time a program exits.""" + + homepage = "https://github.com/citibeth/everytrace" + url = "https://github.com/citibeth/everytrace/tarball/0.2.0" + + version('0.2.0', '2af0e5b6255064d5191accebaa70d222') + version('develop', + git='https://github.com/citibeth/everytrace.git', branch='develop') + + variant('mpi', default=True, description='Enables MPI parallelism') + variant('fortran', default=True, + description='Enable use with Fortran programs') + + depends_on('cmake', type='build') + depends_on('mpi', when='+mpi') + + def configure_args(self): + spec = self.spec + return [ + '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'), + '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO')] + + def setup_environment(self, spack_env, env): + env.prepend_path('PATH', join_path(self.prefix, 'bin')) -- cgit v1.2.3-70-g09d2 From 95b07c365ce07962eb00eb2c440f78eeb2028d10 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 5 Oct 2016 12:37:35 -0500 Subject: Add latest versions, resolve variant resolution bug (#1909) --- var/spack/repos/builtin/packages/gsl/package.py | 1 + var/spack/repos/builtin/packages/hdf/package.py | 1 + var/spack/repos/builtin/packages/nco/package.py | 20 ++++++++++++-------- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py index 574d3b9402..da17c4a330 100644 --- a/var/spack/repos/builtin/packages/gsl/package.py +++ b/var/spack/repos/builtin/packages/gsl/package.py @@ -38,6 +38,7 @@ class Gsl(Package): homepage = "http://www.gnu.org/software/gsl" url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz" + version('2.2.1', '3d90650b7cfe0a6f4b29c2d7b0f86458') version('2.1', 'd8f70abafd3e9f0bae03c52d1f4e8de5') version('2.0', 'ae44cdfed78ece40e73411b63a78c375') version('1.16', 'e49a664db13d81c968415cd53f62bc8b') diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py index 9a44184256..37abb611d4 100644 --- a/var/spack/repos/builtin/packages/hdf/package.py +++ b/var/spack/repos/builtin/packages/hdf/package.py @@ -34,6 +34,7 @@ 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") diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index a25d69d9f6..28dfe8f059 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -32,6 +32,7 @@ class Nco(Package): homepage = "https://sourceforge.net/projects/nco" url = "https://github.com/nco/nco/archive/4.5.5.tar.gz" + version('4.6.1', 'ef43cc989229c2790a9094bd84728fd8') version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce') # See "Compilation Requirements" at: @@ -39,18 +40,21 @@ class Nco(Package): variant('mpi', default=True) depends_on('netcdf') - depends_on('netcdf+mpi', when='+mpi') - depends_on('netcdf~mpi', when='~mpi') - depends_on('antlr@2.7.7+cxx') # (required for ncap2) - depends_on('gsl') # (desirable for ncap2) - depends_on('udunits2') # (allows dimensional unit transformations) - # depends_on('opendap') # (enables network transparency), + depends_on('antlr@2.7.7+cxx') # required for ncap2 + depends_on('gsl') # desirable for ncap2 + depends_on('udunits2') # allows dimensional unit transformations + # depends_on('opendap') # enables network transparency def install(self, spec, prefix): + # Workaround until variant forwarding works properly + if '+mpi' in spec and spec.satisfies('^netcdf~mpi'): + raise RuntimeError('Invalid spec. Package netcdf requires ' + 'netcdf+mpi, but spec asked for netcdf~mpi.') + opts = [ '--prefix=%s' % prefix, - '--disable-openmp', # TODO: Make this a variant - '--disable-dap', # TODO: Make this a variant + '--disable-openmp', # TODO: Make this a variant + '--disable-dap', # TODO: Make this a variant '--disable-esmf'] configure(*opts) make() -- cgit v1.2.3-70-g09d2 From 6ee020cea4040546c4faffc122ec9166868a09ab Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 5 Oct 2016 12:37:50 -0500 Subject: Add package for CONVERGE CFD (#1905) --- lib/spack/spack/hooks/licensing.py | 5 ++ .../repos/builtin/packages/converge/package.py | 69 ++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 var/spack/repos/builtin/packages/converge/package.py (limited to 'var') diff --git a/lib/spack/spack/hooks/licensing.py b/lib/spack/spack/hooks/licensing.py index 9010b84154..a99099749c 100644 --- a/lib/spack/spack/hooks/licensing.py +++ b/lib/spack/spack/hooks/licensing.py @@ -157,6 +157,11 @@ def symlink_license(pkg): license_dir = os.path.dirname(link_name) if not os.path.exists(license_dir): mkdirp(license_dir) + + # If example file already exists, overwrite it with a symlink + if os.path.exists(link_name): + os.remove(link_name) + if os.path.exists(target): os.symlink(target, link_name) tty.msg("Added local symlink %s to global license file" % diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py new file mode 100644 index 0000000000..429be8542d --- /dev/null +++ b/var/spack/repos/builtin/packages/converge/package.py @@ -0,0 +1,69 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +from distutils.dir_util import copy_tree +import os + + +class Converge(Package): + """CONVERGE is a revolutionary computational fluid dynamics (CFD) program + that eliminates the grid generation bottleneck from the simulation process. + CONVERGE was developed by engine simulation experts and is straightforward + to use for both engine and non-engine simulations. Unlike many CFD + programs, CONVERGE automatically generates a perfectly orthogonal, + structured grid at runtime based on simple, user-defined grid control + parameters. This grid generation method completely eliminates the need to + manually generate a grid. In addition, CONVERGE offers many other features + to expedite the setup process and to ensure that your simulations are as + computationally efficient as possible. + + Note: CONVERGE is licensed software. You will need to create an account on + the CONVERGE homepage and download CONVERGE yourself. Spack will search + your current directory for the download file. Alternatively, add this file + to a mirror so that Spack can find it. For instructions on how to set up a + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" + + homepage = "https://www.convergecfd.com/" + url = "file://%s/converge_install_2.3.16.tar.gz" % os.getcwd() + + version('2.3.16', '8b80f1e73a63181c427c7732ad279986') + + variant('mpi', default=True, description='Build with MPI support') + + # The Converge Getting Started Guide recommends: + # MPICH: 3.1.4 + # HP-MPI: 2.0.3+ + # OpenMPI: 1.6.* + depends_on('mpi', when='+mpi') + + # Licensing + license_required = True + license_comment = '#' + license_files = ['license/license.lic'] + license_vars = ['RLM_LICENSE'] + license_url = 'http://www.reprisesoftware.com/RLM_License_Administration.pdf' + + def install(self, spec, prefix): + copy_tree('.', prefix) -- cgit v1.2.3-70-g09d2 From 2966f174aeb84587301ffdd5609f1434b0c193f9 Mon Sep 17 00:00:00 2001 From: Elizabeth Fischer Date: Thu, 6 Oct 2016 02:15:38 -0400 Subject: mumps: Add alternate download location (in comments) (#1919) --- var/spack/repos/builtin/packages/mumps/package.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index 3466f091a0..e0d7a00c55 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -34,6 +34,8 @@ class Mumps(Package): homepage = "http://mumps.enseeiht.fr" url = "http://mumps.enseeiht.fr/MUMPS_5.0.1.tar.gz" + # Alternate location if main server is down. + # version('5.0.1', 'b477573fdcc87babe861f62316833db0', url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz') version('5.0.1', 'b477573fdcc87babe861f62316833db0') variant('mpi', default=True, -- cgit v1.2.3-70-g09d2 From a648dc6b334e8a170beab7d983130debc2ea9db1 Mon Sep 17 00:00:00 2001 From: Jeffrey Salmond Date: Thu, 6 Oct 2016 10:29:25 +0100 Subject: add python options to vtk package (#1931) --- var/spack/repos/builtin/packages/vtk/package.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index f7015904b0..fe3ebc9536 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -42,12 +42,16 @@ class Vtk(Package): patch("gcc.patch") + extends('python', when='+python') + depends_on('python', when='+python') depends_on('cmake', type='build') depends_on("qt") # VTK7 defaults to OpenGL2 rendering backend variant('opengl2', default=True, description='Build with OpenGL instead of OpenGL2 backend') + variant('python', default=False, + description='Build the python modules') def install(self, spec, prefix): def feature_to_bool(feature, on='ON', off='OFF'): @@ -59,8 +63,8 @@ class Vtk(Package): cmake_args = [ "..", "-DBUILD_SHARED_LIBS=ON", + "-DVTK_WRAP_PYTHON=" + ("ON" if "+python" in spec else "OFF"), # Disable wrappers for other languages. - "-DVTK_WRAP_PYTHON=OFF", "-DVTK_WRAP_JAVA=OFF", "-DVTK_WRAP_TCL=OFF"] cmake_args.extend(std_cmake_args) -- cgit v1.2.3-70-g09d2 From 264604df3e8b18496848a3b57772890b3e189b6b Mon Sep 17 00:00:00 2001 From: Elizabeth Fischer Date: Thu, 6 Oct 2016 05:36:27 -0400 Subject: cgal: build out of source. (#1918) * cgal: build out of source. * Simplify cmake out-of-source. --- var/spack/repos/builtin/packages/cgal/package.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py index d986f77487..ebfd3f9250 100644 --- a/var/spack/repos/builtin/packages/cgal/package.py +++ b/var/spack/repos/builtin/packages/cgal/package.py @@ -85,7 +85,7 @@ class Cgal(Package): else: options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') - cmake('.', *options) - - make() - make('install') + with working_dir('spack-build', create=True): + cmake('..', *options) + make() + make('install') -- cgit v1.2.3-70-g09d2 From 4cce23ea89512536a7577daa87c3714d710109b7 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Thu, 6 Oct 2016 10:43:23 +0100 Subject: Update libtiff: updated homepage and fetch urls. (#1895) * Update libtiff: updated homepage and fetch urls. * Update libtiff: new version 4.0.6. --- var/spack/repos/builtin/packages/libtiff/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py index cef9fcaae5..6c282dee7c 100644 --- a/var/spack/repos/builtin/packages/libtiff/package.py +++ b/var/spack/repos/builtin/packages/libtiff/package.py @@ -27,9 +27,10 @@ from spack import * class Libtiff(Package): """libtiff graphics format library""" - homepage = "http://www.remotesensing.org/libtiff/" - url = "http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" + homepage = "http://www.simplesystems.org/libtiff/" + url = "ftp://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" + version('4.0.6', 'd1d2e940dea0b5ad435f21f03d96dd72') version('4.0.3', '051c1068e6a0627f461948c365290410') depends_on('jpeg') -- cgit v1.2.3-70-g09d2 From 92ca6d64239186c269430b9bf6aa81bc2ecf904e Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Thu, 6 Oct 2016 10:43:34 +0100 Subject: Update pixman: mmx is disabled only for MacOS. (#1896) --- var/spack/repos/builtin/packages/pixman/package.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py index 41aad0c90a..8fe3e1f9d9 100644 --- a/var/spack/repos/builtin/packages/pixman/package.py +++ b/var/spack/repos/builtin/packages/pixman/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import sys class Pixman(Package): @@ -38,8 +39,13 @@ class Pixman(Package): depends_on("libpng") def install(self, spec, prefix): - configure("--prefix=%s" % prefix, - "--disable-mmx", - "--disable-gtk") + config_args = ["--prefix=" + prefix, + "--disable-gtk"] + + if sys.platform == "darwin": + config_args.append("--disable-mmx") + + configure(*config_args) + make() make("install") -- cgit v1.2.3-70-g09d2 From 7dc11472bf2d74e4a89a940a60023ed8e91f7bc2 Mon Sep 17 00:00:00 2001 From: James Wynne III Date: Thu, 6 Oct 2016 05:48:05 -0400 Subject: Sqlite ppc64le configure build guess fix (#1684) * Added check for ppc64le because configure cant guess the build type for rhel on ppc64le Expand/clarify description of dependency types Refactored getting the arch so that its less verbose * Fixed flake8 issues --- var/spack/repos/builtin/packages/sqlite/package.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py index 513f8ec6d4..78c2e14b34 100644 --- a/var/spack/repos/builtin/packages/sqlite/package.py +++ b/var/spack/repos/builtin/packages/sqlite/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack import architecture class Sqlite(Package): @@ -35,7 +36,15 @@ class Sqlite(Package): version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed', url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') + def get_arch(self): + arch = architecture.Arch() + arch.platform = architecture.platform() + return str(arch.platform.target('default_target')) + def install(self, spec, prefix): - configure("--prefix=" + prefix) + config = ["--prefix=" + prefix] + if self.get_arch() == 'ppc64le': + config.append("--build=powerpc64le-redhat-linux-gnu") + configure(*config) make() make("install") -- cgit v1.2.3-70-g09d2 From 6e9353f1a830dace6b34c1cb52441a8d212e5951 Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 6 Oct 2016 11:50:50 -0700 Subject: Updated nettle to have m4 as an immediate dependency (#1946) * Updated nettle to have m4 as an immediate dependency to match new PATH construction logic which only includes immediate dependencies. * Update package.py --- var/spack/repos/builtin/packages/nettle/package.py | 1 + 1 file changed, 1 insertion(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py index b4c873a8a1..7e2b758bc0 100644 --- a/var/spack/repos/builtin/packages/nettle/package.py +++ b/var/spack/repos/builtin/packages/nettle/package.py @@ -36,6 +36,7 @@ class Nettle(Package): version('2.7', '2caa1bd667c35db71becb93c5d89737f') depends_on('gmp') + depends_on('m4', type='build') def install(self, spec, prefix): configure('--prefix={0}'.format(prefix)) -- cgit v1.2.3-70-g09d2 From ebef9628a3c37b3853c1d9a40873c5f0f819d2c9 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Thu, 6 Oct 2016 20:49:03 +0100 Subject: Update gmp: fixed an issue with intel compiler. (#1898) --- var/spack/repos/builtin/packages/gmp/package.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py index 3ce784c6c1..14ce08473d 100644 --- a/var/spack/repos/builtin/packages/gmp/package.py +++ b/var/spack/repos/builtin/packages/gmp/package.py @@ -40,8 +40,14 @@ class Gmp(Package): depends_on('m4', type='build') def install(self, spec, prefix): - configure('--prefix={0}'.format(prefix), - '--enable-cxx') + config_args = ['--prefix=' + prefix, + '--enable-cxx'] + + # We need this flag if we want all the following checks to pass. + if spec.compiler.name == 'intel': + config_args.append('CXXFLAGS=-no-ftz') + + configure(*config_args) make() make('check') -- cgit v1.2.3-70-g09d2 From 82fcc5e1deabed8d6774bb13179ee1a4a026400a Mon Sep 17 00:00:00 2001 From: Joseph Ciurej Date: Thu, 6 Oct 2016 14:43:49 -0700 Subject: Feature Proposal : Make All Python Extensions User Configuration Independent (#1435) * Updated all Python extension packages to use 'setup_py' on install. * Fixed a few minor style issues with the updated Python packages. --- share/spack/csh/convert-pyext.sh | 5 ----- var/spack/repos/builtin/packages/fenics/package.py | 2 +- var/spack/repos/builtin/packages/py-3to2/package.py | 2 +- var/spack/repos/builtin/packages/py-SQLAlchemy/package.py | 2 +- var/spack/repos/builtin/packages/py-argcomplete/package.py | 2 +- var/spack/repos/builtin/packages/py-astroid/package.py | 2 +- var/spack/repos/builtin/packages/py-astropy/package.py | 5 ++--- var/spack/repos/builtin/packages/py-basemap/package.py | 2 +- var/spack/repos/builtin/packages/py-beautifulsoup4/package.py | 2 +- var/spack/repos/builtin/packages/py-biopython/package.py | 2 +- var/spack/repos/builtin/packages/py-blessings/package.py | 2 +- var/spack/repos/builtin/packages/py-bottleneck/package.py | 2 +- var/spack/repos/builtin/packages/py-cffi/package.py | 2 +- var/spack/repos/builtin/packages/py-coverage/package.py | 2 +- var/spack/repos/builtin/packages/py-csvkit/package.py | 2 +- var/spack/repos/builtin/packages/py-cython/package.py | 2 +- var/spack/repos/builtin/packages/py-dask/package.py | 2 +- var/spack/repos/builtin/packages/py-dateutil/package.py | 2 +- var/spack/repos/builtin/packages/py-dbf/package.py | 2 +- var/spack/repos/builtin/packages/py-decorator/package.py | 2 +- var/spack/repos/builtin/packages/py-emcee/package.py | 2 +- var/spack/repos/builtin/packages/py-epydoc/package.py | 2 +- var/spack/repos/builtin/packages/py-funcsigs/package.py | 2 +- var/spack/repos/builtin/packages/py-genshi/package.py | 2 +- var/spack/repos/builtin/packages/py-gnuplot/package.py | 2 +- var/spack/repos/builtin/packages/py-h5py/package.py | 7 +++---- var/spack/repos/builtin/packages/py-iminuit/package.py | 2 +- var/spack/repos/builtin/packages/py-ipython/package.py | 2 +- var/spack/repos/builtin/packages/py-jdcal/package.py | 2 +- var/spack/repos/builtin/packages/py-lockfile/package.py | 2 +- var/spack/repos/builtin/packages/py-logilab-common/package.py | 2 +- var/spack/repos/builtin/packages/py-mako/package.py | 2 +- var/spack/repos/builtin/packages/py-mistune/package.py | 2 +- var/spack/repos/builtin/packages/py-mock/package.py | 2 +- var/spack/repos/builtin/packages/py-mpi4py/package.py | 2 +- var/spack/repos/builtin/packages/py-mpmath/package.py | 2 +- var/spack/repos/builtin/packages/py-mx/package.py | 2 +- var/spack/repos/builtin/packages/py-mysqldb1/package.py | 2 +- var/spack/repos/builtin/packages/py-nestle/package.py | 2 +- var/spack/repos/builtin/packages/py-netcdf/package.py | 2 +- var/spack/repos/builtin/packages/py-networkx/package.py | 2 +- var/spack/repos/builtin/packages/py-nose/package.py | 2 +- var/spack/repos/builtin/packages/py-numexpr/package.py | 2 +- var/spack/repos/builtin/packages/py-openpyxl/package.py | 2 +- var/spack/repos/builtin/packages/py-pandas/package.py | 2 +- var/spack/repos/builtin/packages/py-pbr/package.py | 2 +- var/spack/repos/builtin/packages/py-periodictable/package.py | 2 +- var/spack/repos/builtin/packages/py-pexpect/package.py | 2 +- var/spack/repos/builtin/packages/py-phonopy/package.py | 2 +- var/spack/repos/builtin/packages/py-pil/package.py | 2 +- var/spack/repos/builtin/packages/py-pillow/package.py | 4 ++-- var/spack/repos/builtin/packages/py-ply/package.py | 2 +- var/spack/repos/builtin/packages/py-pmw/package.py | 2 +- var/spack/repos/builtin/packages/py-prettytable/package.py | 2 +- var/spack/repos/builtin/packages/py-protobuf/package.py | 2 +- var/spack/repos/builtin/packages/py-py2neo/package.py | 2 +- var/spack/repos/builtin/packages/py-pychecker/package.py | 2 +- var/spack/repos/builtin/packages/py-pycparser/package.py | 2 +- var/spack/repos/builtin/packages/py-pydatalog/package.py | 2 +- var/spack/repos/builtin/packages/py-pyelftools/package.py | 2 +- var/spack/repos/builtin/packages/py-pylint/package.py | 2 +- var/spack/repos/builtin/packages/py-pypar/package.py | 2 +- var/spack/repos/builtin/packages/py-pyparsing/package.py | 2 +- var/spack/repos/builtin/packages/py-pytables/package.py | 2 +- var/spack/repos/builtin/packages/py-python-daemon/package.py | 2 +- var/spack/repos/builtin/packages/py-pyyaml/package.py | 2 +- var/spack/repos/builtin/packages/py-restview/package.py | 2 +- var/spack/repos/builtin/packages/py-rpy2/package.py | 2 +- var/spack/repos/builtin/packages/py-scientificpython/package.py | 2 +- var/spack/repos/builtin/packages/py-scikit-image/package.py | 2 +- var/spack/repos/builtin/packages/py-scikit-learn/package.py | 2 +- var/spack/repos/builtin/packages/py-shiboken/package.py | 4 +--- var/spack/repos/builtin/packages/py-sncosmo/package.py | 2 +- var/spack/repos/builtin/packages/py-storm/package.py | 2 +- var/spack/repos/builtin/packages/py-sympy/package.py | 2 +- var/spack/repos/builtin/packages/py-tappy/package.py | 2 +- var/spack/repos/builtin/packages/py-tuiview/package.py | 2 +- var/spack/repos/builtin/packages/py-twisted/package.py | 2 +- var/spack/repos/builtin/packages/py-unittest2/package.py | 2 +- var/spack/repos/builtin/packages/py-unittest2py3k/package.py | 2 +- var/spack/repos/builtin/packages/py-urwid/package.py | 2 +- var/spack/repos/builtin/packages/py-virtualenv/package.py | 2 +- var/spack/repos/builtin/packages/py-wcsaxes/package.py | 2 +- var/spack/repos/builtin/packages/py-wheel/package.py | 2 +- var/spack/repos/builtin/packages/py-xlrd/package.py | 2 +- var/spack/repos/builtin/packages/py-yapf/package.py | 2 +- var/spack/repos/builtin/packages/scons/package.py | 2 +- 87 files changed, 90 insertions(+), 99 deletions(-) delete mode 100644 share/spack/csh/convert-pyext.sh (limited to 'var') diff --git a/share/spack/csh/convert-pyext.sh b/share/spack/csh/convert-pyext.sh deleted file mode 100644 index a48bcdbcca..0000000000 --- a/share/spack/csh/convert-pyext.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash --noprofile -PYEXT_REGEX=".*/.*/package.py" - -find var/spack/repos/builtin/packages/ -type f -regextype sed -regex ${PYEXT_REGEX} -exec \ - sed -i 's/python('\''setup.py'\'', /setup_py(/' {} \; diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py index fd9a37df1b..1dc302fdff 100644 --- a/var/spack/repos/builtin/packages/fenics/package.py +++ b/var/spack/repos/builtin/packages/fenics/package.py @@ -143,7 +143,7 @@ class Fenics(Package): def install(self, spec, prefix): for package in ['ufl', 'ffc', 'fiat', 'instant']: with working_dir(join_path('depends', package)): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) cmake_args = [ '-DCMAKE_BUILD_TYPE:STRING={0}'.format( diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py index 1071a3c209..d0b6857aaf 100644 --- a/var/spack/repos/builtin/packages/py-3to2/package.py +++ b/var/spack/repos/builtin/packages/py-3to2/package.py @@ -37,4 +37,4 @@ class Py3to2(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py index ca59105b4c..73e144b00e 100644 --- a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py +++ b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py @@ -36,4 +36,4 @@ class PySqlalchemy(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py index 2549972a6d..64312da9dc 100644 --- a/var/spack/repos/builtin/packages/py-argcomplete/package.py +++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py @@ -36,4 +36,4 @@ class PyArgcomplete(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py index a47b7ffa33..ff5683c705 100644 --- a/var/spack/repos/builtin/packages/py-astroid/package.py +++ b/var/spack/repos/builtin/packages/py-astroid/package.py @@ -42,4 +42,4 @@ class PyAstroid(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py index 25dce87e49..1565db0bdd 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -56,6 +56,5 @@ class PyAstropy(Package): depends_on('expat') def install(self, spec, prefix): - python('setup.py', 'build', '--use-system-cfitsio', - '--use-system-expat') - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('build', '--use-system-cfitsio', '--use-system-expat') + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py index 9c7f6454df..5b0026eda9 100644 --- a/var/spack/repos/builtin/packages/py-basemap/package.py +++ b/var/spack/repos/builtin/packages/py-basemap/package.py @@ -43,4 +43,4 @@ class PyBasemap(Package): def install(self, spec, prefix): env['GEOS_DIR'] = spec['geos'].prefix - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py index d3a260bd7f..71014b5bdb 100644 --- a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py +++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py @@ -40,4 +40,4 @@ class PyBeautifulsoup4(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py index c3edf9735b..9e1b693a0d 100644 --- a/var/spack/repos/builtin/packages/py-biopython/package.py +++ b/var/spack/repos/builtin/packages/py-biopython/package.py @@ -41,4 +41,4 @@ class PyBiopython(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py index e6fc6aa983..700c0ff4b3 100644 --- a/var/spack/repos/builtin/packages/py-blessings/package.py +++ b/var/spack/repos/builtin/packages/py-blessings/package.py @@ -37,4 +37,4 @@ class PyBlessings(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py index ad2ee749d3..20d78846bb 100644 --- a/var/spack/repos/builtin/packages/py-bottleneck/package.py +++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py @@ -36,4 +36,4 @@ class PyBottleneck(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py index 7c08e51de8..5cd983b343 100644 --- a/var/spack/repos/builtin/packages/py-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-cffi/package.py @@ -49,4 +49,4 @@ class PyCffi(Package): # building the shared library. os.environ['LDSHARED'] = "{0} -shared -pthread".format(spack_cc) - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py index 1a5b6df3d7..8cd8440b7e 100644 --- a/var/spack/repos/builtin/packages/py-coverage/package.py +++ b/var/spack/repos/builtin/packages/py-coverage/package.py @@ -38,4 +38,4 @@ class PyCoverage(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py index 5f50e3b6c2..5b0394a138 100644 --- a/var/spack/repos/builtin/packages/py-csvkit/package.py +++ b/var/spack/repos/builtin/packages/py-csvkit/package.py @@ -44,4 +44,4 @@ class PyCsvkit(Package): depends_on('py-openpyxl', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 4b3e1cabe1..e532286081 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -40,4 +40,4 @@ class PyCython(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py index 4bc2c6fc99..c72046b627 100644 --- a/var/spack/repos/builtin/packages/py-dask/package.py +++ b/var/spack/repos/builtin/packages/py-dask/package.py @@ -37,4 +37,4 @@ class PyDask(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py index 40945232c1..f147e2357b 100644 --- a/var/spack/repos/builtin/packages/py-dateutil/package.py +++ b/var/spack/repos/builtin/packages/py-dateutil/package.py @@ -39,4 +39,4 @@ class PyDateutil(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py index 7f83bce75e..eff893cc82 100644 --- a/var/spack/repos/builtin/packages/py-dbf/package.py +++ b/var/spack/repos/builtin/packages/py-dbf/package.py @@ -37,4 +37,4 @@ class PyDbf(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py index 9101b07a0d..30f764edc3 100644 --- a/var/spack/repos/builtin/packages/py-decorator/package.py +++ b/var/spack/repos/builtin/packages/py-decorator/package.py @@ -39,4 +39,4 @@ class PyDecorator(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py index 397f737cb1..2045ec9d59 100644 --- a/var/spack/repos/builtin/packages/py-emcee/package.py +++ b/var/spack/repos/builtin/packages/py-emcee/package.py @@ -38,4 +38,4 @@ class PyEmcee(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py index 9d4b93dad4..ed490cb396 100644 --- a/var/spack/repos/builtin/packages/py-epydoc/package.py +++ b/var/spack/repos/builtin/packages/py-epydoc/package.py @@ -36,4 +36,4 @@ class PyEpydoc(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py index c3d37f6b98..b82a37cae9 100644 --- a/var/spack/repos/builtin/packages/py-funcsigs/package.py +++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py @@ -37,4 +37,4 @@ class PyFuncsigs(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py index ea8d26c796..e7eb7bebdd 100644 --- a/var/spack/repos/builtin/packages/py-genshi/package.py +++ b/var/spack/repos/builtin/packages/py-genshi/package.py @@ -39,4 +39,4 @@ class PyGenshi(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py index a448a66e51..cc273103f2 100644 --- a/var/spack/repos/builtin/packages/py-gnuplot/package.py +++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py @@ -37,4 +37,4 @@ class PyGnuplot(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index 90a67c51bd..0579787ba2 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -56,11 +56,10 @@ class PyH5py(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'configure', - '--hdf5={0}'.format(spec['hdf5'].prefix)) + setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix)) if '+mpi' in spec: env['CC'] = spec['mpi'].mpicc - python('setup.py', 'configure', '--mpi') + setup_py('configure', '--mpi') - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py index d7446c06d4..c58b722e3b 100644 --- a/var/spack/repos/builtin/packages/py-iminuit/package.py +++ b/var/spack/repos/builtin/packages/py-iminuit/package.py @@ -43,4 +43,4 @@ class PyIminuit(Package): depends_on('py-cython', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py index ac3291e21e..d7ee2e3c95 100644 --- a/var/spack/repos/builtin/packages/py-ipython/package.py +++ b/var/spack/repos/builtin/packages/py-ipython/package.py @@ -39,4 +39,4 @@ class PyIpython(Package): depends_on('py-setuptools', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py index 32acf75131..60ee91c9b6 100644 --- a/var/spack/repos/builtin/packages/py-jdcal/package.py +++ b/var/spack/repos/builtin/packages/py-jdcal/package.py @@ -36,4 +36,4 @@ class PyJdcal(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py index b873625bdb..856276ec89 100644 --- a/var/spack/repos/builtin/packages/py-lockfile/package.py +++ b/var/spack/repos/builtin/packages/py-lockfile/package.py @@ -45,4 +45,4 @@ class PyLockfile(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py index ac1b933e43..e66cdc8479 100644 --- a/var/spack/repos/builtin/packages/py-logilab-common/package.py +++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py @@ -38,4 +38,4 @@ class PyLogilabCommon(Package): depends_on("py-six", type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py index 18a8dc0e68..ed4ccc7364 100644 --- a/var/spack/repos/builtin/packages/py-mako/package.py +++ b/var/spack/repos/builtin/packages/py-mako/package.py @@ -38,4 +38,4 @@ class PyMako(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py index 399c10005e..2daee1ed9a 100644 --- a/var/spack/repos/builtin/packages/py-mistune/package.py +++ b/var/spack/repos/builtin/packages/py-mistune/package.py @@ -43,4 +43,4 @@ class PyMistune(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py index 2c70535f19..d397b72329 100644 --- a/var/spack/repos/builtin/packages/py-mock/package.py +++ b/var/spack/repos/builtin/packages/py-mock/package.py @@ -40,4 +40,4 @@ class PyMock(Package): depends_on('py-setuptools@17.1:', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py index 1f0e52804e..11b1584397 100644 --- a/var/spack/repos/builtin/packages/py-mpi4py/package.py +++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py @@ -43,4 +43,4 @@ class PyMpi4py(Package): depends_on('mpi') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py index e5bae34694..846852aeb5 100644 --- a/var/spack/repos/builtin/packages/py-mpmath/package.py +++ b/var/spack/repos/builtin/packages/py-mpmath/package.py @@ -35,4 +35,4 @@ class PyMpmath(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py index f5631916f6..e72b281665 100644 --- a/var/spack/repos/builtin/packages/py-mx/package.py +++ b/var/spack/repos/builtin/packages/py-mx/package.py @@ -40,4 +40,4 @@ class PyMx(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mysqldb1/package.py b/var/spack/repos/builtin/packages/py-mysqldb1/package.py index 693fda6dbb..14534a57ca 100644 --- a/var/spack/repos/builtin/packages/py-mysqldb1/package.py +++ b/var/spack/repos/builtin/packages/py-mysqldb1/package.py @@ -36,4 +36,4 @@ class PyMysqldb1(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py index 81f9fe4d09..03096586b9 100644 --- a/var/spack/repos/builtin/packages/py-nestle/package.py +++ b/var/spack/repos/builtin/packages/py-nestle/package.py @@ -41,4 +41,4 @@ class PyNestle(Package): depends_on('py-scipy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-netcdf/package.py b/var/spack/repos/builtin/packages/py-netcdf/package.py index e4f67d75a6..497f81f86d 100644 --- a/var/spack/repos/builtin/packages/py-netcdf/package.py +++ b/var/spack/repos/builtin/packages/py-netcdf/package.py @@ -38,4 +38,4 @@ class PyNetcdf(Package): depends_on('netcdf') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py index 79ad420f8f..aaeaac9674 100644 --- a/var/spack/repos/builtin/packages/py-networkx/package.py +++ b/var/spack/repos/builtin/packages/py-networkx/package.py @@ -39,4 +39,4 @@ class PyNetworkx(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py index eb3dd77219..f1872c85b4 100644 --- a/var/spack/repos/builtin/packages/py-nose/package.py +++ b/var/spack/repos/builtin/packages/py-nose/package.py @@ -40,4 +40,4 @@ class PyNose(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py index b3b2e1d47d..51b4ef2e92 100644 --- a/var/spack/repos/builtin/packages/py-numexpr/package.py +++ b/var/spack/repos/builtin/packages/py-numexpr/package.py @@ -37,4 +37,4 @@ class PyNumexpr(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py index fa32cb879f..94949076ef 100644 --- a/var/spack/repos/builtin/packages/py-openpyxl/package.py +++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py @@ -39,4 +39,4 @@ class PyOpenpyxl(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 37234ae652..ae797cee40 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -51,4 +51,4 @@ class PyPandas(Package): depends_on('py-bottleneck', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py index a0cfe0e5a5..0251e436b1 100644 --- a/var/spack/repos/builtin/packages/py-pbr/package.py +++ b/var/spack/repos/builtin/packages/py-pbr/package.py @@ -38,4 +38,4 @@ class PyPbr(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py index 51d9cc2046..4a5b015e60 100644 --- a/var/spack/repos/builtin/packages/py-periodictable/package.py +++ b/var/spack/repos/builtin/packages/py-periodictable/package.py @@ -39,4 +39,4 @@ class PyPeriodictable(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py index 8a99c0473b..9e43e4526e 100644 --- a/var/spack/repos/builtin/packages/py-pexpect/package.py +++ b/var/spack/repos/builtin/packages/py-pexpect/package.py @@ -35,4 +35,4 @@ class PyPexpect(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py index d5b3313a98..a4ad03f34d 100644 --- a/var/spack/repos/builtin/packages/py-phonopy/package.py +++ b/var/spack/repos/builtin/packages/py-phonopy/package.py @@ -40,4 +40,4 @@ class PyPhonopy(Package): depends_on('py-pyyaml', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--home=%s' % prefix) + setup_py('install', '--home=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py index 29a86d1e85..f5d684962d 100644 --- a/var/spack/repos/builtin/packages/py-pil/package.py +++ b/var/spack/repos/builtin/packages/py-pil/package.py @@ -43,4 +43,4 @@ class PyPil(Package): depends_on('python@1.5.2:2.8') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 211e3b4199..3125a822b4 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -129,5 +129,5 @@ class PyPillow(Package): variants = ['jpeg', 'zlib', 'tiff', 'freetype', 'lcms', 'jpeg2000'] build_args = list(map(variant_to_flag, variants)) - python('setup.py', 'build_ext', *build_args) - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('build_ext', *build_args) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py index 47cd3b5dc8..d249de64fa 100644 --- a/var/spack/repos/builtin/packages/py-ply/package.py +++ b/var/spack/repos/builtin/packages/py-ply/package.py @@ -35,4 +35,4 @@ class PyPly(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py index e0a332a6bf..5173864f62 100644 --- a/var/spack/repos/builtin/packages/py-pmw/package.py +++ b/var/spack/repos/builtin/packages/py-pmw/package.py @@ -36,4 +36,4 @@ class PyPmw(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py index fa1c17ae8c..55a323a0d6 100644 --- a/var/spack/repos/builtin/packages/py-prettytable/package.py +++ b/var/spack/repos/builtin/packages/py-prettytable/package.py @@ -40,4 +40,4 @@ class PyPrettytable(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index dd2b5651de..d1186775bb 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -47,4 +47,4 @@ class PyProtobuf(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py index 97632493af..aed0859021 100644 --- a/var/spack/repos/builtin/packages/py-py2neo/package.py +++ b/var/spack/repos/builtin/packages/py-py2neo/package.py @@ -43,4 +43,4 @@ class PyPy2neo(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pychecker/package.py b/var/spack/repos/builtin/packages/py-pychecker/package.py index e81c3dbc9b..b1f8aad33f 100644 --- a/var/spack/repos/builtin/packages/py-pychecker/package.py +++ b/var/spack/repos/builtin/packages/py-pychecker/package.py @@ -35,4 +35,4 @@ class PyPychecker(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py index ef1b772ffc..e7b91f4495 100644 --- a/var/spack/repos/builtin/packages/py-pycparser/package.py +++ b/var/spack/repos/builtin/packages/py-pycparser/package.py @@ -36,4 +36,4 @@ class PyPycparser(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py index da157d3679..b2203ae04c 100644 --- a/var/spack/repos/builtin/packages/py-pydatalog/package.py +++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py @@ -35,4 +35,4 @@ class PyPydatalog(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py index bf781daf83..96a5645541 100644 --- a/var/spack/repos/builtin/packages/py-pyelftools/package.py +++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py @@ -36,4 +36,4 @@ class PyPyelftools(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py index c505d44530..10f60f0ab9 100644 --- a/var/spack/repos/builtin/packages/py-pylint/package.py +++ b/var/spack/repos/builtin/packages/py-pylint/package.py @@ -38,4 +38,4 @@ class PyPylint(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py index 6fef71304c..90d1f957b6 100644 --- a/var/spack/repos/builtin/packages/py-pypar/package.py +++ b/var/spack/repos/builtin/packages/py-pypar/package.py @@ -39,4 +39,4 @@ class PyPypar(Package): def install(self, spec, prefix): with working_dir('source'): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py index 67d255b02d..c3b4432d33 100644 --- a/var/spack/repos/builtin/packages/py-pyparsing/package.py +++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py @@ -35,4 +35,4 @@ class PyPyparsing(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py index f87e74211f..289d76242b 100644 --- a/var/spack/repos/builtin/packages/py-pytables/package.py +++ b/var/spack/repos/builtin/packages/py-pytables/package.py @@ -42,4 +42,4 @@ class PyPytables(Package): def install(self, spec, prefix): env["HDF5_DIR"] = spec['hdf5'].prefix - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py index a30dc00ba4..c696b7490b 100644 --- a/var/spack/repos/builtin/packages/py-python-daemon/package.py +++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py @@ -47,4 +47,4 @@ class PyPythonDaemon(Package): depends_on("py-lockfile", type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 8da391fac1..d760fcaae9 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -35,4 +35,4 @@ class PyPyyaml(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py index 047214c58e..9b0bd437c0 100644 --- a/var/spack/repos/builtin/packages/py-restview/package.py +++ b/var/spack/repos/builtin/packages/py-restview/package.py @@ -38,4 +38,4 @@ class PyRestview(Package): depends_on('py-pygments', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py index f86d813766..9db55e949b 100644 --- a/var/spack/repos/builtin/packages/py-rpy2/package.py +++ b/var/spack/repos/builtin/packages/py-rpy2/package.py @@ -44,4 +44,4 @@ class PyRpy2(Package): depends_on('R') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scientificpython/package.py b/var/spack/repos/builtin/packages/py-scientificpython/package.py index e2273dc164..6e8b9d38c1 100644 --- a/var/spack/repos/builtin/packages/py-scientificpython/package.py +++ b/var/spack/repos/builtin/packages/py-scientificpython/package.py @@ -38,4 +38,4 @@ class PyScientificpython(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py index fbeb5c95ca..124d2ec4b7 100644 --- a/var/spack/repos/builtin/packages/py-scikit-image/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py @@ -45,4 +45,4 @@ class PyScikitImage(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py index 3cd7ea74f3..09318a6c56 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -41,4 +41,4 @@ class PyScikitLearn(Package): depends_on('py-scipy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py index 0713f26ebc..c6c23acd33 100644 --- a/var/spack/repos/builtin/packages/py-shiboken/package.py +++ b/var/spack/repos/builtin/packages/py-shiboken/package.py @@ -64,6 +64,4 @@ class PyShiboken(Package): 'shiboken_postinstall.py') def install(self, spec, prefix): - python('setup.py', 'install', - '--prefix=%s' % prefix, - '--jobs=%s' % make_jobs) + setup_py('install', '--prefix=%s' % prefix, '--jobs=%s' % make_jobs) diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py index feb3856e8b..d5e32fd5e2 100644 --- a/var/spack/repos/builtin/packages/py-sncosmo/package.py +++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py @@ -48,4 +48,4 @@ class PySncosmo(Package): depends_on('py-nestle', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-storm/package.py b/var/spack/repos/builtin/packages/py-storm/package.py index 0e972480f3..74fb2add0d 100644 --- a/var/spack/repos/builtin/packages/py-storm/package.py +++ b/var/spack/repos/builtin/packages/py-storm/package.py @@ -37,4 +37,4 @@ class PyStorm(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py index 3d8b86ac4d..7d1b016263 100644 --- a/var/spack/repos/builtin/packages/py-sympy/package.py +++ b/var/spack/repos/builtin/packages/py-sympy/package.py @@ -37,4 +37,4 @@ class PySympy(Package): depends_on('py-mpmath', when='@1.0:') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py index 03e9528ad7..c195d08fd9 100644 --- a/var/spack/repos/builtin/packages/py-tappy/package.py +++ b/var/spack/repos/builtin/packages/py-tappy/package.py @@ -37,4 +37,4 @@ class PyTappy(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py index 5caf3ff143..e20de3ff79 100644 --- a/var/spack/repos/builtin/packages/py-tuiview/package.py +++ b/var/spack/repos/builtin/packages/py-tuiview/package.py @@ -41,4 +41,4 @@ class PyTuiview(Package): depends_on("gdal") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py index edf1e7b0d7..80023c2123 100644 --- a/var/spack/repos/builtin/packages/py-twisted/package.py +++ b/var/spack/repos/builtin/packages/py-twisted/package.py @@ -38,4 +38,4 @@ class PyTwisted(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py index 174ab0ca5f..ddd50a37d4 100644 --- a/var/spack/repos/builtin/packages/py-unittest2/package.py +++ b/var/spack/repos/builtin/packages/py-unittest2/package.py @@ -38,4 +38,4 @@ class PyUnittest2(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py index 95e6dcbff0..4aee545d74 100644 --- a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py +++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py @@ -39,4 +39,4 @@ class PyUnittest2py3k(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py index 943fb250f6..61dec3f1cd 100644 --- a/var/spack/repos/builtin/packages/py-urwid/package.py +++ b/var/spack/repos/builtin/packages/py-urwid/package.py @@ -37,4 +37,4 @@ class PyUrwid(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py index 0ed567df95..f373067144 100644 --- a/var/spack/repos/builtin/packages/py-virtualenv/package.py +++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py @@ -38,4 +38,4 @@ class PyVirtualenv(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py index 9588b879fa..ddc10d3e22 100644 --- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py +++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py @@ -40,4 +40,4 @@ class PyWcsaxes(Package): depends_on('py-astropy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py index f0ad340835..ce495bf6d0 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -37,4 +37,4 @@ class PyWheel(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py index 81c3c928c0..9638b8a36b 100644 --- a/var/spack/repos/builtin/packages/py-xlrd/package.py +++ b/var/spack/repos/builtin/packages/py-xlrd/package.py @@ -37,4 +37,4 @@ class PyXlrd(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-yapf/package.py b/var/spack/repos/builtin/packages/py-yapf/package.py index bc26b82b07..eab4d54abc 100644 --- a/var/spack/repos/builtin/packages/py-yapf/package.py +++ b/var/spack/repos/builtin/packages/py-yapf/package.py @@ -37,4 +37,4 @@ class PyYapf(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py index 2c32bde4a1..d20e529384 100644 --- a/var/spack/repos/builtin/packages/scons/package.py +++ b/var/spack/repos/builtin/packages/scons/package.py @@ -35,4 +35,4 @@ class Scons(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) -- cgit v1.2.3-70-g09d2 From 9683e0df07301da408c15a2655c2a1e283b1b06c Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Fri, 7 Oct 2016 00:23:18 +0200 Subject: atlas: add 3.10.3 (#1952) --- var/spack/repos/builtin/packages/atlas/package.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py index b31e365336..89b61b3ecb 100644 --- a/var/spack/repos/builtin/packages/atlas/package.py +++ b/var/spack/repos/builtin/packages/atlas/package.py @@ -37,6 +37,9 @@ class Atlas(Package): """ homepage = "http://math-atlas.sourceforge.net/" + version('3.10.3', 'd6ce4f16c2ad301837cfb3dade2f7cef', + url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.3/atlas3.10.3.tar.bz2') + version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da', url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True) # not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0 -- cgit v1.2.3-70-g09d2 From dbc864c9db38a363a68c6a140d957a2b24a7a2ff Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 6 Oct 2016 15:57:23 -0700 Subject: Restore default RPATH settings but allow packages to limit to immediate deps. (#1954) - Some packages (netcdf) NEED RPATHs for transitive deps. - Others (dealii) will exceed OS limits when the DAG is too large. --- lib/spack/spack/build_environment.py | 7 +++++-- lib/spack/spack/package.py | 9 +++++++++ var/spack/repos/builtin/packages/dealii/package.py | 4 ++++ 3 files changed, 18 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index cc5cfc6b39..3f2939609d 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -383,8 +383,11 @@ def set_module_variables_for_package(pkg, module): def get_rpath_deps(pkg): - """We only need to RPATH immediate dependencies.""" - return pkg.spec.dependencies(deptype='link') + """Return immediate or transitive RPATHs depending on the package.""" + if pkg.transitive_rpaths: + return [d for d in pkg.spec.traverse(root=False, deptype=('link'))] + else: + return pkg.spec.dependencies(deptype='link') def get_rpaths(pkg): diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 23ae8bd98f..aa874bf508 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -310,17 +310,26 @@ class Package(object): # """By default we build in parallel. Subclasses can override this.""" parallel = True + """# jobs to use for parallel make. If set, overrides default of ncpus.""" make_jobs = None + """By default do not run tests within package's install()""" run_tests = False + """Most packages are NOT extendable. Set to True if you want extensions.""" extendable = False + + """When True, add RPATHs for the entire DAG. When False, add RPATHs only + for immediate dependencies.""" + transitive_rpaths = True + """List of prefix-relative file paths (or a single path). If these do not exist after install, or if they exist but are not files, sanity checks fail. """ sanity_check_is_file = [] + """List of prefix-relative directory paths (or a single path). If these do not exist after install, or if they exist but are not directories, sanity checks will fail. diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 0d293e5d92..1dee94bfff 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -32,6 +32,10 @@ class Dealii(Package): homepage = "https://www.dealii.org" url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz" + # Don't add RPATHs to this package for the full build DAG. + # only add for immediate deps. + transitive_rpaths = False + version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7') version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d') version('8.4.0', 'ac5dbf676096ff61e092ce98c80c2b00') -- cgit v1.2.3-70-g09d2 From d3daa829f070bfd6bf25cfea18f27015ee9928f5 Mon Sep 17 00:00:00 2001 From: Jean-Paul Pelteret Date: Sat, 8 Oct 2016 07:45:24 +0200 Subject: Added symengine and associated packages (#1885) Symengine and associated packages --- var/spack/repos/builtin/packages/flint/package.py | 66 ++++++++++++ var/spack/repos/builtin/packages/mpc/package.py | 6 +- var/spack/repos/builtin/packages/mpfr/package.py | 2 +- var/spack/repos/builtin/packages/mpir/package.py | 62 +++++++++++ .../repos/builtin/packages/piranha/package.py | 73 +++++++++++++ .../repos/builtin/packages/py-symengine/package.py | 47 +++++++++ .../repos/builtin/packages/symengine/package.py | 113 +++++++++++++++++++++ 7 files changed, 365 insertions(+), 4 deletions(-) create mode 100644 var/spack/repos/builtin/packages/flint/package.py create mode 100644 var/spack/repos/builtin/packages/mpir/package.py create mode 100644 var/spack/repos/builtin/packages/piranha/package.py create mode 100644 var/spack/repos/builtin/packages/py-symengine/package.py create mode 100644 var/spack/repos/builtin/packages/symengine/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py new file mode 100644 index 0000000000..c39b17db2c --- /dev/null +++ b/var/spack/repos/builtin/packages/flint/package.py @@ -0,0 +1,66 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Flint(Package): + """FLINT (Fast Library for Number Theory).""" + + homepage = "http://www.flintlib.org" + url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz" + + version('2.5.2', 'cda885309362150196aed66a5e0f0383') + version('2.4.5', '6504b9deabeafb9313e57153a1730b33') + version('develop', git='https://github.com/wbhart/flint2.git') + + # Overlap in functionality between gmp and mpir + # All other dependencies must also be built with + # one or the other + # variant('mpir', default=False, + # description='Compile with the MPIR library') + + # Build dependencies + depends_on('autoconf', type='build') + + # Other dependencies + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir + + def install(self, spec, prefix): + options = [] + options = ["--prefix=%s" % prefix, + "--with-gmp=%s" % spec['gmp'].prefix, + "--with-mpfr=%s" % spec['mpfr'].prefix] + + # if '+mpir' in spec: + # options.extend([ + # "--with-mpir=%s" % spec['mpir'].prefix + # ]) + + configure(*options) + make() + if self.run_tests: + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py index 71cacd5dfe..2fe3900981 100644 --- a/var/spack/repos/builtin/packages/mpc/package.py +++ b/var/spack/repos/builtin/packages/mpc/package.py @@ -35,12 +35,12 @@ class Mpc(Package): version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26') version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3') - depends_on("gmp") - depends_on("mpfr") + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir def url_for_version(self, version): if version < Version("1.0.1"): - return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version + return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version # NOQA else: return "ftp://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py index 5777cd1926..4612d03849 100644 --- a/var/spack/repos/builtin/packages/mpfr/package.py +++ b/var/spack/repos/builtin/packages/mpfr/package.py @@ -35,7 +35,7 @@ class Mpfr(Package): version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138') version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19') - depends_on('gmp') + depends_on('gmp') # mpir is a drop-in replacement for this def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/mpir/package.py b/var/spack/repos/builtin/packages/mpir/package.py new file mode 100644 index 0000000000..b939a690b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpir/package.py @@ -0,0 +1,62 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Mpir(Package): + """Multiple Precision Integers and Rationals.""" + + homepage = "https://github.com/wbhart/mpir" + url = "https://github.com/wbhart/mpir/archive/mpir-2.7.0.tar.gz" + + version('2.7.0', '985b5d57bd0e74c74125ee885b9c8f71') + version('2.6.0', 'ec17d6a7e026114ceb734b2466aa0a91') + version('develop', git='https://github.com/wbhart/mpir.git') + + # This setting allows mpir to act as a drop-in replacement for gmp + variant('gmp_compat', default=False, + description='Compile with GMP library compatibility') + + # Build dependencies + depends_on('autoconf', type='build') + + # Other dependencies + depends_on('yasm') + + def install(self, spec, prefix): + # We definitely don't want to have MPIR build its + # own version of YASM. This tries to install it + # to a system directory. + options = ['--prefix={0}'.format(prefix), + '--with-system-yasm'] + + if '+gmp_compat' in spec: + options.extend(['--enable-gmpcompat']) + + configure(*options) + make() + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py new file mode 100644 index 0000000000..dbf949f000 --- /dev/null +++ b/var/spack/repos/builtin/packages/piranha/package.py @@ -0,0 +1,73 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Piranha(Package): + """Piranha is a computer-algebra library for the symbolic manipulation of + sparse multivariate polynomials and other closely-related symbolic objects + (such as Poisson series).""" + + homepage = "https://bluescarni.github.io/piranha/sphinx/" + url = "https://github.com/bluescarni/piranha/archive/v0.5.tar.gz" + + version('0.5', '99546bae2be115737b6316751eb0b84d') + version('develop', git='https://github.com/bluescarni/piranha.git') + + variant('python', default=True, + description='Build the Python bindings') + + # Build dependencies + depends_on('cmake@3.0:', type='build') + extends('python', when='+pyranha') + depends_on('python@2.6:', type='build', when='+pyranha') + + # Other dependencies + depends_on('boost+iostreams+regex+serialization', + when='~python') + depends_on('boost+iostreams+regex+serialization+python', + when='+python') + depends_on('bzip2') + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + # Python bindings + options.extend([ + '-DBUILD_PYRANHA=%s' % ( + 'ON' if '+python' in spec else 'OFF'), + '-DBUILD_TESTS:BOOL=ON', + ]) + + with working_dir('spack-build', create=True): + cmake('..', *options) + + make() + make('install') + if self.run_tests: + make('test') diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py new file mode 100644 index 0000000000..7f7cd84a77 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-symengine/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PySymengine(Package): + """Python wrappers for SymEngine, a symbolic manipulation library.""" + + homepage = "https://github.com/symengine/symengine.py" + url = "https://github.com/symengine/symengine.py/archive/v0.2.0.tar.gz" + + version('0.2.0', 'e1d114fa12be4c8c7e9f24007e07718c') + version('develop', git='https://github.com/symengine/symengine.py.git') + + # Build dependencies + extends('python') + depends_on('python@2.7:2.8,3.3:') + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.19.1:') + depends_on('cmake@2.8.7:', type='build') + depends_on('symengine@0.2.0:') + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s --symengine-dir=%s' % + (prefix, spec['symengine'].prefix)) diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py new file mode 100644 index 0000000000..f3fc13474c --- /dev/null +++ b/var/spack/repos/builtin/packages/symengine/package.py @@ -0,0 +1,113 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Symengine(Package): + """SymEngine is a fast symbolic manipulation library, written in C++.""" + + homepage = "https://github.com/symengine/symengine" + url = "https://github.com/symengine/symengine/archive/v0.2.0.tar.gz" + + version('0.2.0', '45401561add36a13c1f0b0c5f8d7422d') + version('0.1.0', '41ad7daed61fc5a77c285eb6c7303425') + version('develop', git='https://github.com/symengine/symengine.git') + + variant('flint', default=True, + description='Compile with Flint integer library') + variant('mpc', default=True, + description='Compile with MPC library') + variant('mpfr', default=True, + description='Compile with MPFR library') + variant('piranha', default=False, + description='Compile with Piranha integer library') + variant('thread_safe', default=True, + description='Enable thread safety option') + variant('openmp', default=False, + description='Enable OpenMP support') + variant('shared', default=True, + description='Enables the build of shared libraries') + + # Build dependencies + depends_on('cmake', type='build') + + # Other dependencies + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpc', when='+mpc') # Could also be built against mpir + depends_on('mpfr', when='+mpfr') # Could also be built against mpir + depends_on('flint', when='+flint') # Could also be built against mpir + depends_on('piranha', when='+piranha~flint') # Could also be built against mpir # NOQA + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + # CMAKE_BUILD_TYPE should be Debug | Release + for word in options[:]: + if word.startswith('-DCMAKE_BUILD_TYPE'): + options.remove(word) + + # See https://github.com/symengine/symengine/blob/master/README.md + # for build options + options.extend([ + '-DCMAKE_BUILD_TYPE=Release', + '-DWITH_SYMENGINE_RCP:BOOL=ON', + '-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % ( + 'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'), + '-DBUILD_TESTS:BOOL=ON', + '-DBUILD_BENCHMARKS:BOOL=ON', + '-DWITH_MPC:BOOL=%s' % ( + 'ON' if '+mpc' in spec else 'OFF'), + '-DWITH_MPFR:BOOL=%s' % ( + 'ON' if '+mpfr' in spec else 'OFF'), + '-DINTEGER_CLASS:STRING=gmp', + '-DWITH_OPENMP:BOOL=%s' % ( + 'ON' if '+openmp' in spec else 'OFF'), + '-DBUILD_SHARED_LIBS:BOOL=%s' % ( + 'ON' if '+shared' in spec else 'OFF'), + ]) + + if '+flint' in spec: + options.extend([ + '-DWITH_FLINT:BOOL=ON', + '-DINTEGER_CLASS:STRING=flint' + ]) + elif '+piranha' in spec: + options.extend([ + '-DWITH_PIRANHA:BOOL=ON', + '-DINTEGER_CLASS:STRING=piranha' + ]) + else: + options.extend([ + '-DINTEGER_CLASS:STRING=gmp' + ]) + + with working_dir('spack-build', create=True): + cmake('..', *options) + + make() + make('install') + if self.run_tests: + ctest() -- cgit v1.2.3-70-g09d2 From 377ac68690fd1149694c9b2c189d134d7572fae3 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 10 Oct 2016 12:13:20 -0400 Subject: Correct Charm++ install procedure (#1957) Charm++ only creates symbolic links instead of copying files. Correct this. --- var/spack/repos/builtin/packages/charm/package.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py index d67ac80de1..aa247fcc02 100644 --- a/var/spack/repos/builtin/packages/charm/package.py +++ b/var/spack/repos/builtin/packages/charm/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## +import os import platform import shutil import sys @@ -169,4 +170,19 @@ class Charm(Package): # this wouldn't be difficult. build = Executable(join_path(".", "build")) build(target, version, *options) + + # Charm++'s install script does not copy files, it only creates + # symbolic links. Fix this. + for dirpath, dirnames, filenames in os.walk(prefix): + for filename in filenames: + filepath = join_path(dirpath, filename) + if os.path.islink(filepath): + tmppath = filepath + ".tmp" + # Skip dangling symbolic links + try: + shutil.copy2(filepath, tmppath) + os.remove(filepath) + os.rename(tmppath, filepath) + except: + pass shutil.rmtree(join_path(prefix, "tmp")) -- cgit v1.2.3-70-g09d2 From c2ca8693e9c706fac7709e06ec40e04bd8d2efa1 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Mon, 10 Oct 2016 21:38:44 +0200 Subject: fix blas-lapack in scipy and numpy (#1949) * fix blas-lapack in scipy and numpy * py-numpy: do not set rpath on macOS * py-scipy: do not set Blas/Lapack. This appears to be picked up from py-numpy * py-numpy: don't write rpath= in Sierra only * py-numpy: add a link to build notes --- var/spack/repos/builtin/packages/py-numpy/package.py | 20 ++++++++++---------- var/spack/repos/builtin/packages/py-scipy/package.py | 13 ++++--------- 2 files changed, 14 insertions(+), 19 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index 0d68a892f2..8cb2331637 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -66,21 +66,21 @@ class PyNumpy(Package): 'numpy/core/include') def install(self, spec, prefix): - libraries = [] - library_dirs = [] + # for build notes see http://www.scipy.org/scipylib/building/linux.html + lapackblas = LibraryList('') + if '+lapack' in spec: + lapackblas += spec['lapack'].lapack_libs if '+blas' in spec: - libraries.append('blas') - library_dirs.append(spec['blas'].prefix.lib) - if '+lapack' in spec: - libraries.append('lapack') - library_dirs.append(spec['lapack'].prefix.lib) + lapackblas += spec['blas'].blas_libs if '+blas' in spec or '+lapack' in spec: with open('site.cfg', 'w') as f: f.write('[DEFAULT]\n') - f.write('libraries=%s\n' % ','.join(libraries)) - f.write('library_dirs=%s\n' % ':'.join(library_dirs)) - f.write('rpath=%s\n' % ':'.join(library_dirs)) + f.write('libraries=%s\n' % ','.join(lapackblas.names)) + f.write('library_dirs=%s\n' % ':'.join(lapackblas.directories)) + if not ((platform.system() == "Darwin") and + (platform.mac_ver()[0] == '10.12')): + f.write('rpath=%s\n' % ':'.join(lapackblas.directories)) setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index abb843f8ee..71bf83c3f0 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -45,15 +45,10 @@ class PyScipy(Package): # Known not to work with 2.23, 2.25 depends_on('binutils@2.26:', type='build') depends_on('py-numpy@1.7.1:+blas+lapack', type=nolink) + depends_on('blas') + depends_on('lapack') def install(self, spec, prefix): - if 'atlas' in spec: - # libatlas.so actually isn't always installed, but this - # seems to make the build autodetect things correctly. - env['ATLAS'] = join_path( - spec['atlas'].prefix.lib, 'libatlas.' + dso_suffix) - else: - env['BLAS'] = spec['blas'].blas_libs.joined() - env['LAPACK'] = spec['lapack'].lapack_libs.joined() - + # NOTE: scipy picks up Blas/Lapack from numpy, see + # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0 setup_py('install', '--prefix={0}'.format(prefix)) -- cgit v1.2.3-70-g09d2 From 29fc9cd22c4d4cf600ec5982f2f43c9941539e7f Mon Sep 17 00:00:00 2001 From: Kelly Thompson Date: Mon, 10 Oct 2016 16:33:00 -0600 Subject: Update package to use MPI compile wrappers as specified in MPI package. (#1985) + Previouly, these strings were hard coded to 'mpicc', 'mpic++', and 'mpifort'. --- var/spack/repos/builtin/packages/hdf5/package.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index 5984e50f42..c0635cfbfc 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -121,16 +121,14 @@ class Hdf5(Package): # 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) @@ -173,7 +171,7 @@ HDF5 version {version} {version} with open("check.c", 'w') as f: f.write(source) if '+mpi' in spec: - cc = which(join_path(spec['mpi'].prefix.bin, "mpicc")) + cc = which('%s' % spec['mpi'].mpicc) else: cc = which('cc') # TODO: Automate these path and library settings -- cgit v1.2.3-70-g09d2 From 3553c8b9e92f81e53c607c574b1b746e03039ac7 Mon Sep 17 00:00:00 2001 From: "Kelly (KT) Thompson" Date: Mon, 10 Oct 2016 18:57:35 -0600 Subject: On Cray machines, use the Cray compile wrappers instead of MPI wrappers. + Cray compile wrappers are MPI wrappers. + Packages that need to be compiled with MPI compile wrappers normally use 'mpicc', 'mpic++' and 'mpif90' provided by the MPI vendor. However, when using cray-mpich as the MPI vendor, the compile wrappers 'CC', 'cc' and 'ftn' must be used. + In this scenario, the mpich package is hijacked by specifying cray-mpich as an external package under the 'mpich:' section of packages.yaml. For example: packages: mpich: modules: mpich@7.4.2%intel@16.0.3 arch=cray-CNL-haswell: cray-mpich/7.4.2 buildable: False all: providers: mpi: [mpich] + This change allows packages like parmetis to be built using the Cray compile wrappers. For example: 'spack install parmetis%intel@16.0.3 ^mpich@7.4.2 os=CNL' + This commit relies on the existence of the environment variable CRAYPE_VERSION to determine if the current machine is running a Cray environment. This check is insufficient, but I'm not sure how to improve this logic. + Fixes #1827 --- var/spack/repos/builtin/packages/mpich/package.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index a36ab4206e..8f300d4ec7 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -62,10 +62,18 @@ class Mpich(Package): spack_env.set('MPICH_FC', spack_fc) def setup_dependent_package(self, module, dep_spec): - self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') - self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') + # Is this a Cray machine? (TODO: We need a better test than this.) + if os.environ.get('CRAYPE_VERSION'): + self.spec.mpicc = spack_cc + self.spec.mpicxx = spack_cxx + self.spec.mpifc = spack_fc + self.spec.mpif77 = spack_f77 + else: + self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') + self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') + self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') + self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') + self.spec.mpicxx_shared_libs = [ join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)), join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) -- cgit v1.2.3-70-g09d2 From 9a05ffea2761ce6cf9898ea763d105a267060a10 Mon Sep 17 00:00:00 2001 From: Geoffrey Oxberry Date: Tue, 11 Oct 2016 00:33:26 -0700 Subject: Mfem 3.2 (#1202) * mfem: add tarball extension Add tarball extension as a result of a feature added in PR#1926, which fixes earlier issues in this PR (PR#1202). Prior to adding this feature, Spack would not autodetect the extension of the tarball downloaded from the redirected, shorted Google URL, requiring a messy hack. This hack worked for mfem version 3.1, but led to errors when adding mfem version 3.2 because the files downloaded from Google did not contain the package name, version number, or extension. Adding the extension enables Spack to rename the tarball downloaded from Google to a sensible name that is compatible with its filename parsing algorithms so that Spack "does the right thing" (detects that the file is a GZipped tarball, decompresses it, runs GNU Make) in fetching and staging the package. * mfem: add linkage to KLU & BTF Add linkage to the KLU & BTF solvers, which are now enabled in MFEM for versions 3.2 and later. * mfem: Add superlu-dist variant Add linkage to SuperLU_DIST, which is a new linear solver interface for MFEM versions 3.2 and later. * mfem: add netcdf variant for cubit mesh support Add NetCDF variant for MFEM versions 3.2 and later; installing the NetCDF interfaces enables CUBIT mesh support. --- var/spack/repos/builtin/packages/mfem/package.py | 70 +++++++++++++++++++----- 1 file changed, 55 insertions(+), 15 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index cbf9059f65..9aa4ab8cf0 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -23,8 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import glob -import string class Mfem(Package): @@ -35,11 +33,11 @@ class Mfem(Package): version('3.2', '2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340', - url='http://goo.gl/Y9T75B', expand=False, preferred=True) + url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz') version('3.1', '841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57', - url='http://goo.gl/xrScXn', expand=False) + url='http://goo.gl/xrScXn', extension='.tar.gz') # version('3.1', git='https://github.com/mfem/mfem.git', # commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574') @@ -48,8 +46,11 @@ class Mfem(Package): variant('suite-sparse', default=False, description='Activate support for SuiteSparse') variant('mpi', default=False, description='Activate support for MPI') + variant('superlu-dist', default=False, + description='Activate support for SuperLU_Dist') variant('lapack', default=False, description='Activate support for LAPACK') variant('debug', default=False, description='Build debug version') + variant('netcdf', default=False, description='Activate NetCDF support') depends_on('blas', when='+lapack') depends_on('lapack', when='+lapack') @@ -68,6 +69,12 @@ class Mfem(Package): depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:') depends_on('cmake', when='^metis@5:', type='build') + depends_on('superlu-dist', when='@3.2: +superlu-dist') + + depends_on('netcdf', when='@3.2: +netcdf') + depends_on('zlib', when='@3.2: +netcdf') + depends_on('hdf5', when='@3.2: +netcdf') + def check_variants(self, spec): if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec): raise InstallError('mfem+mpi must be built with +hypre ' + @@ -81,6 +88,12 @@ class Mfem(Package): raise InstallError('To work around CMake bug with clang, must ' + 'build mfem with mfem[+variants] %clang ' + '^cmake %gcc to force CMake to build with gcc') + if '@:3.1' in spec and '+superlu-dist' in spec: + raise InstallError('MFEM does not support SuperLU_DIST for ' + + 'versions 3.1 and earlier') + if '@:3.1' in spec and '+netcdf' in spec: + raise InstallError('MFEM does not support NetCDF for versions' + + '3.1 and earlier') return def install(self, spec, prefix): @@ -102,7 +115,14 @@ class Mfem(Package): 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib + ' -lHYPRE']) - if '+metis' in spec: + if 'parmetis' in spec: + metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib + metis_str = 'MFEM_USE_METIS_5=YES' + options.extend([metis_str, + 'METIS_DIR=%s' % spec['parmetis'].prefix, + 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include, + 'METIS_LIB=%s' % metis_lib]) + elif 'metis' in spec: metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib if spec['metis'].satisfies('@5:'): metis_str = 'MFEM_USE_METIS_5=YES' @@ -114,14 +134,27 @@ class Mfem(Package): 'METIS_OPT=-I%s' % spec['metis'].prefix.include, 'METIS_LIB=%s' % metis_lib]) - if '+mpi' in spec: + if 'mpi' in spec: options.extend(['MFEM_USE_MPI=YES']) + if '+superlu-dist' in spec: + superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib + superlu_lib += ' -lsuperlu_dist' + sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include + options.extend(['MFEM_USE_SUPERLU=YES', + 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix, + sl_inc, + 'SUPERLU_LIB=%s' % superlu_lib]) + if '+suite-sparse' in spec: ssp = spec['suite-sparse'].prefix ss_lib = '-L%s' % ssp.lib - ss_lib += (' -lumfpack -lcholmod -lcolamd -lamd -lcamd' + - ' -lccolamd -lsuitesparseconfig') + + if '@3.2:' in spec: + ss_lib += ' -lklu -lbtf' + + ss_lib += (' -lumfpack -lcholmod -lcolamd' + + ' -lamd -lcamd -lccolamd -lsuitesparseconfig') no_librt_archs = ['darwin-i686', 'darwin-x86_64'] no_rt = any(map(lambda a: spec.satisfies('=' + a), @@ -135,16 +168,23 @@ class Mfem(Package): 'SUITESPARSE_OPT=-I%s' % ssp.include, 'SUITESPARSE_LIB=%s' % ss_lib]) + if '+netcdf' in spec: + np = spec['netcdf'].prefix + zp = spec['zlib'].prefix + h5p = spec['hdf5'].prefix + nlib = '-L%s -lnetcdf ' % np.lib + nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib + nlib += '-L%s -lz' % zp.lib + options.extend(['MFEM_USE_NETCDF=YES', + 'NETCDF_DIR=%s' % np, + 'HDF5_DIR=%s' % h5p, + 'ZLIB_DIR=%s' % zp, + 'NETCDF_OPT=-I%s' % np.include, + 'NETCDF_LIB=%s' % nlib]) + if '+debug' in spec: options.extend(['MFEM_DEBUG=YES']) - # Dirty hack to cope with URL redirect - tgz_file = string.split(self.url, '/')[-1] - tar = which('tar') - tar('xzvf', tgz_file) - cd(glob.glob('mfem*')[0]) - # End dirty hack to cope with URL redirect - make('config', *options) make('all') -- cgit v1.2.3-70-g09d2 From afd5d6b5cd45c268d28fa8d661d22ce54bc79e1c Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Tue, 11 Oct 2016 09:36:31 +0200 Subject: hpx5 version update (#1967) --- var/spack/repos/builtin/packages/hpx5/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py index 686e959719..fe75c256f8 100644 --- a/var/spack/repos/builtin/packages/hpx5/package.py +++ b/var/spack/repos/builtin/packages/hpx5/package.py @@ -37,15 +37,16 @@ class Hpx5(Package): applications enabling scientists to write code that performs and scales better than contemporary runtimes.""" homepage = "http://hpx.crest.iu.edu" - url = "http://hpx.crest.iu.edu/release/hpx-2.0.0.tar.gz" + url = "http://hpx.crest.iu.edu/release/hpx-3.1.0.tar.gz" + version('3.1.0', '9e90b8ac46788c009079632828c77628') version('2.0.0', '3d2ff3aab6c46481f9ec65c5b2bfe7a6') version('1.3.0', '2260ecc7f850e71a4d365a43017d8cee') version('1.2.0', '4972005f85566af4afe8b71afbf1480f') version('1.1.0', '646afb460ecb7e0eea713a634933ce4f') version('1.0.0', '8020822adf6090bd59ed7fe465f6c6cb') - variant('debug', default=False, description='Build a debug version of HPX-5') + variant('debug', default=False, description='Build debug version of HPX-5') variant('photon', default=False, description='Enable Photon support') variant('mpi', default=False, description='Enable MPI support') -- cgit v1.2.3-70-g09d2 From 1891ce35459f2f402effae2d7a8094bd0df49bc1 Mon Sep 17 00:00:00 2001 From: Kelly Thompson Date: Tue, 11 Oct 2016 01:42:59 -0600 Subject: Trilinos: Use more flexible option for locating the BLAS library directory. (#1987) + This change fixes a problem that manifests when trilinos is built against a MKL installation defined as an external package. In this scenario, the MKL libraries are found one directory deeper than for the case where spack provides MKL. The extra directory is a platform name like 'intel64'. + The changes in this PR were recommended by contributor @davydden. I implemented and tested with intel@16.0.3. These changes fix the issue I reported. I did not attempt building trilinos against other BLAS implementations. + fixes #1923 --- var/spack/repos/builtin/packages/mkl/package.py | 7 ------- var/spack/repos/builtin/packages/trilinos/package.py | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mkl/package.py b/var/spack/repos/builtin/packages/mkl/package.py index 8a31858bf5..4a9a8785f7 100644 --- a/var/spack/repos/builtin/packages/mkl/package.py +++ b/var/spack/repos/builtin/packages/mkl/package.py @@ -66,13 +66,6 @@ class Mkl(IntelInstaller): for f in os.listdir(mkl_dir): os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f)) - # Unfortunately MKL libs are natively distrubted in prefix/lib/intel64. - # To make MKL play nice with Spack, symlink all files to prefix/lib: - mkl_lib_dir = os.path.join(prefix, "lib", "intel64") - for f in os.listdir(mkl_lib_dir): - os.symlink(os.path.join(mkl_lib_dir, f), - os.path.join(self.prefix, "lib", f)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): # set up MKLROOT for everyone using MKL package spack_env.set('MKLROOT', self.prefix) diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 203e1502d6..4c7a94ce3f 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -149,10 +149,10 @@ class Trilinos(Package): '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix, '-DTPL_ENABLE_BLAS=ON', '-DBLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names), - '-DBLAS_LIBRARY_DIRS=%s' % spec['blas'].prefix.lib, + '-DBLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories), '-DTPL_ENABLE_LAPACK=ON', '-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names), - '-DLAPACK_LIBRARY_DIRS=%s' % spec['lapack'].prefix.lib, + '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories), '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON', '-DTrilinos_ENABLE_CXX11:BOOL=ON', '-DTPL_ENABLE_Netcdf:BOOL=ON', -- cgit v1.2.3-70-g09d2 From f555b8110df3d2315ba6d26c487e5cc0c9229054 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Tue, 11 Oct 2016 03:45:01 -0400 Subject: Charm++: Ignore compiler warnings while configuring (#1981) --- var/spack/repos/builtin/packages/charm/package.py | 2 ++ var/spack/repos/builtin/packages/charm/strictpass.patch | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 var/spack/repos/builtin/packages/charm/strictpass.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py index aa247fcc02..1ec53c2138 100644 --- a/var/spack/repos/builtin/packages/charm/package.py +++ b/var/spack/repos/builtin/packages/charm/package.py @@ -48,6 +48,8 @@ class Charm(Package): # Support OpenMPI; see # 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 diff --git a/var/spack/repos/builtin/packages/charm/strictpass.patch b/var/spack/repos/builtin/packages/charm/strictpass.patch new file mode 100644 index 0000000000..44aa4fbd38 --- /dev/null +++ b/var/spack/repos/builtin/packages/charm/strictpass.patch @@ -0,0 +1,16 @@ +--- old/src/scripts/configure ++++ new/src/scripts/configure +@@ -2146,13 +2146,6 @@ + test_result $? "$1" "$2" "$3" + strictpass=$pass + strictfail=$fail +- if test $pass -eq 1 +- then +- if cat out | grep -i "warn" > /dev/null 2>&1 +- then +- strictpass="0" && strictfail="1" +- fi +- fi + cat out >> $charmout + /bin/rm -f out + } -- cgit v1.2.3-70-g09d2 From 9e7f53a35abd788588b8f4cce72aa3efe06f7791 Mon Sep 17 00:00:00 2001 From: scheibelp Date: Tue, 11 Oct 2016 01:17:26 -0700 Subject: [WIP] Use boost system layout by default (#1955) Use boost system layout by default --- var/spack/repos/builtin/packages/boost/package.py | 33 ++++++++++++++++++---- .../repos/builtin/packages/cantera/package.py | 3 +- 2 files changed, 28 insertions(+), 8 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 5b50b44038..90fe28fc2c 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -41,8 +41,8 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 - version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') # TODO: fix build - version('1.61.0', '6095876341956f65f9d35939ccea1a9f', preferred=True) + version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') + version('1.61.0', '6095876341956f65f9d35939ccea1a9f') version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe') version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87') version('1.58.0', 'b8839650e61e9c1c0a89f371dd475546') @@ -110,12 +110,14 @@ class Boost(Package): description="Additionally build shared libraries") variant('multithreaded', default=True, description="Build multi-threaded versions of libraries") - variant('singlethreaded', default=True, + variant('singlethreaded', default=False, description="Build single-threaded versions of libraries") variant('icu', default=False, description="Build with Unicode and ICU suport") variant('graph', default=False, description="Build the Boost Graph library") + variant('taggedlayout', default=False, + description="Augment library names with build options") depends_on('icu4c', when='+icu') depends_on('python', when='+python') @@ -208,12 +210,20 @@ class Boost(Package): if '+singlethreaded' in spec: threadingOpts.append('single') if not threadingOpts: - raise RuntimeError("""At least one of {singlethreaded, - multithreaded} must be enabled""") + raise RuntimeError("At least one of {singlethreaded, " + + "multithreaded} must be enabled") + + if '+taggedlayout' in spec: + layout = 'tagged' + else: + if len(threadingOpts) > 1: + raise RuntimeError("Cannot build both single and " + + "multi-threaded targets with system layout") + layout = 'system' options.extend([ 'link=%s' % ','.join(linkTypes), - '--layout=tagged' + '--layout=%s' % layout ]) if not spec.satisfies('%intel'): @@ -223,6 +233,12 @@ class Boost(Package): return threadingOpts + def add_buildopt_symlinks(self, prefix): + with working_dir(prefix.lib): + for lib in os.listdir(os.curdir): + prefix, remainder = lib.split('.', 1) + symlink(lib, '%s-mt.%s' % (prefix, remainder)) + def install(self, spec, prefix): # On Darwin, Boost expects the Darwin libtool. However, one of the # dependencies may have pulled in Spack's GNU libtool, and these two @@ -281,11 +297,16 @@ class Boost(Package): threadingOpts = self.determine_b2_options(spec, b2_options) + b2('--clean') + # In theory it could be done on one call but it fails on # Boost.MPI if the threading options are not separated. for threadingOpt in threadingOpts: b2('install', 'threading=%s' % threadingOpt, *b2_options) + if '+multithreaded' in spec and '~taggedlayout' in spec: + self.add_buildopt_symlinks(prefix) + # The shared libraries are not installed correctly # on Darwin; correct this if (sys.platform == 'darwin') and ('+shared' in spec): diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index 9a9bc5bdbd..66e1197669 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -96,8 +96,7 @@ class Cantera(Package): options.extend([ 'build_thread_safe=yes', 'boost_inc_dir={0}'.format(spec['boost'].prefix.include), - 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib), - 'boost_thread_lib=boost_thread-mt,boost_system-mt' + 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib) ]) else: options.append('build_thread_safe=no') -- cgit v1.2.3-70-g09d2 From 907546b55e5cf6a43facfb53028c2e7b21480e7a Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Tue, 11 Oct 2016 10:19:12 +0200 Subject: libcerf: fix for modern clang (#1959) --- var/spack/repos/builtin/packages/libcerf/package.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py index 7fb47f8dcd..1964f03b95 100644 --- a/var/spack/repos/builtin/packages/libcerf/package.py +++ b/var/spack/repos/builtin/packages/libcerf/package.py @@ -38,6 +38,12 @@ class Libcerf(Package): version('1.3', 'b3504c467204df71e62aeccf73a25612') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + options = [] + # Clang reports unused functions as errors, see + # http://clang.debian.net/status.php?version=3.8.1&key=UNUSED_FUNCTION + if spec.satisfies('%clang'): + options.append('CFLAGS=-Wno-unused-function') + + configure('--prefix=%s' % prefix, *options) make() make("install") -- cgit v1.2.3-70-g09d2 From 6c250ab4860c69a00fec7574e7dd15b6341d00ee Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Tue, 11 Oct 2016 10:19:44 +0200 Subject: pango: add missing dependency (#1958) --- var/spack/repos/builtin/packages/pango/package.py | 1 + 1 file changed, 1 insertion(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index 75c4ac807d..5cf3edb8da 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -41,6 +41,7 @@ class Pango(Package): depends_on("pkg-config", type="build") depends_on("harfbuzz") depends_on("cairo") + depends_on("glib") def install(self, spec, prefix): configure("--prefix=%s" % prefix) -- cgit v1.2.3-70-g09d2 From 7fd639d6fcc8487ea156a778b28930c198ffb15e Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Tue, 11 Oct 2016 09:32:05 +0100 Subject: Update libjpeg-turbo: added new version and removed redundant dependency. (#1897) --- .../repos/builtin/packages/libjpeg-turbo/package.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index 6252a88542..3fe159d7b9 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -26,20 +26,25 @@ from spack import * class LibjpegTurbo(Package): - """libjpeg-turbo is a fork of the original IJG libjpeg which uses - SIMD to accelerate baseline JPEG compression and - decompression. libjpeg is a library that implements JPEG image - encoding, decoding and transcoding.""" + """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to + accelerate baseline JPEG compression and decompression. libjpeg is a + library that implements JPEG image encoding, decoding and + transcoding.""" + homepage = "http://libjpeg-turbo.virtualgl.org" url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz" + version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257') version('1.3.1', '2c3a68129dac443a72815ff5bb374b05') - # Can use either of these. - depends_on("yasm", type='build') + # Can use either of these. But in the current version of the package + # only nasm is used. In order to use yasm an environmental variable + # NASM must be set. + # TODO: Implement the selection between two supported assemblers. + # depends_on("yasm", type='build') depends_on("nasm", type='build') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure("--prefix=" + prefix) make() make("install") -- cgit v1.2.3-70-g09d2 From 5988b3a2224076438bc13ff51bd13a74c7725573 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 11 Oct 2016 03:36:40 -0500 Subject: More specific dependency versions, wrap make check (#1962) --- var/spack/repos/builtin/packages/hdf/package.py | 21 +++++++++++++-------- var/spack/repos/builtin/packages/hdf5/package.py | 6 +++++- var/spack/repos/builtin/packages/netcdf/package.py | 10 +++++++--- 3 files changed, 25 insertions(+), 12 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py index 37abb611d4..2554bd0f96 100644 --- a/var/spack/repos/builtin/packages/hdf/package.py +++ b/var/spack/repos/builtin/packages/hdf/package.py @@ -39,9 +39,9 @@ class Hdf(Package): 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') @@ -49,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 @@ -59,12 +59,17 @@ class Hdf(Package): '--enable-production' ] - # SZip support + # Szip support if '+szip' in spec: - config_args.append('--with-szlib=%s' % spec['szip'].prefix) + config_args.append('--with-szlib={0}'.format(spec['szip'].prefix)) + else: + config_args.append('--without-szlib') configure(*config_args) make() - make('check') + + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index c0635cfbfc..f2fe48feb3 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -60,7 +60,7 @@ class Hdf5(Package): depends_on("mpi", when='+mpi') depends_on("szip", when='+szip') - depends_on("zlib") + depends_on("zlib@1.1.2:") def validate(self, spec): """ @@ -144,6 +144,10 @@ class Hdf5(Package): "--with-zlib=%s" % spec['zlib'].prefix, *extra_args) make() + + if self.run_tests: + make("check") + make("install") self.check_install(spec) diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py index 5dc686c907..d4d7fd1691 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf/package.py @@ -46,10 +46,10 @@ class Netcdf(Package): depends_on("hdf", when='+hdf4') # Required for DAP support - depends_on("curl") + depends_on("curl@7.18.0:") # Required for NetCDF-4 support - depends_on("zlib") + depends_on("zlib@1.2.5:") depends_on('hdf5') # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later @@ -105,7 +105,7 @@ class Netcdf(Package): LDFLAGS.append("-L%s/lib" % spec['hdf'].prefix) LIBS.append("-l%s" % "jpeg") - if 'szip' in spec: + if '+szip' in spec: CPPFLAGS.append("-I%s/include" % spec['szip'].prefix) LDFLAGS.append("-L%s/lib" % spec['szip'].prefix) LIBS.append("-l%s" % "sz") @@ -120,4 +120,8 @@ class Netcdf(Package): configure(*config_args) make() + + if self.run_tests: + make("check") + make("install") -- cgit v1.2.3-70-g09d2 From 49aed3969cf2d70b93d68a74fc3d619b25b5fee6 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Tue, 11 Oct 2016 11:13:25 +0200 Subject: tethex: add a new package (#1991) --- var/spack/repos/builtin/packages/tethex/package.py | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 var/spack/repos/builtin/packages/tethex/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py new file mode 100644 index 0000000000..624942498e --- /dev/null +++ b/var/spack/repos/builtin/packages/tethex/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Tethex(Package): + """Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D) + Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes + can be used in software packages working with hexahedrals only - for + example, deal.II. + """ + + homepage = "https://github.com/martemyev/tethex" + url = "https://github.com/martemyev/tethex/archive/v0.0.7.tar.gz" + + version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184') + version('develop', git='https://github.com/martemyev/tethex.git') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + cmake('.') + make() + + # install by hand + mkdirp(prefix.bin) + install('tethex', prefix.bin) -- cgit v1.2.3-70-g09d2 From aa079dbdf1df4a9f78d60600d25514a7642a54be Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 11 Oct 2016 04:16:01 -0500 Subject: Add variant to MPICH to enable ROMIO support (#1944) --- var/spack/repos/builtin/packages/mpich/package.py | 64 +++++++++++------------ 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index a36ab4206e..8d1b23c5be 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -27,9 +27,10 @@ from spack import * class Mpich(Package): """MPICH is a high performance and widely portable implementation of - the Message Passing Interface (MPI) standard.""" + the Message Passing Interface (MPI) standard.""" + homepage = "http://www.mpich.org" - url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" + url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" list_url = "http://www.mpich.org/static/downloads/" list_depth = 2 @@ -41,10 +42,10 @@ class Mpich(Package): version('3.1', '5643dd176499bfb7d25079aaff25f2ec') version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') - variant('verbs', default=False, - description='Build support for OpenFabrics verbs.') - variant('pmi', default=True, description='Build with PMI support') - variant('hydra', default=True, description='Build the hydra process manager') + variant('hydra', default=True, description='Build the hydra process manager') + variant('pmi', default=True, description='Build with PMI support') + variant('romio', default=True, description='Enable ROMIO MPI I/O implementation') + variant('verbs', default=False, description='Build support for OpenFabrics verbs.') provides('mpi@:3.0', when='@3:') provides('mpi@:1.3', when='@1:') @@ -72,16 +73,14 @@ class Mpich(Package): ] 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 +95,33 @@ class Mpich(Package): config_args.append("--disable-fortran") configure(*config_args) + make() - make("install") + make('check') + make('install') - self.filter_compilers() + self.filter_compilers(prefix) - def filter_compilers(self): + def filter_compilers(self, prefix): """Run after install to make the MPI compilers use the - compilers that Spack built the package with. - - If this isn't done, they'll have CC, CXX, F77, and FC set - to Spack's generic cc, c++, f77, and f90. We want them to - be bound to whatever compiler they were built with. - """ - bin = self.prefix.bin - mpicc = join_path(bin, 'mpicc') - mpicxx = join_path(bin, 'mpicxx') - mpif77 = join_path(bin, 'mpif77') - mpif90 = join_path(bin, 'mpif90') + compilers that Spack built the package with. + + If this isn't done, they'll have CC, CXX, F77, and FC set + to Spack's generic cc, c++, f77, and f90. We want them to + be bound to whatever compiler they were built with.""" + + mpicc = join_path(prefix.bin, 'mpicc') + mpicxx = join_path(prefix.bin, 'mpicxx') + mpif77 = join_path(prefix.bin, 'mpif77') + mpif90 = join_path(prefix.bin, 'mpif90') # Substitute Spack compile wrappers for the real # underlying compiler kwargs = {'ignore_absent': True, 'backup': False, 'string': True} - filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs) + filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs) filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs) filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs) - filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs) + filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs) # Remove this linking flag if present # (it turns RPATH into RUNPATH) -- cgit v1.2.3-70-g09d2 From 4d939802ae208a79ef685fe59b204bcc86df4b6b Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Tue, 11 Oct 2016 15:48:16 +0200 Subject: hypre: fix blas/lapack for MKL (#1993) --- var/spack/repos/builtin/packages/hypre/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index f22303a864..53c3b851b3 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -61,9 +61,9 @@ class Hypre(Package): configure_args = [ '--prefix=%s' % prefix, '--with-lapack-libs=%s' % ' '.join(lapack.names), - '--with-lapack-lib-dirs=%s' % spec['lapack'].prefix.lib, + '--with-lapack-lib-dirs=%s' % ' '.join(lapack.directories), '--with-blas-libs=%s' % ' '.join(blas.names), - '--with-blas-lib-dirs=%s' % spec['blas'].prefix.lib + '--with-blas-lib-dirs=%s' % ' '.join(blas.directories) ] if '+shared' in self.spec: -- cgit v1.2.3-70-g09d2