From 48588cb1d89b45a947a0fe2d27d41b40b251e536 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 18 May 2017 10:06:44 -0500 Subject: [PATCH 1/5] Add a new package for Open Babel (#4256) * Add a new package for Open Babel * Add post-installation tests, stolen from the fine folks at Homebrew * Add patch to fix Python 3.6 support * Add a more complete patch to get Python 3.6 support working * Add patch to convert tabs to spaces in test script testpdbformat.py contains mixed tabs and spaces causing the unit tests to fail. With this patch, all tests pass with flying colors. --- .../builtin/packages/openbabel/package.py | 80 +++++++++++++++++++ .../openbabel/python-3.6-rtld-global.patch | 42 ++++++++++ .../testpdbformat-tabs-to-spaces.patch | 47 +++++++++++ 3 files changed, 169 insertions(+) create mode 100644 var/spack/repos/builtin/packages/openbabel/package.py create mode 100644 var/spack/repos/builtin/packages/openbabel/python-3.6-rtld-global.patch create mode 100644 var/spack/repos/builtin/packages/openbabel/testpdbformat-tabs-to-spaces.patch diff --git a/var/spack/repos/builtin/packages/openbabel/package.py b/var/spack/repos/builtin/packages/openbabel/package.py new file mode 100644 index 00000000000..014d1183f35 --- /dev/null +++ b/var/spack/repos/builtin/packages/openbabel/package.py @@ -0,0 +1,80 @@ +############################################################################## +# 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 Openbabel(CMakePackage): + """Open Babel is a chemical toolbox designed to speak the many languages + of chemical data. It's an open, collaborative project allowing anyone to + search, convert, analyze, or store data from molecular modeling, chemistry, + solid-state materials, biochemistry, or related areas.""" + + homepage = "http://openbabel.org/wiki/Main_Page" + url = "https://sourceforge.net/projects/openbabel/files/openbabel/2.4.1/openbabel-2.4.1.tar.gz" + + version('2.4.1', 'd9defcd7830b0592fece4fe54a137b99') + + variant('python', default=True, description='Build Python bindings') + + extends('python', when='+python') + + depends_on('python', type=('build', 'run'), when='+python') + depends_on('cmake@2.4.8:', type='build') + depends_on('pkg-config', type='build') + depends_on('cairo') # required to support PNG depiction + depends_on('eigen@3.0:') # required if using the language bindings + depends_on('libxml2') # required to read/write CML files, XML formats + depends_on('zlib') # required to support reading gzipped files + + # Needed for Python 3.6 support + patch('python-3.6-rtld-global.patch', when='@:2.4.1+python') + + # Convert tabs to spaces. Allows unit tests to pass + patch('testpdbformat-tabs-to-spaces.patch', when='@:2.4.1') + + def cmake_args(self): + spec = self.spec + args = [] + + if '+python' in spec: + args.extend([ + '-DPYTHON_BINDINGS=ON', + '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path), + ]) + else: + args.append('-DPYTHON_BINDINGS=OFF') + + return args + + @run_after('install') + @on_package_attributes(run_tests=True) + def check_install(self): + obabel = Executable(join_path(self.prefix.bin, 'obabel')) + obabel('-:C1=CC=CC=C1Br', '-omol') + + if '+python' in self.spec: + # Attempt to import the Python modules + for module in ['openbabel', 'pybel']: + python('-c', 'import {0}'.format(module)) diff --git a/var/spack/repos/builtin/packages/openbabel/python-3.6-rtld-global.patch b/var/spack/repos/builtin/packages/openbabel/python-3.6-rtld-global.patch new file mode 100644 index 00000000000..68cd56a1f5c --- /dev/null +++ b/var/spack/repos/builtin/packages/openbabel/python-3.6-rtld-global.patch @@ -0,0 +1,42 @@ +The DLFCN module has been removed from python 3.6, as it is not +documented. Same funtionality can be achive with the os module +that makes available the os.RTLD_GLOBAL variable for dlopen() + +See https://github.com/openbabel/openbabel/pull/372 for the +source of this patch. The original patch only affects the CMake +file that SWIG uses to generate openbabel.py. This patch also +includes changes to openbabel.py. + +diff -Nuar a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt +--- a/scripts/CMakeLists.txt 2017-05-17 10:02:54.408527942 -0500 ++++ b/scripts/CMakeLists.txt 2017-05-17 10:04:09.701598715 -0500 +@@ -81,11 +81,8 @@ + COMMAND ${SWIG_EXECUTABLE} -python -c++ -small -O -templatereduce -naturalvar -I${openbabel_SOURCE_DIR}/include -I${openbabel_BINARY_DIR}/include -o ${openbabel_SOURCE_DIR}/scripts/python/openbabel-python.cpp ${eigen_define} -outdir ${openbabel_SOURCE_DIR}/scripts/python ${openbabel_SOURCE_DIR}/scripts/openbabel-python.i + COMMAND ${CMAKE_COMMAND} -E echo "import sys" > ob.py + COMMAND ${CMAKE_COMMAND} -E echo "if sys.platform.find('linux'\) != -1:" >> ob.py +- COMMAND ${CMAKE_COMMAND} -E echo " try:" >> ob.py +- COMMAND ${CMAKE_COMMAND} -E echo " import dl" >> ob.py +- COMMAND ${CMAKE_COMMAND} -E echo " except ImportError:" >> ob.py +- COMMAND ${CMAKE_COMMAND} -E echo " import DLFCN as dl" >> ob.py +- COMMAND ${CMAKE_COMMAND} -E echo " sys.setdlopenflags(sys.getdlopenflags() | dl.RTLD_GLOBAL)" >> ob.py ++ COMMAND ${CMAKE_COMMAND} -E echo " import os" >> ob.py ++ COMMAND ${CMAKE_COMMAND} -E echo " sys.setdlopenflags(sys.getdlopenflags() | os.RTLD_GLOBAL)" >> ob.py + COMMAND cat ${openbabel_SOURCE_DIR}/scripts/python/openbabel.py >> ob.py + COMMAND ${CMAKE_COMMAND} -E copy ob.py ${openbabel_SOURCE_DIR}/scripts/python/openbabel.py + COMMAND ${CMAKE_COMMAND} -E remove ob.py +diff -Nuar a/scripts/python/openbabel.py b/scripts/python/openbabel.py +--- a/scripts/python/openbabel.py 2017-05-17 10:02:54.398527534 -0500 ++++ b/scripts/python/openbabel.py 2017-05-17 10:04:26.705292138 -0500 +@@ -1,10 +1,7 @@ + import sys + if sys.platform.find('linux') != -1: +- try: +- import dl +- except ImportError: +- import DLFCN as dl +- sys.setdlopenflags(sys.getdlopenflags() | dl.RTLD_GLOBAL) ++ import os ++ sys.setdlopenflags(sys.getdlopenflags() | os.RTLD_GLOBAL) + # This file was automatically generated by SWIG (http://www.swig.org). + # Version 3.0.10 + # diff --git a/var/spack/repos/builtin/packages/openbabel/testpdbformat-tabs-to-spaces.patch b/var/spack/repos/builtin/packages/openbabel/testpdbformat-tabs-to-spaces.patch new file mode 100644 index 00000000000..0a71a72e014 --- /dev/null +++ b/var/spack/repos/builtin/packages/openbabel/testpdbformat-tabs-to-spaces.patch @@ -0,0 +1,47 @@ +From 08cd38485d4cf1df8802da540f3018921dbc735e Mon Sep 17 00:00:00 2001 +From: "Adam J. Stewart" +Date: Wed, 17 May 2017 10:56:23 -0500 +Subject: [PATCH] Convert tabs to spaces in testpdbformat.py + +See https://github.com/openbabel/openbabel/pull/1568 + +--- + test/testpdbformat.py | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/test/testpdbformat.py b/test/testpdbformat.py +index 40bd316..ceb8496 100644 +--- a/test/testpdbformat.py ++++ b/test/testpdbformat.py +@@ -24,12 +24,12 @@ class TestPDBFormat(BaseTest): + + def testInsertionCodes(self): + """ +- Testing a PDB entry with insertion codes to distinguish residues +- upon conversion to FASTA. ++ Testing a PDB entry with insertion codes to distinguish residues ++ upon conversion to FASTA. + """ + self.canFindExecutable("babel") + +- self.entryPDBwithInsertioncodes="""ATOM 406 N VAL L 29 58.041 17.797 48.254 1.00 0.00 N ++ self.entryPDBwithInsertioncodes="""ATOM 406 N VAL L 29 58.041 17.797 48.254 1.00 0.00 N + ATOM 407 CA VAL L 29 57.124 18.088 47.170 1.00 0.00 C + ATOM 408 C VAL L 29 55.739 17.571 47.538 1.00 0.00 C + ATOM 409 O VAL L 29 55.535 16.362 47.550 1.00 0.00 O +@@ -100,9 +100,9 @@ ATOM 473 HE1 TYR L 32 48.512 15.775 42.066 1.00 0.00 H + ATOM 474 HE2 TYR L 32 48.145 19.172 44.648 1.00 0.00 H + ATOM 475 HH TYR L 32 46.462 17.658 44.280 1.00 0.00 H + """ +- output, error = run_exec(self.entryPDBwithInsertioncodes, +- "babel -ipdb -ofasta") +- self.assertEqual(output.rstrip().rsplit("\n",1)[1], "VSSSY") ++ output, error = run_exec(self.entryPDBwithInsertioncodes, ++ "babel -ipdb -ofasta") ++ self.assertEqual(output.rstrip().rsplit("\n",1)[1], "VSSSY") + + if __name__ == "__main__": + testsuite = [] +-- +2.9.4 + From a29921b99500744f575eb2489ca4cc1103555cbd Mon Sep 17 00:00:00 2001 From: Patrick Gartung Date: Thu, 18 May 2017 10:11:27 -0500 Subject: [PATCH 2/5] =?UTF-8?q?Add=20the=20gnupg=20package=20and=20missing?= =?UTF-8?q?=20dependencies.=20Update=20versions=20of=20ex=E2=80=A6=20(#428?= =?UTF-8?q?1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add the gnupg package and missing dependencies. Update versions of existing dependencies. * this ended up in the wrong repo * put versions back, remove uneeded function * OK ;) * autopep8 * typo on npth line * whitespace --- .../repos/builtin/packages/gnupg/package.py | 50 +++++++++++++++++++ .../builtin/packages/libassuan/package.py | 41 +++++++++++++++ .../builtin/packages/libgcrypt/package.py | 3 +- .../builtin/packages/libgpg-error/package.py | 3 +- .../repos/builtin/packages/libksba/package.py | 41 +++++++++++++++ .../repos/builtin/packages/npth/package.py | 35 +++++++++++++ 6 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin/packages/gnupg/package.py create mode 100644 var/spack/repos/builtin/packages/libassuan/package.py create mode 100644 var/spack/repos/builtin/packages/libksba/package.py create mode 100644 var/spack/repos/builtin/packages/npth/package.py diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py new file mode 100644 index 00000000000..0239c15d0e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/gnupg/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Gnupg(AutotoolsPackage): + """GnuPG is a complete and free implementation of the OpenPGP + standard as defined by RFC4880 """ + + homepage = "https://gnupg.org/index.html" + url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.1.21.tar.bz2" + + version('2.1.21', '685ebf4c3a7134ba0209c96b18b2f064') + + depends_on('libgcrypt') + depends_on('libassuan') + depends_on('libksba') + depends_on('libgpg-error') + depends_on('npth') + + def configure_args(self): + args = ['--with-npth-prefix=%s' % self.spec['npth'].prefix, + '--with-libgcrypt-prefix=%s' % self.spec['libgcrypt'].prefix, + '--with-libksba-prefixx=%s' % self.spec['libksba'].prefix, + '--with-libassuan-prefix=%s' % self.spec['libassuan'].prefix, + '--with-libpgp-error-prefix=%s' % + self.spec['libgpg-error'].prefix] + return args diff --git a/var/spack/repos/builtin/packages/libassuan/package.py b/var/spack/repos/builtin/packages/libassuan/package.py new file mode 100644 index 00000000000..9c53bd5e4b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/libassuan/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 Libassuan(AutotoolsPackage): + """Libassuan is a small library implementing the so-called Assuan + protocol.""" + + homepage = "https://gnupg.org/software/libassuan/index.html" + url = "https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.4.3.tar.bz2" + + version('2.4.3', '8e01a7c72d3e5d154481230668e6eb5a') + + depends_on('libgpg-error') + + def configure_args(self): + args = ['--with-libgpp-error=%s' % self.spec['libgpg-error'].prefix] + return args diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py index 1eae9c6530a..b196adc18b9 100644 --- a/var/spack/repos/builtin/packages/libgcrypt/package.py +++ b/var/spack/repos/builtin/packages/libgcrypt/package.py @@ -32,8 +32,9 @@ class Libgcrypt(AutotoolsPackage): key algorithms, large integer functions, random numbers and a lot of supporting functions. """ homepage = "http://www.gnu.org/software/libgcrypt/" - url = "http://gd.tuwien.ac.at/pub/gnupg/libgcrypt/libgcrypt-1.6.2.tar.bz2" + url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.7.6.tar.bz2" + version('1.7.6', '54e180679a7ae4d090f8689ca32b654c') version('1.6.2', 'b54395a93cb1e57619943c082da09d5f') depends_on("libgpg-error") diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py index 67cd1759c0c..e0565f2c4cf 100644 --- a/var/spack/repos/builtin/packages/libgpg-error/package.py +++ b/var/spack/repos/builtin/packages/libgpg-error/package.py @@ -32,7 +32,8 @@ class LibgpgError(AutotoolsPackage): SmartCard Daemon and possibly more in the future. """ homepage = "https://www.gnupg.org/related_software/libgpg-error" - url = "http://gd.tuwien.ac.at/pub/gnupg/libgpg-error/libgpg-error-1.18.tar.bz2" + url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.27.tar.bz2" + version('1.27', '5217ef3e76a7275a2a3b569a12ddc989') version('1.21', 'ab0b5aba6d0a185b41d07bda804fd8b2') version('1.18', '12312802d2065774b787cbfc22cc04e9') diff --git a/var/spack/repos/builtin/packages/libksba/package.py b/var/spack/repos/builtin/packages/libksba/package.py new file mode 100644 index 00000000000..ab9bcedc27e --- /dev/null +++ b/var/spack/repos/builtin/packages/libksba/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 Libksba(AutotoolsPackage): + """Libksba is a library to make the tasks of working with X.509 + certificates, CMS data and related objects more easy. """ + + homepage = "https://gnupg.org/software/libksba/index.html" + url = "https://gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2" + + version('1.3.5', '8302a3e263a7c630aa7dea7d341f07a2') + + depends_on('libgpg-error') + + def configure_args(self): + args = ['--with-libgpp-error=%s' % self.spec['libgpg-error'].prefix] + return args diff --git a/var/spack/repos/builtin/packages/npth/package.py b/var/spack/repos/builtin/packages/npth/package.py new file mode 100644 index 00000000000..ac4264036cb --- /dev/null +++ b/var/spack/repos/builtin/packages/npth/package.py @@ -0,0 +1,35 @@ +############################################################################## +# 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 Npth(AutotoolsPackage): + """nPth is a library to provide the GNU Pth API and thus a + non-preemptive threads implementation.""" + + homepage = "https://gnupg.org/software/npth/index.html" + url = "https://gnupg.org/ftp/gcrypt/npth/npth-1.4.tar.bz2" + + version('1.4', '76cef5542e0db6a339cf960641ed86f8') From 5486d021d686f256a008dd9ab90dfb5b9fa60967 Mon Sep 17 00:00:00 2001 From: Tom Merrick Date: Thu, 18 May 2017 11:24:40 -0500 Subject: [PATCH 3/5] Add mpi support to R (#4286) --- .../repos/builtin/packages/r-rmpi/package.py | 55 +++++++++++++++++++ .../repos/builtin/packages/r-snow/package.py | 38 +++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 var/spack/repos/builtin/packages/r-rmpi/package.py create mode 100644 var/spack/repos/builtin/packages/r-snow/package.py diff --git a/var/spack/repos/builtin/packages/r-rmpi/package.py b/var/spack/repos/builtin/packages/r-rmpi/package.py new file mode 100644 index 00000000000..7b955545d8f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rmpi/package.py @@ -0,0 +1,55 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class RRmpi(RPackage): + """An interface (wrapper) to MPI APIs. It also provides interactive R + manager and worker environment.""" + + homepage = "http://www.stats.uwo.ca/faculty/yu/Rmpi" + url = "https://cran.r-project.org/src/contrib/Rmpi_0.6-6.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/Rmpi" + + version('0.6-6', '59ae8ce62ff0ff99342d53942c745779') + + depends_on('mpi') + depends_on('r@2.15.1:') + + def install(self, spec, prefix): + if 'mpich' in spec: + Rmpi_type = 'MPICH' + elif 'mvapich' in spec: + Rmpi_type = 'MVAPICH' + else: + Rmpi_type = 'OPENMPI' + + my_mpi = spec['mpi'] + + R('CMD', 'INSTALL', + '--configure-args=--with-Rmpi-type=%s' % Rmpi_type + + ' --with-mpi=%s' % my_mpi.prefix, + '--library={0}'.format(self.module.r_lib_dir), + self.stage.source_path) diff --git a/var/spack/repos/builtin/packages/r-snow/package.py b/var/spack/repos/builtin/packages/r-snow/package.py new file mode 100644 index 00000000000..662cdd80a74 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-snow/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 RSnow(RPackage): + """Support for simple parallel computing in R.""" + + homepage = "https://cran.r-project.org/web/packages/snow/index.html" + url = "https://cran.r-project.org/src/contrib/snow_0.4-2.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/snow" + + version('0.4-2', 'afc7b0dfd4518aedb6fc81712fd2ac70') + + depends_on('r-rmpi', type='run') + depends_on('r@2.13.1:', type=('build', 'run')) From fa90a65d0964bbaaea4f267d5634c0410e0c773e Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 18 May 2017 12:12:08 -0500 Subject: [PATCH 4/5] Fix spec['python'].home (#4228) --- var/spack/repos/builtin/packages/python/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 12b77813d1c..c5f0f23d6d6 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -531,6 +531,8 @@ def setup_dependent_package(self, module, dependent_spec): module.site_packages_dir = join_path(dependent_spec.prefix, self.site_packages_dir) + self.spec.home = self.home + # Make the site packages directory for extensions if dependent_spec.package.is_extension: mkdirp(module.site_packages_dir) From 04ccb8f774ebe415e0cc7c8a37fc6662a0125f73 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 18 May 2017 13:22:09 -0500 Subject: [PATCH 5/5] Add old version of ROOT 5 (#4288) --- var/spack/repos/builtin/packages/root/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index b1e7cc6834f..ca77b8fba5d 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -44,6 +44,7 @@ class Root(CMakePackage): version('6.06.06', '4308449892210c8d36e36924261fea26') version('6.06.04', '55a2f98dd4cea79c9c4e32407c2d6d17') version('6.06.02', 'e9b8b86838f65b0a78d8d02c66c2ec55') + version('5.34.36', '6a1ad549b3b79b10bbb1f116b49067ee') if sys.platform == 'darwin': patch('math_uint.patch', when='@6.06.02')