From c8405b4b5f788ee968a0a7eb0ef0bfaaaf6b15cc Mon Sep 17 00:00:00 2001 From: Jon Rood Date: Wed, 4 Jan 2017 13:55:08 -0700 Subject: [PATCH 1/7] Renaming mkl to intel-mkl --- var/spack/repos/builtin/packages/{mkl => intel-mkl}/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename var/spack/repos/builtin/packages/{mkl => intel-mkl}/package.py (99%) diff --git a/var/spack/repos/builtin/packages/mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py similarity index 99% rename from var/spack/repos/builtin/packages/mkl/package.py rename to var/spack/repos/builtin/packages/intel-mkl/package.py index db133eefcb6..451ee1427e3 100644 --- a/var/spack/repos/builtin/packages/mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -28,7 +28,7 @@ from spack.pkg.builtin.intel import IntelInstaller -class Mkl(IntelInstaller): +class IntelMkl(IntelInstaller): """Intel Math Kernel Library. Note: You will have to add the download file to a From 01406251c9ab2be6b6dba6e789ab4445c4ade349 Mon Sep 17 00:00:00 2001 From: Jon Rood Date: Wed, 4 Jan 2017 14:02:23 -0700 Subject: [PATCH 2/7] Intel-mkl provides mkl --- var/spack/repos/builtin/packages/intel-mkl/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py index 451ee1427e3..f369e10d38c 100644 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -55,6 +55,7 @@ class IntelMkl(IntelInstaller): # virtual dependency provides('blas') provides('lapack') + provides('mkl') # TODO: MKL also provides implementation of Scalapack. @property From 8dc056130cb25990408464d55f1011175e27087e Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 5 Jan 2017 22:20:55 -0700 Subject: [PATCH 3/7] espressopp: package for the ESPResSo++ software (#2602) * espressopp: package for the ESPResSo++ software This commit adds a package for the ESPResSo++ simulation software. * Move Espressopp package to CMakePackage This commit moves Espressopp package to CMakePackage. Addresses some comments in the PR. * Remove run_tests and changed type of dependencies Addressed some comments from @adamjstewart. Removed global run_tests setting and removed type from many dependencies. Set type for py-mpi4py to 'nolink'. * Updated to last version and fix mpi4py dependency Added latest espressopp version and changed mpi4py (version) dependency for different espressopp versions. * Changed mpi4py version requirements for espressopp Changed py-mpi4py version requirements for espressopp@1.9.4 according to the package build requirements for that version. --- .../builtin/packages/espressopp/package.py | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 var/spack/repos/builtin/packages/espressopp/package.py diff --git a/var/spack/repos/builtin/packages/espressopp/package.py b/var/spack/repos/builtin/packages/espressopp/package.py new file mode 100644 index 00000000000..ddc98f07c5a --- /dev/null +++ b/var/spack/repos/builtin/packages/espressopp/package.py @@ -0,0 +1,79 @@ +############################################################################## +# 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 Espressopp(CMakePackage): + """ESPResSo++ is an extensible, flexible, fast and parallel simulation + software for soft matter research. It is a highly versatile software + package for the scientific simulation and analysis of coarse-grained + atomistic or bead-spring models as they are used in soft matter research + """ + homepage = "https://espressopp.github.io" + url = "https://github.com/espressopp/espressopp/tarball/v1.9.4.1" + + version('develop', git='https://github.com/espressopp/espressopp.git', branch='master') + version('1.9.4.1', '0da74a6d4e1bfa6a2a24fca354245a4f') + version('1.9.4', 'f2a27993a83547ad014335006eea74ea') + + variant('debug', default=False, description='Build debug version') + variant('ug', default=False, description='Build user guide') + variant('pdf', default=False, description='Build user guide in pdf format') + variant('dg', default=False, description='Build developer guide') + + depends_on("cmake@2.8:", type='build') + depends_on("mpi") + depends_on("boost+serialization+filesystem+system+python+mpi", when='@1.9.4:') + extends("python") + depends_on("python@2:2.7.13") + depends_on("py-mpi4py@2.0.0:", when='@1.9.4', type='nolink') + depends_on("py-mpi4py@1.3.1:", when='@1.9.4.1:', type='nolink') + depends_on("fftw") + depends_on("py-sphinx", when="+ug", type='build') + depends_on("py-sphinx", when="+pdf", type='build') + depends_on("texlive", when="+pdf", type='build') + depends_on("doxygen", when="+dg", type='build') + + def cmake_args(self): + spec = self.spec + options = [] + options.extend(['-DEXTERNAL_MPI4PY=ON', '-DEXTERNAL_BOOST=ON']) + if '+debug' in spec: + options.extend(['-DCMAKE_BUILD_TYPE:STRING=Debug']) + else: + options.extend(['-DCMAKE_BUILD_TYPE:STRING=Release']) + + return options + + def build(self, spec, prefix): + with working_dir(self.build_directory()): + make() + if '+ug' in spec: + make("ug", parallel=False) + if '+pdf' in spec: + make("ug-pdf", parallel=False) + if '+dg' in spec: + make("doc", parallel=False) From 7b337de93e29638b7f040d64c8742d6f1b64767d Mon Sep 17 00:00:00 2001 From: Gregory Lee Date: Fri, 6 Jan 2017 08:50:06 -0800 Subject: [PATCH 4/7] various python package version and dependency updates (#2751) * various python package version and dependency updates * various python package version and dependency updates --- .../repos/builtin/packages/py-logilab-common/package.py | 2 +- var/spack/repos/builtin/packages/py-pylint/package.py | 5 ++++- var/spack/repos/builtin/packages/py-pyside/package.py | 1 + var/spack/repos/builtin/packages/py-pytables/package.py | 2 ++ var/spack/repos/builtin/packages/py-rpy2/package.py | 1 + var/spack/repos/builtin/packages/py-six/package.py | 2 +- var/spack/repos/builtin/packages/python/package.py | 1 + 7 files changed, 11 insertions(+), 3 deletions(-) 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 e66cdc84799..b8ca85eb3bb 100644 --- a/var/spack/repos/builtin/packages/py-logilab-common/package.py +++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py @@ -33,7 +33,7 @@ class PyLogilabCommon(Package): version('1.2.0', 'f7b51351b7bfe052746fa04c03253c0b') - extends("python") + extends('python', ignore=r'bin/pytest') depends_on("py-setuptools", type='build') depends_on("py-six", type=nolink) diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py index 10f60f0ab97..8b7c52c7409 100644 --- a/var/spack/repos/builtin/packages/py-pylint/package.py +++ b/var/spack/repos/builtin/packages/py-pylint/package.py @@ -33,7 +33,10 @@ class PyPylint(Package): version('1.4.1', 'df7c679bdcce5019389038847e4de622') version('1.4.3', '5924c1c7ca5ca23647812f5971d0ea44') - extends('python') + extends('python', ignore=r'bin/pytest') + depends_on('py-six', type=nolink) + depends_on('py-astroid', type=nolink) + depends_on('py-logilab-common', type=nolink) depends_on('py-nose', type='build') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py index e575864fab2..e6c115027ef 100644 --- a/var/spack/repos/builtin/packages/py-pyside/package.py +++ b/var/spack/repos/builtin/packages/py-pyside/package.py @@ -38,6 +38,7 @@ class PyPyside(Package): extends('python') depends_on('py-setuptools', type='build') + depends_on('py-sphinx', type=nolink) depends_on('qt@4.5:4.9') depends_on('libxml2@2.6.32:') depends_on('libxslt@1.1.19:') diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py index 289d76242bb..30d8fab87a3 100644 --- a/var/spack/repos/builtin/packages/py-pytables/package.py +++ b/var/spack/repos/builtin/packages/py-pytables/package.py @@ -31,6 +31,8 @@ class PyPytables(Package): homepage = "http://www.pytables.org/" url = "https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz" + version('3.3.0', '056c161ae0fd2d6e585b766adacf3b0b', + url='https://github.com/PyTables/PyTables/archive/v3.3.0.tar.gz') version('3.2.2', '7cbb0972e4d6580f629996a5bed92441') extends('python') diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py index 9db55e949bb..ec3ced22f14 100644 --- a/var/spack/repos/builtin/packages/py-rpy2/package.py +++ b/var/spack/repos/builtin/packages/py-rpy2/package.py @@ -39,6 +39,7 @@ class PyRpy2(Package): version('2.5.6', 'a36e758b633ce6aec6a5f450bfee980f') extends('python') + depends_on('py-six', type=nolink) depends_on('py-setuptools', type='build') depends_on('R') diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py index e7b71775863..6298f39f32f 100644 --- a/var/spack/repos/builtin/packages/py-six/package.py +++ b/var/spack/repos/builtin/packages/py-six/package.py @@ -34,7 +34,7 @@ class PySix(Package): version('1.10.0', '34eed507548117b2ab523ab14b2f8b55') version('1.9.0', '476881ef4012262dfc8adc645ee786c4') - extends('python') + extends('python', ignore=r'bin/pytest') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 9360ecdec0f..f9b953a009b 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -44,6 +44,7 @@ class Python(Package): list_url = "https://www.python.org/downloads/" list_depth = 2 + version('3.6.0', '3f7062ccf8be76491884d0e47ac8b251') version('3.5.2', '3fe8434643a78630c61c6464fe2e7e72') version('3.5.1', 'be78e48cdfc1a7ad90efff146dce6cfe') version('3.5.0', 'a56c0c0b45d75a0ec9c6dee933c41c36') From 05d77917fd890138c0c51b4802a4b1faed77d986 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Fri, 6 Jan 2017 17:53:19 +0100 Subject: [PATCH 5/7] GitLab: Tarball Version Test (#2296) * GitLab: Tarball Version Test Upload a test demonstrating #2290 * Add GitLab parsing --- lib/spack/spack/test/url_parse.py | 14 ++++++++++++++ lib/spack/spack/url.py | 17 +++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py index 1466698dbf7..c4718d56b84 100644 --- a/lib/spack/spack/test/url_parse.py +++ b/lib/spack/spack/test/url_parse.py @@ -154,6 +154,20 @@ def test_version_regular(self): 'foo-bar', '1.21', 'http://example.com/foo_bar-1.21.tar.gz') + def test_version_gitlab(self): + self.check( + 'vtk', '7.0.0', + 'https://gitlab.kitware.com/vtk/vtk/repository/' + 'archive.tar.bz2?ref=v7.0.0') + self.check( + 'icet', '1.2.3', + 'https://gitlab.kitware.com/icet/icet/repository/' + 'archive.tar.gz?ref=IceT-1.2.3') + self.check( + 'foo', '42.1337', + 'http://example.com/org/foo/repository/' + 'archive.zip?ref=42.1337bar') + def test_version_github(self): self.check( 'yajl', '1.0.5', diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index 85311ba64ca..a1eec6067ea 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -106,19 +106,22 @@ def split_url_extension(path): 1. https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7.tgz?raw=true 2. http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin.tar.gz + 3. https://gitlab.kitware.com/vtk/vtk/repository/archive.tar.bz2?ref=v7.0.0 In (1), the query string needs to be stripped to get at the - extension, but in (2), the filename is IN a single final query + extension, but in (2) & (3), the filename is IN a single final query argument. This strips the URL into three pieces: prefix, ext, and suffix. The suffix contains anything that was stripped off the URL to get at the file extension. In (1), it will be '?raw=true', but - in (2), it will be empty. e.g.: + in (2), it will be empty. In (3) the suffix is a parameter that follows + after the file extension, e.g.: 1. ('https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7', '.tgz', '?raw=true') 2. ('http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin', '.tar.gz', None) + 3. ('https://gitlab.kitware.com/vtk/vtk/repository/archive', '.tar.bz2', '?ref=v7.0.0') """ prefix, ext, suffix = path, '', '' @@ -203,6 +206,15 @@ def parse_version_offset(path, debug=False): # https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz (r'github.com/[^/]+/[^/]+/releases/download/v?([^/]+)/.*$', path), + # GitLab syntax: + # {baseUrl}{/organization}{/projectName}/repository/archive.{fileEnding}?ref={gitTag} + # as with github releases, we hope a version can be found in the + # git tag + # Search dotted versions: + # e.g., https://gitlab.kitware.com/vtk/vtk/repository/archive.tar.bz2?ref=v7.0.0 + # e.g., https://example.com/org/repo/repository/archive.tar.bz2?ref=SomePrefix-2.1.1 + (r'\?ref=(?:.*-|v)*((\d+\.)+\d+).*$', suffix), + # e.g. boost_1_39_0 (r'((\d+_)+\d+)$', stem), @@ -291,6 +303,7 @@ def parse_name_offset(path, v=None, debug=False): (r'/([^/]+)/(tarball|zipball)/', path), (r'/([^/]+)[_.-](bin|dist|stable|src|sources)[_.-]%s' % v, path), (r'github.com/[^/]+/([^/]+)/archive', path), + (r'[^/]+/([^/]+)/repository/archive', path), # gitlab (r'([^/]+)[_.-]v?%s' % v, stem), # prefer the stem (r'([^/]+)%s' % v, stem), From 2f173bda9cf06280f945190942369afaa71e2bb4 Mon Sep 17 00:00:00 2001 From: Bruno Turcksin Date: Fri, 6 Jan 2017 14:44:41 -0500 Subject: [PATCH 6/7] Add boost 1.63.0 (#2743) --- var/spack/repos/builtin/packages/boost/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 309184101b3..fa3f66d8f48 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -42,6 +42,7 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 + version('1.63.0', '1c837ecd990bb022d07e7aab32b09847') version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') version('1.61.0', '6095876341956f65f9d35939ccea1a9f') version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe') From e39ba88e9c2f4c9409771982e0b12e25d97c359a Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Fri, 6 Jan 2017 12:33:51 -0800 Subject: [PATCH 7/7] add conduit 0.2.1 release (#2766) --- var/spack/repos/builtin/packages/conduit/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index ce1affc0cdb..9715542126e 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -45,8 +45,9 @@ class Conduit(Package): coupling between packages in-core, serialization, and I/O tasks.""" homepage = "http://software.llnl.gov/conduit" - url = "https://github.com/LLNL/conduit/archive/v0.2.0.tar.gz" + url = "https://github.com/LLNL/conduit/archive/v0.2.1.tar.gz" + version('0.2.1', 'cd2b42c76f70ac3546582b6da77c6028') version('0.2.0', 'd595573dedf55514c11d7391092fd760') version('master', git='https://github.com/LLNL/conduit.git')