Merge branch 'develop' into features/shared

This commit is contained in:
Carson Woods
2019-11-17 16:37:47 -07:00
79 changed files with 1273 additions and 296 deletions

View File

@@ -80,6 +80,14 @@ config:
verify_ssl: true
# Suppress gpg warnings from binary package verification
# Only suppresses warnings, gpg failure will still fail the install
# Potential rationale to set True: users have already explicitly trusted the
# gpg key they are using, and may not want to see repeated warnings that it
# is self-signed or something of the sort.
suppress_gpg_warnings: false
# If set to true, Spack will attempt to build any compiler on the spec
# that is not already available. If set to False, Spack will only use
# compilers already configured in compilers.yaml

View File

@@ -176,7 +176,25 @@ def setup(sphinx):
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# We use our own extension of the default style with a few modifications
from pygments.style import Style
from pygments.styles.default import DefaultStyle
from pygments.token import Generic, Comment, Text
class SpackStyle(DefaultStyle):
styles = DefaultStyle.styles.copy()
background_color = "#f4f4f8"
styles[Generic.Output] = "#355"
styles[Generic.Prompt] = "bold #346ec9"
import pkg_resources
dist = pkg_resources.Distribution(__file__)
sys.path.append('.') # make 'conf' module findable
ep = pkg_resources.EntryPoint.parse('spack = conf:SpackStyle', dist=dist)
dist._ep_map = {'pygments.styles': {'plugin1': ep}}
pkg_resources.working_set.add(dist)
pygments_style = 'spack'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []

View File

@@ -136,6 +136,10 @@ generates a boilerplate template for your package, and opens up the new
homepage = "http://www.example.com"
url = "https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2"
# FIXME: Add a list of GitHub accounts to
# notify when the package is updated.
# maintainers = ['github_user1', 'github_user2']
version('6.1.2', '8ddbb26dc3bd4e2302984debba1406a5')
version('6.1.1', '4c175f86e11eb32d8bf9872ca3a8e11d')
version('6.1.0', '86ee6e54ebfc4a90b643a65e402c4048')
@@ -184,6 +188,17 @@ The rest of the tasks you need to do are as follows:
The ``homepage`` is displayed when users run ``spack info`` so
that they can learn more about your package.
#. Add a comma-separated list of maintainers.
The ``maintainers`` field is a list of GitHub accounts of people
who want to be notified any time the package is modified. When a
pull request is submitted that updates the package, these people
will be requested to review the PR. This is useful for developers
who maintain a Spack package for their own software, as well as
users who rely on a piece of software and want to ensure that the
package doesn't break. It also gives users a list of people to
contact for help when someone reports a build error with the package.
#. Add ``depends_on()`` calls for the package's dependencies.
``depends_on`` tells Spack that other packages need to be built
@@ -1464,8 +1479,8 @@ that the same package with different patches applied will have different
hash identifiers. To ensure that the hashing scheme is consistent, you
must use a ``sha256`` checksum for the patch. Patches will be fetched
from their URLs, checked, and applied to your source code. You can use
the ``spack sha256`` command to generate a checksum for a patch file or
URL.
the GNU utils ``sha256sum`` or the macOS ``shasum -a 256`` commands to
generate a checksum for a patch file.
Spack can also handle compressed patches. If you use these, Spack needs
a little more help. Specifically, it needs *two* checksums: the

View File

@@ -21,6 +21,7 @@
from llnl.util.filesystem import mkdirp, install_tree
import spack.cmd
import spack.config as config
import spack.fetch_strategy as fs
import spack.util.gpg as gpg_util
import spack.relocate as relocate
@@ -536,7 +537,22 @@ def relocate_package(workdir, spec, allow_root):
newprefix=new_prefix)
# If the binary files in the package were not edited to use
# relative RPATHs, then the RPATHs need to be relocated
if not rel:
if rel:
if old_path != new_path:
files_to_relocate = list(filter(
lambda pathname: not relocate.file_is_relocatable(
pathname, paths_to_relocate=[old_path, old_prefix]),
map(lambda filename: os.path.join(workdir, filename),
buildinfo['relocate_binaries'])))
if len(old_path) < len(new_path) and files_to_relocate:
tty.debug('Cannot do a binary string replacement with padding '
'for package because %s is longer than %s.' %
(new_path, old_path))
else:
for path_name in files_to_relocate:
relocate.replace_prefix_bin(path_name, old_path, new_path)
else:
path_names = set()
for filename in buildinfo['relocate_binaries']:
path_name = os.path.join(workdir, filename)
@@ -579,7 +595,8 @@ def extract_tarball(spec, filename, allow_root=False, unsigned=False,
if not unsigned:
if os.path.exists('%s.asc' % specfile_path):
try:
Gpg.verify('%s.asc' % specfile_path, specfile_path)
suppress = config.get('config:suppress_gpg_warnings', False)
Gpg.verify('%s.asc' % specfile_path, specfile_path, suppress)
except Exception as e:
shutil.rmtree(tmpdir)
tty.die(e)

View File

@@ -60,6 +60,10 @@ class {class_name}({base_class_name}):
homepage = "https://www.example.com"
{url_def}
# FIXME: Add a list of GitHub accounts to
# notify when the package is updated.
# maintainers = ['github_user1', 'github_user2']
{versions}
{dependencies}

View File

@@ -1117,7 +1117,7 @@ def add_default_view_to_shell(self, shell):
self.default_view))
for _, spec in self.concretized_specs():
if spec in self.default_view:
if spec in self.default_view and spec.package.installed:
env_mod.extend(self.environment_modifications_for_spec(
spec, self.default_view))
@@ -1138,7 +1138,7 @@ def rm_default_view_from_shell(self, shell):
self.default_view).reversed())
for _, spec in self.concretized_specs():
if spec in self.default_view:
if spec in self.default_view and spec.package.installed:
env_mod.extend(
self.environment_modifications_for_spec(
spec, self.default_view).reversed())

View File

@@ -502,11 +502,11 @@ def make_link_relative(cur_path_names, orig_path_names):
Change absolute links to be relative.
"""
for cur_path, orig_path in zip(cur_path_names, orig_path_names):
old_src = os.readlink(orig_path)
new_src = os.path.relpath(old_src, orig_path)
target = os.readlink(orig_path)
relative_target = os.path.relpath(target, os.path.dirname(orig_path))
os.unlink(cur_path)
os.symlink(new_src, cur_path)
os.symlink(relative_target, cur_path)
def make_macho_binaries_relative(cur_path_names, orig_path_names, old_dir,
@@ -651,7 +651,7 @@ def is_relocatable(spec):
return True
def file_is_relocatable(file):
def file_is_relocatable(file, paths_to_relocate=None):
"""Returns True if the file passed as argument is relocatable.
Args:
@@ -664,6 +664,8 @@ def file_is_relocatable(file):
ValueError: if the file does not exist or the path is not absolute
"""
default_paths_to_relocate = [spack.store.layout.root, spack.paths.prefix]
paths_to_relocate = paths_to_relocate or default_paths_to_relocate
if not (platform.system().lower() == 'darwin'
or platform.system().lower() == 'linux'):
@@ -704,19 +706,13 @@ def file_is_relocatable(file):
if idpath is not None:
set_of_strings.discard(idpath)
if any(spack.store.layout.root in x for x in set_of_strings):
# One binary has the root folder not in the RPATH,
# meaning that this spec is not relocatable
msg = 'Found "{0}" in {1} strings'
tty.debug(msg.format(spack.store.layout.root, file))
return False
if any(spack.paths.prefix in x for x in set_of_strings):
# One binary has the root folder not in the RPATH,
# meaning that this spec is not relocatable
msg = 'Found "{0}" in {1} strings'
tty.debug(msg.format(spack.paths.prefix, file))
return False
for path_to_relocate in paths_to_relocate:
if any(path_to_relocate in x for x in set_of_strings):
# One binary has the root folder not in the RPATH,
# meaning that this spec is not relocatable
msg = 'Found "{0}" in {1} strings'
tty.debug(msg.format(path_to_relocate, file))
return False
return True

View File

@@ -56,6 +56,7 @@
'source_cache': {'type': 'string'},
'misc_cache': {'type': 'string'},
'verify_ssl': {'type': 'boolean'},
'suppress_gpg_warnings': {'type': 'boolean'},
'install_missing_compilers': {'type': 'boolean'},
'debug': {'type': 'boolean'},
'checksum': {'type': 'boolean'},

View File

@@ -100,8 +100,11 @@ def sign(cls, key, file, output, clearsign=False):
cls.gpg()(*args)
@classmethod
def verify(cls, signature, file):
cls.gpg()('--verify', signature, file)
def verify(cls, signature, file, suppress_warnings=False):
if suppress_warnings:
cls.gpg()('--verify', signature, file, error=str)
else:
cls.gpg()('--verify', signature, file)
@classmethod
def list(cls, trusted, signing):

View File

@@ -28,24 +28,26 @@ def compute_hash(path):
def create_manifest_entry(path):
data = {}
stat = os.stat(path)
data['mode'] = stat.st_mode
data['owner'] = stat.st_uid
data['group'] = stat.st_gid
if os.path.exists(path):
stat = os.stat(path)
if os.path.islink(path):
data['type'] = 'link'
data['dest'] = os.readlink(path)
data['mode'] = stat.st_mode
data['owner'] = stat.st_uid
data['group'] = stat.st_gid
elif os.path.isdir(path):
data['type'] = 'dir'
if os.path.islink(path):
data['type'] = 'link'
data['dest'] = os.readlink(path)
else:
data['type'] = 'file'
data['hash'] = compute_hash(path)
data['time'] = stat.st_mtime
data['size'] = stat.st_size
elif os.path.isdir(path):
data['type'] = 'dir'
else:
data['type'] = 'file'
data['hash'] = compute_hash(path)
data['time'] = stat.st_mtime
data['size'] = stat.st_size
return data

View File

@@ -16,6 +16,7 @@ class Alquimia(CMakePackage):
maintainers = ['smolins', 'balay']
version('develop')
version('xsdk-0.5.0', commit='8397c3b00a09534c5473ff3ab21f0e32bb159380')
version('xsdk-0.4.0', commit='2edad6733106142d014bb6e6a73c2b21d5e3cf2d')
version('xsdk-0.3.0', tag='xsdk-0.3.0')
version('xsdk-0.2.0', tag='xsdk-0.2.0')
@@ -25,6 +26,7 @@ class Alquimia(CMakePackage):
depends_on('mpi')
depends_on('hdf5')
depends_on('pflotran@xsdk-0.5.0', when='@xsdk-0.5.0')
depends_on('pflotran@xsdk-0.4.0', when='@xsdk-0.4.0')
depends_on('pflotran@xsdk-0.3.0', when='@xsdk-0.3.0')
depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')

View File

@@ -146,23 +146,23 @@ class Athena(AutotoolsPackage):
patch('missing-separator.patch')
def setup_environment(self, spack_env, run_env):
def setup_build_environment(self, env):
spec = self.spec
spack_env.set('OPT', '-O3')
env.set('OPT', '-O3')
if '+mpi' in spec:
spack_env.set('CC', spec['mpi'].mpicc)
spack_env.set('LDR', spec['mpi'].mpicc)
spack_env.set('MPILIB', spec['mpi'].libs.ld_flags)
spack_env.set('MPIINC', spec['mpi'].headers.include_flags)
env.set('CC', spec['mpi'].mpicc)
env.set('LDR', spec['mpi'].mpicc)
env.set('MPILIB', spec['mpi'].libs.ld_flags)
env.set('MPIINC', spec['mpi'].headers.include_flags)
else:
spack_env.set('CC', spack_cc)
spack_env.set('LDR', spack_cc)
env.set('CC', spack_cc)
env.set('LDR', spack_cc)
if '+fft' in spec:
spack_env.set('FFTWLIB', spec['fftw'].libs.ld_flags)
spack_env.set('FFTWINC', spec['fftw'].headers.include_flags)
env.set('FFTWLIB', spec['fftw'].libs.ld_flags)
env.set('FFTWINC', spec['fftw'].headers.include_flags)
def configure_args(self):
spec = self.spec

View File

@@ -31,6 +31,9 @@ class Bison(AutotoolsPackage):
patch('pgi.patch', when='@3.0.4')
conflicts('%intel@:14', when='@3.4.2:',
msg="Intel 14 has immature C11 support")
if sys.platform == 'darwin' and macos_version() >= Version('10.13'):
patch('secure_snprintf.patch', level=0, when='@3.0.4')

View File

@@ -22,13 +22,14 @@ class Butterflypack(CMakePackage):
homepage = "https://github.com/liuyangzhuan/ButterflyPACK"
git = "https://github.com/liuyangzhuan/ButterflyPACK.git"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.0.3.tar.gz"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.1.0.tar.gz"
maintainers = ['liuyangzhuan']
version('master', branch='master')
version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232')
version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5')
version('1.1.0', sha256='0e6fd0f9e27b3ee8a273dc52f4d24b8737e7279dc26d461ef5658b317215f1dc')
version('1.0.3', sha256='acf9bc98dd7fea31ab73756b68b3333228b53ab0e85400a8250fcc749a1a6656')
version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5')
version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232')
variant('shared', default=True, description='Build shared libraries')

View File

@@ -10,16 +10,17 @@
class Caliper(CMakePackage):
"""Caliper is a program instrumentation and performance measurement
framework. It provides data collection mechanisms and a source-code
annotation API for a variety of performance engineering use cases,
e.g., performance profiling, tracing, monitoring, and
auto-tuning.
framework. It is designed as a performance analysis toolbox in a
library, allowing one to bake performance analysis capabilities
directly into applications and activate them at runtime.
"""
homepage = "https://github.com/LLNL/Caliper"
git = "https://github.com/LLNL/Caliper.git"
version('master')
version('2.2.0', tag='v2.2.0')
version('2.1.1', tag='v2.1.1')
version('2.0.1', tag='v2.0.1')
version('1.9.1', tag='v1.9.1')
version('1.9.0', tag='v1.9.0')
@@ -29,6 +30,8 @@ class Caliper(CMakePackage):
is_linux = sys.platform.startswith('linux')
variant('shared', default=True,
description='Build shared libraries')
variant('adiak', default=True,
description='Enable Adiak support')
variant('mpi', default=True,
description='Enable MPI wrappers')
variant('dyninst', default=False,
@@ -49,6 +52,8 @@ class Caliper(CMakePackage):
variant('sosflow', default=False,
description='Enable SOSflow support')
depends_on('adiak@0.1:', when='@2.2: +adiak')
depends_on('gotcha@1.0.2:1.0.99', when='+gotcha')
depends_on('dyninst@9.3.0:9.99', when='@:1.99 +dyninst')
@@ -67,7 +72,8 @@ class Caliper(CMakePackage):
depends_on('python', type='build')
# sosflow support not yet in 2.0
conflicts('+sosflow', '@2.0.0:2.0.99')
conflicts('+sosflow', '@2.0.0:2.2.99')
conflicts('+adiak', '@:2.1.99')
def cmake_args(self):
spec = self.spec
@@ -76,6 +82,7 @@ def cmake_args(self):
'-DBUILD_TESTING=Off',
'-DBUILD_DOCS=Off',
'-DBUILD_SHARED_LIBS=%s' % ('On' if '+shared' in spec else 'Off'),
'-DWITH_ADIAK=%s' % ('On' if '+adiak' in spec else 'Off'),
'-DWITH_DYNINST=%s' % ('On' if '+dyninst' in spec else 'Off'),
'-DWITH_CALLPATH=%s' % ('On' if '+callpath' in spec else 'Off'),
'-DWITH_GOTCHA=%s' % ('On' if '+gotcha' in spec else 'Off'),

View File

@@ -17,6 +17,7 @@ class Cdo(AutotoolsPackage):
maintainers = ['skosukhin']
version('1.9.8', sha256='f2660ac6f8bf3fa071cf2a3a196b3ec75ad007deb3a782455e80f28680c5252a', url='https://code.mpimet.mpg.de/attachments/download/20286/cdo-1.9.8.tar.gz')
version('1.9.7.1', sha256='3771952e065bcf935d43e492707370ed2a0ecb59a06bea24f9ab69d77943962c',
url='https://code.mpimet.mpg.de/attachments/download/20124/cdo-1.9.7.1.tar.gz')
version('1.9.6', sha256='b31474c94548d21393758caa33f35cf7f423d5dfc84562ad80a2bdcb725b5585', url='https://code.mpimet.mpg.de/attachments/download/19299/cdo-1.9.6.tar.gz')

View File

@@ -10,20 +10,21 @@ class Cmake(Package):
"""A cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software."""
homepage = 'https://www.cmake.org'
url = 'https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz'
url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz'
maintainers = ['chuckatkins']
version('3.15.4', sha256='8a211589ea21374e49b25fc1fc170e2d5c7462b795f1b29c84dd0e984301ed7a')
version('3.15.3', sha256='13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5')
version('3.15.2', sha256='539088cb29a68e6d6a8fba5c00951e5e5b1a92c68fa38a83e1ed2f355933f768')
version('3.15.1', sha256='18dec548d8f8b04d53c60f9cedcebaa6762f8425339d1e2c889c383d3ccdd7f7')
version('3.15.0', sha256='0678d74a45832cacaea053d85a5685f3ed8352475e6ddf9fcb742ffca00199b5')
version('3.14.5', sha256='505ae49ebe3c63c595fa5f814975d8b72848447ee13b6613b0f8b96ebda18c06')
version('3.14.4', sha256='00b4dc9b0066079d10f16eed32ec592963a44e7967371d2f5077fd1670ff36d9')
version('3.14.3', sha256='215d0b64e81307182b29b63e562edf30b3875b834efdad09b3fcb5a7d2f4b632')
version('3.14.2', sha256='a3cbf562b99270c0ff192f692139e98c605f292bfdbc04d70da0309a5358e71e')
version('3.14.1', sha256='7321be640406338fc12590609c42b0fae7ea12980855c1be363d25dcd76bb25f')
version('3.14.0', sha256='aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502')
version('3.15.5', sha256='fbdd7cef15c0ced06bb13024bfda0ecc0dedbcaaaa6b8a5d368c75255243beb4')
version('3.15.4', sha256='8a211589ea21374e49b25fc1fc170e2d5c7462b795f1b29c84dd0e984301ed7a')
version('3.15.3', sha256='13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5')
version('3.15.2', sha256='539088cb29a68e6d6a8fba5c00951e5e5b1a92c68fa38a83e1ed2f355933f768')
version('3.15.1', sha256='18dec548d8f8b04d53c60f9cedcebaa6762f8425339d1e2c889c383d3ccdd7f7')
version('3.15.0', sha256='0678d74a45832cacaea053d85a5685f3ed8352475e6ddf9fcb742ffca00199b5')
version('3.14.5', sha256='505ae49ebe3c63c595fa5f814975d8b72848447ee13b6613b0f8b96ebda18c06')
version('3.14.4', sha256='00b4dc9b0066079d10f16eed32ec592963a44e7967371d2f5077fd1670ff36d9')
version('3.14.3', sha256='215d0b64e81307182b29b63e562edf30b3875b834efdad09b3fcb5a7d2f4b632')
version('3.14.2', sha256='a3cbf562b99270c0ff192f692139e98c605f292bfdbc04d70da0309a5358e71e')
version('3.14.1', sha256='7321be640406338fc12590609c42b0fae7ea12980855c1be363d25dcd76bb25f')
version('3.14.0', sha256='aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502')
version('3.13.4', sha256='fdd928fee35f472920071d1c7f1a6a2b72c9b25e04f7a37b409349aef3f20e9b')
version('3.13.3', sha256='665f905036b1f731a2a16f83fb298b1fb9d0f98c382625d023097151ad016b25')
version('3.13.2', sha256='c925e7d2c5ba511a69f43543ed7b4182a7d446c274c7480d0e42cd933076ae25')
@@ -116,6 +117,8 @@ class Cmake(Package):
# https://gitlab.kitware.com/cmake/cmake/issues/18166
conflicts('%intel', when='@3.11.0:3.11.4')
conflicts('%intel@:14', when='@3.14:',
msg="Intel 14 has immature C++11 support")
phases = ['bootstrap', 'build', 'install']

View File

@@ -13,39 +13,177 @@ class Cudnn(Package):
homepage = "https://developer.nvidia.com/cudnn"
version('7.6.3-10.1-x86_64', sha256='352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.6.3/cudnn-10.1-linux-x64-v7.6.3.30.tgz')
version('7.6.3-10.1-ppc64le', sha256='f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.6.3/cudnn-10.1-linux-ppc64le-v7.6.3.30.tgz')
version('7.5.1-10.1-x86_64', sha256='2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.1-linux-x64-v7.5.1.10.tgz')
version('7.5.1-10.1-ppc64le', sha256='a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.1-linux-ppc64le-v7.5.1.10.tgz')
version('7.5.1-10.0-x86_64', sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.0-linux-x64-v7.5.1.10.tgz')
version('7.5.1-10.0-ppc64le', sha256='d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.0-linux-ppc64le-v7.5.1.10.tgz')
version('7.5.0-10.1-x86_64', sha256='c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.1-linux-x64-v7.5.0.56.tgz')
version('7.5.0-10.1-ppc64le', sha256='15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.1-linux-ppc64le-v7.5.0.56.tgz')
version('7.5.0-10.0-x86_64', sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.0-linux-x64-v7.5.0.56.tgz')
version('7.5.0-10.0-ppc64le', sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a',
url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.0-linux-ppc64le-v7.5.0.56.tgz')
version('7.3.0', sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b',
url='http://developer.download.nvidia.com/compute/redist/cudnn/v7.3.0/cudnn-9.0-linux-x64-v7.3.0.29.tgz')
version('7.2.1', sha256='cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37',
url='http://developer.download.nvidia.com/compute/redist/cudnn/v7.2.1/cudnn-9.0-linux-x64-v7.2.1.38.tgz')
version('6.0', sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c',
url='http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz')
version('5.1', sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce',
url='http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz')
# Latest versions available at:
# https://developer.nvidia.com/rdp/cudnn-download
# Archived versions available at:
# https://developer.nvidia.com/rdp/cudnn-archive
# Note that download links don't work from command line,
# need to use modified URLs like in url_for_version.
depends_on('cuda@8:', when='@5.1:@7')
depends_on('cuda@9:', when='@7.2:@7.4')
depends_on('cuda@10:', when='@7.5.0-10.0-ppc64le,7.5.0-10.0-x86_64,7.5.1-10.0-ppc64le,7.5.1-10.0-x86_64')
depends_on('cuda@10.1:', when='@7.5.0-10.1-ppc64le,7.5.0-10.1-x86_64,7.5.1-10.1-ppc64le,7.5.1-10.1-x86_64,7.6.3-10.1-ppc64le,7.6.3-10.1-x86_64')
maintainers = ['adamjstewart']
# cuDNN 7.6.5
version('7.6.5.32-10.1-linux-x64',
sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3',
preferred=True)
version('7.6.5.32-10.1-osx-x64',
sha256='8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff')
version('7.6.5.32-10.1-linux-ppc64le',
sha256='97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56')
version('7.6.5.32-10.0-linux-x64',
sha256='28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba')
version('7.6.5.32-10.0-osx-x64',
sha256='6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47')
version('7.6.5.32-10.0-linux-ppc64le',
sha256='b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b')
version('7.6.5.32-9.2-linux-x64',
sha256='a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4')
version('7.6.5.32-9.2-linux-ppc64le',
sha256='a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76')
version('7.6.5.32-9.0-linux-x64',
sha256='bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8')
# cuDNN 7.6.4
version('7.6.4.38-10.1-linux-x64',
sha256='32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099')
version('7.6.4.38-10.1-osx-x64',
sha256='bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236')
version('7.6.4.38-10.1-linux-ppc64le',
sha256='f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce')
version('7.6.4.38-10.0-linux-x64',
sha256='417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf')
version('7.6.4.38-10.0-osx-x64',
sha256='af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1')
version('7.6.4.38-10.0-linux-ppc64le',
sha256='c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb')
version('7.6.4.38-9.2-linux-x64',
sha256='c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27')
version('7.6.4.38-9.2-linux-ppc64le',
sha256='98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884')
version('7.6.4.38-9.0-linux-x64',
sha256='8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d')
# cuDNN 7.6.3
version('7.6.3.30-10.1-linux-x64',
sha256='352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961')
version('7.6.3.30-10.1-linux-ppc64le',
sha256='f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee')
# cuDNN 7.5.1
version('7.5.1.10-10.1-linux-x64',
sha256='2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0')
version('7.5.1.10-10.1-linux-ppc64le',
sha256='a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663')
version('7.5.1.10-10.0-linux-x64',
sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985')
version('7.5.1.10-10.0-linux-ppc64le',
sha256='d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70')
# cuDNN 7.5.0
version('7.5.0.56-10.1-linux-x64',
sha256='c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8')
version('7.5.0.56-10.1-linux-ppc64le',
sha256='15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638')
version('7.5.0.56-10.0-linux-x64',
sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781')
version('7.5.0.56-10.0-linux-ppc64le',
sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a')
# cuDNN 7.3.0
version('7.3.0.29-9.0-linux-x64',
sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b')
# cuDNN 7.2.1
version('7.2.1.38-9.0-linux-x64',
sha256='cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37')
# cuDNN 7.1.3
version('7.1.3-9.1-linux-x64',
sha256='dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228')
version('7.1.3-9.1-linux-ppc64le',
sha256='e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931')
# cuDNN 6.0
version('6.0-8.0-linux-x64',
sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c')
# cuDNN 5.1
version('5.1-8.0-linux-x64',
sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce')
# CUDA 10.1
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-osx-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-ppc64le')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-osx-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-ppc64le')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-ppc64le')
depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-x64')
depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-ppc64le')
# CUDA 10.0
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-osx-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-ppc64le')
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-osx-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-ppc64le')
depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-ppc64le')
depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-x64')
depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-ppc64le')
# CUDA 9.2
depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-x64')
depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-ppc64le')
depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-x64')
depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-ppc64le')
# CUDA 9.1
depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-x64')
depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-ppc64le')
# CUDA 9.0
depends_on('cuda@9.0.0:9.0.999', when='@7.6.5.32-9.0-linux-x64')
depends_on('cuda@9.0.0:9.0.999', when='@7.6.4.38-9.0-linux-x64')
depends_on('cuda@9.0.0:9.0.999', when='@7.3.0.29-9.0-linux-x64')
depends_on('cuda@9.0.0:9.0.999', when='@7.2.1.38-9.0-linux-x64')
# CUDA 8.0
depends_on('cuda@8.0.0:8.0.999', when='@6.0-8.0-linux-x64')
depends_on('cuda@8.0.0:8.0.999', when='@5.1-8.0-linux-x64')
def url_for_version(self, version):
url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-v{2}.tgz'
if version >= Version('7.2'):
directory = version[:3]
ver = version[:4]
cuda = version[4:]
elif version >= Version('7.1'):
directory = version[:3]
ver = version[:2]
cuda = version[3:]
elif version >= Version('7.0'):
directory = version[:3]
ver = version[0]
cuda = version[3:]
else:
directory = version[:2]
ver = version[:2]
cuda = version[2:]
return url.format(directory, cuda, ver)
def install(self, spec, prefix):
install_tree('.', prefix)

View File

@@ -14,3 +14,4 @@ class Damselfly(CMakePackage):
version('1.0', sha256='560e1b800c9036766396a1033c00914bd8d181b911e87140c3ac8879baf6545a')
depends_on('cmake@2.6:', type='build')
depends_on('mpi')

View File

@@ -20,9 +20,7 @@ class Dataspaces(AutotoolsPackage):
homepage = "http://www.dataspaces.org"
url = "https://dataspaces.rdi2.rutgers.edu/downloads/dataspaces-1.6.2.tar.gz"
git = "https://github.com/melrom/dataspaces.git"
version('develop', branch='master')
version('1.8.0', sha256='7f204bb3c03c2990f5a2d76a29185466b584793c63ada03e5e694627e6060605')
version('1.6.2', sha256='3c43d551c1e8198a4ab269c83928e1dc6f8054e6d41ceaee45155d91a48cf9bf')

View File

@@ -12,6 +12,7 @@ class Dmtcp(AutotoolsPackage):
with no modifications to user code or to the O/S."""
homepage = "http://dmtcp.sourceforge.net/"
url = "https://sourceforge.net/projects/dmtcp/files/2.5.2/dmtcp-2.5.2.tar.gz/download"
url = "https://sourceforge.net/projects/dmtcp/files/2.6.0/dmtcp-2.6.0.tar.gz/download"
version('2.6.0', sha256='3ed62a86dd0cb9c828b93ee8c7c852d6f9c96a0efa48bcfe867521adf7bced68')
version('2.5.2', sha256='0e3e5e15bd401b7b6937f2b678cd7d6a252eab0a143d5740b89cc3bebb4282be')

View File

@@ -0,0 +1,15 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class File(AutotoolsPackage):
"""The file command is "a file type guesser", that is, a command-line
tool that tells you in words what kind of data a file contains"""
homepage = "http://www.darwinsys.com/file/"
url = "https://astron.com/pub/file/file-5.37.tar.gz"
version('5.37', sha256='e9c13967f7dd339a3c241b7710ba093560b9a33013491318e88e6b8b57bae07f')

View File

@@ -27,6 +27,8 @@ class Flex(AutotoolsPackage):
depends_on('bison', type='build')
depends_on('gettext@0.19:', type='build')
depends_on('help2man', type='build')
depends_on('findutils', type='build')
depends_on('diffutils', type='build')
# Older tarballs don't come with a configure script and the patch for
# 2.6.4 touches configure

View File

@@ -18,16 +18,14 @@ class Geopm(AutotoolsPackage):
msr-safe kernel module by your administrator."""
homepage = "https://geopm.github.io"
url = "https://github.com/geopm/geopm/releases/download/v0.4.0/geopm-0.4.0.tar.gz"
url = "https://github.com/geopm/geopm/releases/download/v1.0.0/geopm-1.0.0.tar.gz"
git = "https://github.com/geopm/geopm.git"
# Add additional proper versions and checksums here. "spack checksum geopm"
version('develop', branch='dev')
version('master', branch='master')
version('1.0.0-rc2', sha256='c6637df54728ded31fd682f39a07dffee45883f350e6dbd13e1496dd50243ffd',
url='https://github.com/geopm/geopm/releases/download/v1.0.0%2Brc2/geopm-1.0.0+rc2.tar.gz')
version('1.0.0-rc1', sha256='f8a2e5c384a15e9663f409de478b6372cd63e63a28d4701a33ac043fc27905e0',
url='https://github.com/geopm/geopm/releases/download/v1.0.0-rc1/geopm-1.0.0+rc1.tar.gz')
version('1.1.0', sha256='5f9a4df37ef0d64c53d64829d46736803c9fe614afd8d2c70fe7a5ebea09f88e')
version('1.0.0', sha256='24fe72265a7e44d62bdfe49467c49f0b7a649131ddda402d763c00a49765e1cb')
version('0.6.1', sha256='0ca42853f90885bf213df190c3462b8675c143cc843aee0d8b8a0e30802b55a9')
version('0.6.0', sha256='95ccf256c2b7cb35838978152479569d154347c3065af1639ed17be1399182d3')
version('0.5.1', sha256='db247af55f7000b6e4628af099956349b68a637500b9d4fe8d8fb13687124d53')
@@ -45,27 +43,44 @@ class Geopm(AutotoolsPackage):
variant('doc', default=True, description='Create man pages with ruby-ronn.')
variant('openmp', default=True, description='Build with OpenMP.')
variant('ompt', default=False, description='Use OpenMP Tools Interface.')
variant('hwloc', default=False, description='Build with hwloc, deprecated and ignored after v0.5.1.')
variant('gnu-ld', default=False, description='Assume C compiler uses gnu-ld.')
# Added dependencies.
depends_on('ruby-ronn', type='build', when='+doc')
depends_on('doxygen', type='build', when='+doc')
depends_on('mpi@2.2:', when='+mpi')
depends_on('m4', type='build')
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('ruby-ronn', type='build', when='+doc')
depends_on('doxygen', type='build', when='+doc')
depends_on('numactl')
depends_on('numactl', when="@:1.0.0-rc2")
depends_on('mpi', when='+mpi')
depends_on('hwloc@1.11.9', when='@:0.5.1+hwloc')
depends_on('json-c')
depends_on('py-pandas', type='run')
depends_on('py-numpy', type='run')
depends_on('py-natsort', type='run')
depends_on('py-matplotlib@2.2.3', type='run')
depends_on('json-c', when='@:0.9.9')
depends_on('py-cycler@0.10.0:', when="@1.0.0:", type=('build', 'run'))
depends_on('py-pandas@0.22.0:', type=('build', 'run'))
depends_on('py-tables@3.4.3:3.5.2', when="@1.0.0:", type=('build', 'run'))
depends_on('py-cffi@1.6.0:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-pyyaml@5.1.0:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-mock@3.0.0:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-future@0.17.1:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-numpy@1.14.3:', type=('build', 'run'))
depends_on('py-setuptools@39.2.0:', when="@1.0.0:", type='build')
depends_on('py-natsort@5.3.2:', type=('build', 'run'))
depends_on('py-psutil@5.4.8:', when="@1.0.0:", type=('build', 'run'))
depends_on('py-pylint@1.9.5:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-matplotlib@2.2.3', when="@:1.0.0-rc2", type=('build', 'run'))
depends_on('py-matplotlib@2.2.3:', when="@1.1.0:", type=('build', 'run'))
parallel = False
def autoreconf(self, spec, prefix):
bash = which("bash")
bash('./autogen.sh')
def configure_args(self):
args = []
args.extend(self.enable_or_disable('debug'))
@@ -77,10 +92,6 @@ def configure_args(self):
args.extend(self.enable_or_disable('doc'))
args.extend(self.enable_or_disable('openmp'))
args.extend(self.enable_or_disable('ompt'))
if self.version <= Version('0.5.1'):
args.extend(self.with_or_without(
'hwloc',
activation_value='prefix'))
args.extend(self.with_or_without('gnu-ld'))
return args

View File

@@ -22,6 +22,8 @@ class Gmake(AutotoolsPackage):
depends_on('gettext', when='+nls')
depends_on('guile', when='+guile')
depends_on('texinfo', type='build')
build_directory = 'spack-build'
patch('https://src.fedoraproject.org/rpms/make/raw/519a7c5bcbead22e6ea2d2c2341d981ef9e25c0d/f/make-4.2.1-glob-fix-2.patch', level=1, sha256='fe5b60d091c33f169740df8cb718bf4259f84528b42435194ffe0dd5b79cd125', when='@4.2.1')

View File

@@ -0,0 +1,15 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Grep(AutotoolsPackage):
"""Grep searches one or more input files for lines containing a match to
a specified pattern"""
homepage = "https://www.gnu.org/software/grep/"
url = "https://ftp.gnu.org/gnu/grep/grep-3.3.tar.xz"
version('3.3', sha256='b960541c499619efd6afe1fa795402e4733c8e11ebf9fafccc0bb4bccdc5b514')

View File

@@ -30,12 +30,14 @@ class Gromacs(CMakePackage):
version('2019.2', sha256='bcbf5cc071926bc67baa5be6fb04f0986a2b107e1573e15fadcb7d7fc4fb9f7e')
version('2019.1', sha256='b2c37ed2fcd0e64c4efcabdc8ee581143986527192e6e647a197c76d9c4583ec')
version('2019', sha256='c5b281a5f0b5b4eeb1f4c7d4dc72f96985b566561ca28acc9c7c16f6ee110d0b')
version('2018.8', sha256='3776923415df4bc78869d7f387c834141fdcda930b2e75be979dc59ecfa6ebec')
version('2018.5', sha256='32261df6f7ec4149fc0508f9af416953d056e281590359838c1ed6644ba097b8')
version('2018.4', sha256='6f2ee458c730994a8549d6b4f601ecfc9432731462f8bd4ffa35d330d9aaa891')
version('2018.3', sha256='4423a49224972969c52af7b1f151579cea6ab52148d8d7cbae28c183520aa291')
version('2018.2', sha256='4bdde8120c510b6543afb4b18f82551fddb11851f7edbd814aa24022c5d37857')
version('2018.1', sha256='4d3533340499323fece83b4a2d4251fa856376f2426c541e00b8e6b4c0d705cd')
version('2018', sha256='deb5d0b749a52a0c6083367b5f50a99e08003208d81954fb49e7009e1b1fd0e9')
version('2016.6', sha256='bac0117d2cad21f9b94fe5b854fb9ae7435b098a6da4e732ee745f18e52473d7')
version('2016.5', sha256='57db26c6d9af84710a1e0c47a1f5bf63a22641456448dcd2eeb556ebd14e0b7c')
version('2016.4', sha256='4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264')
version('2016.3', sha256='7bf00e74a9d38b7cef9356141d20e4ba9387289cbbfd4d11be479ef932d77d27')

View File

@@ -24,20 +24,29 @@ class Guile(AutotoolsPackage):
version('2.0.11', sha256='e6786c934346fa2e38e46d8d81a622bb1c16d130153523f6129fcd79ef1fb040')
variant('readline', default=True, description='Use the readline library')
variant('threads', default=True, description='Use the thread interface')
variant(
'threads',
default='none',
values=('none', 'posix', 'dgux386'),
multi=False,
description='Use the thread interface'
)
depends_on('bdw-gc@7.0: threads=none', when='threads=none')
depends_on('bdw-gc@7.0: threads=posix', when='threads=posix')
depends_on('bdw-gc@7.0: threads=dgux386', when='threads=dgux386')
depends_on('gmp@4.2:')
depends_on('gettext')
depends_on('libtool@1.5.6:')
depends_on('libunistring@0.9.3:')
depends_on('bdw-gc@7.0:')
depends_on('libffi')
depends_on('readline', when='+readline')
depends_on('pkgconfig', type='build')
build_directory = 'spack-build'
conflicts('+threads', when='%intel')
conflicts('threads=posix', when='%intel')
conflicts('threads=dgux386', when='%intel')
def configure_args(self):
spec = self.spec
@@ -49,7 +58,11 @@ def configure_args(self):
'--with-libgmp-prefix={0}'.format(spec['gmp'].prefix),
'--with-libintl-prefix={0}'.format(spec['gettext'].prefix),
]
config_args += self.with_or_without('threads')
if 'threads=none' in spec:
config_args.append('--without-threads')
else:
config_args.append('--with-threads')
if '+readline' in spec:
config_args.append('--with-libreadline-prefix={0}'.format(

View File

@@ -0,0 +1,15 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Gzip(AutotoolsPackage):
"""GNU Gzip is a popular data compression program originally written by
Jean-loup Gailly for the GNU project."""
homepage = "https://www.gnu.org/software/gzip/"
url = "https://ftp.gnu.org/gnu/gzip/gzip-1.10.tar.gz"
version('1.10', sha256='c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68')

View File

@@ -2,9 +2,6 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import sys
@@ -28,7 +25,9 @@ class Hwloc(AutotoolsPackage):
url = "https://download.open-mpi.org/release/hwloc/v2.0/hwloc-2.0.2.tar.gz"
list_url = "http://www.open-mpi.org/software/hwloc/"
list_depth = 2
git = 'https://github.com/open-mpi/hwloc.git'
version('master', branch='master')
version('2.0.2', sha256='27dcfe42e3fb3422b72ce48b48bf601c0a3e46e850ee72d9bdd17b5863b6e42c')
version('2.0.1', sha256='f1156df22fc2365a31a3dc5f752c53aad49e34a5e22d75ed231cd97eaa437f9d')
version('2.0.0', sha256='a0d425a0fc7c7e3f2c92a272ffaffbd913005556b4443e1887d2e1718d902887')
@@ -59,7 +58,10 @@ class Hwloc(AutotoolsPackage):
)
depends_on('pkgconfig', type='build')
depends_on('m4', type='build', when='@master')
depends_on('autoconf', type='build', when='@master')
depends_on('automake', type='build', when='@master')
depends_on('libtool', type='build', when='@master')
depends_on('cuda', when='+nvml')
depends_on('cuda', when='+cuda')
depends_on('gl', when='+gl')

View File

@@ -29,6 +29,9 @@ class Icu4c(AutotoolsPackage):
depends_on('python', type='build', when='@64.1:')
conflicts('%intel@:16', when='@60.1:',
msg="Intel compilers have immature C++11 and multibyte support")
configure_directory = 'source'
def url_for_version(self, version):

View File

@@ -10,14 +10,38 @@ class IntelMklDnn(CMakePackage):
"""Intel(R) Math Kernel Library for Deep Neural Networks
(Intel(R) MKL-DNN)."""
homepage = "https://01.org/mkl-dnn"
url = "https://github.com/intel/mkl-dnn/archive/v0.19.tar.gz"
homepage = "https://intel.github.io/mkl-dnn/"
url = "https://github.com/intel/mkl-dnn/archive/v1.1.1.tar.gz"
version('1.0-pc2', sha256='fcc2d951f7170eade0cfdd0d8d1d58e3e7785bd326bca6555f3722f8cba71811')
version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd', preferred=True)
version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70')
version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d')
version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570')
version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7')
maintainers = ['adamjstewart']
version('1.1.1', sha256='a31b08a89473bfe3bd6ed542503336d21b4177ebe4ccb9a97810808f634db6b6')
version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd')
version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70')
version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d')
version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570')
version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7')
depends_on('cmake@2.8.11:', type='build')
depends_on('intel-mkl')
depends_on('llvm-openmp', when='%clang platform=darwin')
def cmake_args(self):
args = []
# https://github.com/intel/mkl-dnn/issues/591
if self.spec.satisfies('%clang platform=darwin'):
args.extend([
'-DOpenMP_CXX_FLAGS={0}'.format(self.compiler.openmp_flag),
'-DOpenMP_C_FLAGS={0}'.format(self.compiler.openmp_flag),
'-DOpenMP_CXX_LIB_NAMES=libomp',
'-DOpenMP_C_LIB_NAMES=libomp',
'-DOpenMP_libomp_LIBRARY={0}'.format(
self.spec['llvm-openmp'].libs.libraries[0]
),
'-DCMAKE_SHARED_LINKER_FLAGS={0}'.format(
self.spec['llvm-openmp'].libs.ld_flags
),
])
return args

View File

@@ -0,0 +1,21 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Lcov(MakefilePackage):
"""LCOV is a graphical front-end for GCC's coverage testing tool gcov.
It collects gcov data for multiple source files and creates HTML pages
containing the source code annotated with coverage information. It also
adds overview pages for easy navigation within the file structure. LCOV
supports statement, function and branch coverage measurement."""
homepage = "http://ltp.sourceforge.net/coverage/lcov.php"
url = "https://github.com/linux-test-project/lcov/releases/download/v1.14/lcov-1.14.tar.gz"
version('1.14', sha256='14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a')
def install(self, spec, prefix):
make("DESTDIR=", "PREFIX=%s" % prefix, "install")

View File

@@ -0,0 +1,11 @@
--- a/src/local-elf.h 2018-04-21 17:30:22.000000000 -0400
+++ b/src/local-elf.h 2019-11-13 11:02:53.965684506 -0500
@@ -43,7 +43,7 @@
#define ELF_TARG_CLASS ELFCLASS64
#define ELF_TARG_DATA ELFDATA2LSB
-#elif defined(__amd64__)
+#elif defined(__amd64__) || defined(__x86_64__)
#define ELF_TARG_MACH EM_X86_64
#if defined(__ILP32__)

View File

@@ -16,12 +16,14 @@ class Libbsd(AutotoolsPackage):
homepage = "https://libbsd.freedesktop.org/wiki/"
url = "https://libbsd.freedesktop.org/releases/libbsd-0.9.1.tar.xz"
version('0.10.0', sha256='34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887')
version('0.9.1', sha256='56d835742327d69faccd16955a60b6dcf30684a8da518c4eca0ac713b9e0a7a4')
version('0.9.0', sha256='8a469afd1bab340992cf99e1e6b7ae4f4c54882d663d8a2c5ea52250617afb01')
version('0.8.7', sha256='f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31')
version('0.8.6', sha256='467fbf9df1f49af11f7f686691057c8c0a7613ae5a870577bef9155de39f9687')
patch('cdefs.h.patch', when='@0.8.6 %gcc@:4')
patch('local-elf.h.patch', when='%intel')
# https://gitlab.freedesktop.org/libbsd/libbsd/issues/1
conflicts('platform=darwin')

View File

@@ -14,7 +14,7 @@ class Libffi(AutotoolsPackage):
homepage = "https://sourceware.org/libffi/"
version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37',
url="https://www.mirrorservice.org/sites/sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz")
@property
def headers(self):

View File

@@ -46,7 +46,7 @@ class Mgis(CMakePackage):
depends_on('tfel@3.2.1', when="@1.0.1")
depends_on('tfel@rliv-3.2', when="@rliv-1.0")
depends_on('tfel@master', when="@master")
depends_on('boost+python', when='+python')
depends_on('boost+python+numpy', when='+python')
extends('python', when='+python')
def cmake_args(self):

View File

@@ -0,0 +1,77 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Mpt(Package):
"""HPE MPI is HPE's implementation of
the Message Passing Interface (MPI) standard.
Note: HPE MPI is proprietry software. 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://buy.hpe.com/us/en/software/high-performance-computing-software/hpe-message-passing-interface-mpi/p/1010144155"
provides('mpi')
provides('mpi@:3.1', when='@3:')
provides('mpi@:1.3', when='@1:')
filter_compiler_wrappers(
'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpif08',
relative_root='bin'
)
@property
def libs(self):
query_parameters = self.spec.last_query.extra_parameters
libraries = ['libmpi']
if 'cxx' in query_parameters:
libraries = ['libmpicxx'] + libraries
return find_libraries(
libraries, root=self.prefix, shared=True, recursive=True
)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.mpicc)
env.set('MPICXX', self.prefix.bin.mpicxx)
env.set('MPIF77', self.prefix.bin.mpif77)
env.set('MPIF90', self.prefix.bin.mpif90)
env.set('MPICC_CC', spack_cc)
env.set('MPICXX_CXX', spack_cxx)
env.set('MPIF90_F90', spack_fc)
def setup_dependent_package(self, module, dependent_spec):
if 'platform=cray' in self.spec:
self.spec.mpicc = spack_cc
self.spec.mpicxx = spack_cxx
self.spec.mpifc = spack_fc
self.spec.mpif77 = spack_f77
else:
self.spec.mpicc = self.prefix.bin.mpicc
self.spec.mpicxx = self.prefix.bin.mpicxx
self.spec.mpifc = self.prefix.bin.mpif90
self.spec.mpif77 = self.prefix.bin.mpif77
@property
def fetcher(self):
msg = """This package is a placeholder for HPE MPI, a
system-provided, proprietary MPI implementation.
Add to your packages.yaml (changing the /opt/ path to match
where HPE MPI is actually installed):
packages:
mpt:
paths:
mpt@2.20: /opt/
buildable: False
"""
raise InstallError(msg)

View File

@@ -3,19 +3,19 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os.path
import sys
from spack import *
class Mvapich2(AutotoolsPackage):
"""MVAPICH2 is an MPI implementation for Infiniband networks."""
homepage = "http://mvapich.cse.ohio-state.edu/"
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz"
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.2.tar.gz"
list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
# Prefer the latest stable release
version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf', preferred=True)
version('2.3.2', sha256='30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf')
version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf')
version('2.3', sha256='01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd')
version('2.3rc2', sha256='dc3801f879a54358d17002a56afd45186e2e83edc5b8367b5c317e282eb6d6bf')
version('2.3rc1', sha256='607d309c864a6d57f5fa78fe6dd02368919736b8be0f4ddb938aba303ef9c45c')
@@ -24,8 +24,10 @@ class Mvapich2(AutotoolsPackage):
version('2.1', sha256='49f3225ad17d2f3b6b127236a0abdc979ca8a3efb8d47ab4b6cd4f5252d05d29')
provides('mpi')
provides('mpi@:3.0')
provides('mpi@:3.1', when='@2.3:')
provides('mpi@:3.0', when='@2.1:')
variant('wrapperrpath', default=True, description='Enable wrapper rpath')
variant('debug', default=False,
description='Enable debug info and error messages at run-time')
@@ -72,7 +74,7 @@ class Mvapich2(AutotoolsPackage):
variant(
'fabrics',
description='The fabric enabled for this build',
default='psm',
default='mrail',
values=(
'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail',
'nemesisibtcp', 'nemesistcpib', 'nemesisofi'
@@ -195,34 +197,35 @@ def file_system_options(self):
return opts
def setup_environment(self, spack_env, run_env):
spec = self.spec
def setup_build_environment(self, env):
# mvapich2 configure fails when F90 and F90FLAGS are set
spack_env.unset('F90')
spack_env.unset('F90FLAGS')
if 'process_managers=slurm' in spec:
run_env.set('SLURM_MPI_TYPE', 'pmi2')
env.unset('F90')
env.unset('F90FLAGS')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
def setup_run_environment(self, env):
if 'process_managers=slurm' in self.spec:
env.set('SLURM_MPI_TYPE', 'pmi2')
spack_env.set('MPICH_CC', spack_cc)
spack_env.set('MPICH_CXX', spack_cxx)
spack_env.set('MPICH_F77', spack_f77)
spack_env.set('MPICH_F90', spack_fc)
spack_env.set('MPICH_FC', spack_fc)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc'))
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpicxx'))
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77'))
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90'))
env.set('MPICH_CC', spack_cc)
env.set('MPICH_CXX', spack_cxx)
env.set('MPICH_F77', spack_f77)
env.set('MPICH_F90', spack_fc)
env.set('MPICH_FC', spack_fc)
def setup_dependent_package(self, module, dependent_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc')
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx')
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90')
self.spec.mpif77 = os.path.join(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))
os.path.join(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)),
os.path.join(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix))
]
@run_before('configure')
@@ -246,6 +249,8 @@ def configure_args(self):
"--enable-threads={0}".format(spec.variants['threads'].value),
"--with-ch3-rank-bits={0}".format(
spec.variants['ch3_rank_bits'].value),
'--enable-wrapper-rpath={0}'.format('no' if '~wrapperrpath' in
spec else 'yes')
]
args.extend(self.enable_or_disable('alloca'))

View File

@@ -22,3 +22,6 @@ class Nasm(AutotoolsPackage):
# Fix compilation with GCC 8
# https://bugzilla.nasm.us/show_bug.cgi?id=3392461
patch('https://src.fedoraproject.org/rpms/nasm/raw/0cc3eb244bd971df81a7f02bc12c5ec259e1a5d6/f/0001-Remove-invalid-pure_func-qualifiers.patch', level=1, sha256='ac9f315d204afa6b99ceefa1fe46d4eed2b8a23c7315d32d33c0f378d930e950', when='@2.13.03 %gcc@8:')
conflicts('%intel@:14', when='@2.14:',
msg="Intel 14 has immature C11 support")

View File

@@ -13,6 +13,7 @@ class NlohmannJson(CMakePackage):
url = "https://github.com/nlohmann/json/archive/v3.1.2.tar.gz"
maintainers = ['ax3l']
version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d')
version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760')
version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d')
version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732')

View File

@@ -16,7 +16,7 @@ class Nlopt(CMakePackage):
url = "https://github.com/stevengj/nlopt/archive/v2.5.0.tar.gz"
git = "https://github.com/stevengj/nlopt.git"
version('develop', branch='master')
version('master', branch='master')
version('2.5.0', sha256='c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae')
variant('shared', default=True, description='Enables the build of shared libraries')
@@ -28,13 +28,14 @@ class Nlopt(CMakePackage):
# Note: matlab is licenced - spack does not download automatically
variant("matlab", default=False, description="Build the Matlab bindings.")
depends_on('cmake@3.0:', type='build', when='@develop')
depends_on('python', when='+python')
depends_on('cmake@3.0:', type='build', when='@master')
depends_on('python', when='+python', type=('build', 'run'))
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('swig', when='+python')
depends_on('guile', when='+guile')
depends_on('octave', when='+octave')
depends_on('matlab', when='+matlab')
extends('python', when='+python')
def cmake_args(self):
# Add arguments other than
@@ -43,7 +44,7 @@ def cmake_args(self):
args = []
# Specify on command line to alter defaults:
# eg: spack install nlopt@develop +guile -octave +cxx
# eg: spack install nlopt@master +guile -octave +cxx
# Spack should locate python by default - but to point to a build
if '+python' in spec:

View File

@@ -17,11 +17,12 @@ class Papi(Package):
enables software engineers to see, in near real time, the
relation between software performance and processor events. In
addition Component PAPI provides access to a collection of
components that expose performance measurement opportunites
components that expose performance measurement opportunities
across the hardware and software stack."""
homepage = "http://icl.cs.utk.edu/papi/index.html"
maintainers = ['G-Ragghianti']
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589')
version('5.6.0', sha256='49b7293f9ca2d74d6d80bd06b5c4be303663123267b4ac0884cbcae4c914dc47')
version('5.5.1', sha256='49dc2c2323f6164c4a7e81b799ed690ee73158671205e71501f849391dd2c2d4')
@@ -30,11 +31,27 @@ class Papi(Package):
version('5.4.1', sha256='e131c1449786fe870322a949e44f974a5963824f683232e653fb570cc65d4e87')
version('5.3.0', sha256='99f2f36398b370e75d100b4a189d5bc0ac4f5dd66df44d441f88fd32e1421524')
variant('example', default=True, description='Install the example files')
variant('infiniband', default=False, description='Enable Infiniband support')
variant('powercap', default=False, description='Enable powercap interface support')
variant('rapl', default=False, description='Enable RAPL support')
variant('lmsensors', default=False, description='Enable lm_sensors support')
depends_on('lm-sensors', when='+lmsensors')
# Does not build with newer versions of gcc, see
# https://bitbucket.org/icl/papi/issues/46/cannot-compile-on-arch-linux
patch('https://bitbucket.org/icl/papi/commits/53de184a162b8a7edff48fed01a15980664e15b1/raw', sha256='64c57b3ad4026255238cc495df6abfacc41de391a0af497c27d0ac819444a1f8', when='@5.4.0:5.6.99%gcc@8:')
def install(self, spec, prefix):
if '+lmsensors' in spec:
with working_dir("src/components/lmsensors"):
configure_args = [
"--with-sensors_incdir=%s/include/sensors" %
spec['lm-sensors'].prefix,
"--with-sensors_libdir=%s/lib" %
spec['lm-sensors'].prefix]
configure(*configure_args)
with working_dir("src"):
configure_args = ["--prefix=%s" % prefix]
@@ -44,6 +61,10 @@ def install(self, spec, prefix):
# fail, so that PAPI does not get confused
configure_args.append('MPICC=:')
configure_args.append(
'--with-components={0}'.format(' '.join(
filter(lambda x: spec.variants[x].value, spec.variants))))
configure(*configure_args)
# Don't use <malloc.h>

View File

@@ -18,6 +18,7 @@ class Pflotran(AutotoolsPackage):
maintainers = ['ghammond86', 'balay']
version('develop')
version('xsdk-0.5.0', commit='98a959c591b72f73373febf5f9735d2c523b4c20')
version('xsdk-0.4.0', commit='c851cbc94fc56a32cfdb0678f3c24b9936a5584e')
version('xsdk-0.3.0', branch='release/xsdk-0.3.0')
version('xsdk-0.2.0', commit='4da763c6136df57caff43f98c926433958cfdea6')
@@ -25,11 +26,11 @@ class Pflotran(AutotoolsPackage):
depends_on('mpi')
depends_on('hdf5@1.8.12:+mpi+fortran')
depends_on('petsc@develop:+hdf5+metis', when='@develop')
depends_on('petsc@3.12:+hdf5+metis', when='@xsdk-0.5.0')
depends_on('petsc@3.10:+hdf5+metis', when='@xsdk-0.4.0')
depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0')
depends_on('petsc@3.8.0:+hdf5+metis', when='@xsdk-0.3.0')
@property
def parallel(self):
return (self.spec.satisfies('@develop') or
self.spec.satisfies('@xsdk-0.4.0'))
return (self.spec.satisfies('@xsdk-0.4.0:'))

View File

@@ -21,9 +21,16 @@ class Plumed(AutotoolsPackage):
and C/C++ codes.
"""
homepage = 'http://www.plumed.org/'
url = 'https://github.com/plumed/plumed2/archive/v2.5.0.tar.gz'
url = 'https://github.com/plumed/plumed2/archive/v2.5.3.tar.gz'
git = 'https://github.com/plumed/plumed2.git'
version('master', branch='master')
version('2.6b', sha256='3ecda9d46967c8ddd08e820aed974794d926cffb78b262f9d42cdbece3b15677')
version('2.5.3', preferred=True, sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc')
version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4')
version('2.5.1', sha256='de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba')
version('2.5.0', sha256='53e08187ec9f8af2326fa84407e34644a7c51d2af93034309fb70675eee5e4f7')
version('2.4.6', sha256='c22ad19f5cd36ce9fe4ba0b53158fc2a3d985c48fc04606e3f3b3e835b994cb3')
version('2.4.4', sha256='1e5c24109314481fad404da97d61c7339b219e27e120c9c80bacc79c9f6a51a8')
version('2.4.2', sha256='528ce57f1f5330480bcd403140166a4580efd2acaea39c85dfeca5e2cd649321')
version('2.4.1', sha256='f00410ebdd739c2ddf55fcd714ff4bd88a1029e02d2fc9cea0b5fca34e0fc4eb')
@@ -53,7 +60,7 @@ class Plumed(AutotoolsPackage):
depends_on('lapack')
# For libmatheval support through the 'function' module
# which is enabled by default (or when optional_modules=all)
depends_on('libmatheval')
depends_on('libmatheval', when='@:2.4.99')
depends_on('mpi', when='+mpi')
depends_on('gsl', when='+gsl')

View File

@@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import spack.architecture
class Pmdk(Package):
@@ -36,7 +35,7 @@ def install(self, spec, prefix):
# pmdk is particular about the ARCH specification, must be
# exactly "x86_64" for build to work
if 'x86_64' in spack.architecture.sys_type():
if spec.target.family == 'x86_64':
make_args += ['ARCH=x86_64']
make("install", *make_args)

View File

@@ -31,7 +31,7 @@ class Precice(CMakePackage):
# Skip version 1.1.1 entirely, the cmake was lacking install.
variant('mpi', default=True, description='Enable MPI support')
variant('petsc', default=False, description='Enable PETSc support')
variant('petsc', default=True, description='Enable PETSc support')
variant('python', default=False, description='Enable Python support')
variant('shared', default=True, description='Build shared libraries')

View File

@@ -15,6 +15,5 @@ class PyEnum34(PythonPackage):
version('1.1.6', sha256='8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1')
depends_on('python')
conflicts('python@3.4:')
depends_on('py-ordereddict', when='^python@:2.6', type=('build', 'run'))
depends_on('py-setuptools', type='build')

View File

@@ -85,7 +85,7 @@ class PyMatplotlib(PythonPackage):
depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7')
depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7')
depends_on('py-backports-functools-lru-cache', type=('build', 'run'),
when='@2.1.0:2.999.999')
when='@2.1.0:2.999.999 ^python@:2')
depends_on('py-six@1.9.0:', type=('build', 'run'), when='@:2')
# Optional backend dependencies

View File

@@ -31,5 +31,6 @@ class PyMultiqc(PythonPackage):
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-simplejson', type=('build', 'run'))
depends_on('py-requests', type=('build', 'run'), when='@1.5:')
depends_on('py-enum34', type=('build', 'run'), when='@1.5:')
depends_on('py-enum34', type=('build', 'run'), when='@1.4:1.5 ^python@:3.3')
depends_on('py-enum34', type=('build', 'run'), when='@1.3')
depends_on('py-markdown', type=('build', 'run'), when='@1.5:')

View File

@@ -15,7 +15,7 @@ class PyNumpy(PythonPackage):
number capabilities"""
homepage = "http://www.numpy.org/"
url = "https://pypi.io/packages/source/n/numpy/numpy-1.17.3.zip"
url = "https://pypi.io/packages/source/n/numpy/numpy-1.17.4.zip"
maintainers = ['adamjstewart']
install_time_test_callbacks = ['install_test', 'import_module_test']
@@ -27,6 +27,7 @@ class PyNumpy(PythonPackage):
'numpy.distutils.command', 'numpy.distutils.fcompiler'
]
version('1.17.4', sha256='f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316')
version('1.17.3', sha256='a0678793096205a4d784bd99f32803ba8100f639cf3b932dc63b21621390ea7e')
version('1.17.2', sha256='73615d3edc84dd7c4aeb212fa3748fb83217e00d201875a47327f55363cef2df')
version('1.17.1', sha256='f11331530f0eff69a758d62c2461cd98cdc2eae0147279d8fc86e0464eb7e8ca')

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
class PyPyqt4(SIPPackage):
@@ -28,16 +29,73 @@ class PyPyqt4(SIPPackage):
version('4.11.3', sha256='853780dcdbe2e6ba785d703d059b096e1fc49369d3e8d41a060be874b8745686',
url='http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz')
variant('qsci', default=False, description='Build with QScintilla python bindings')
# Supposedly can also be built with Qt 5 compatibility layer
depends_on('qt@:4')
depends_on('qscintilla', when='+qsci')
# For building Qscintilla python bindings
resource(name='qscintilla',
url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.10.2/QScintilla_gpl-2.10.2.tar.gz',
sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0',
destination='spack-resource-qscintilla',
when='^qscintilla@2.10.2'
)
# https://www.riverbankcomputing.com/static/Docs/PyQt4/installation.html
def configure_file(self):
return 'configure-ng.py'
def configure_args(self):
return [
args = [
'--pyuic4-interpreter', self.spec['python'].command.path,
'--sipdir', self.prefix.share.sip.PyQt4,
'--stubsdir', join_path(site_packages_dir, 'PyQt4'),
'--stubsdir', join_path(site_packages_dir, 'PyQt4')
]
if '+qsci' in self.spec:
args.extend(['--qsci-api-destdir', self.prefix.share.qsci])
return args
@run_after('install')
def make_qsci(self):
if '+qsci' in self.spec:
rsrc_py_path = os.path.join(
self.stage.source_path,
'spack-resource-qscintilla/QScintilla_gpl-' +
str(self.spec['qscintilla'].version), 'Python')
with working_dir(rsrc_py_path):
pydir = join_path(site_packages_dir, 'PyQt4')
python = self.spec['python'].command
python('configure.py',
'--sip=' + self.prefix.bin.sip,
'--qsci-incdir=' +
self.spec['qscintilla'].prefix.include,
'--qsci-libdir=' + self.spec['qscintilla'].prefix.lib,
'--qsci-sipdir=' + self.prefix.share.sip.PyQt4,
'--apidir=' + self.prefix.share.qsci,
'--destdir=' + pydir,
'--pyqt-sipdir=' + self.prefix.share.sip.PyQt4,
'--sip-incdir=' + python_include_dir,
'--stubsdir=' + pydir)
# Fix build errors
# "QAbstractScrollArea: No such file or directory"
# "qprinter.h: No such file or directory"
# ".../Qsci.so: undefined symbol: _ZTI10Qsci...."
qscipro = FileFilter('Qsci/Qsci.pro')
link_qscilibs = 'LIBS += -L' + self.prefix.lib +\
' -lqscintilla2_qt4'
qscipro.filter('TEMPLATE = lib',
'TEMPLATE = lib\nQT += widgets' +
'\nQT += printsupport\n' + link_qscilibs)
make()
# Fix installation prefixes
makefile = FileFilter('Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)', '')
makefile = FileFilter('Qsci/Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)', '')
make('install')

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
class PyPyqt5(SIPPackage):
@@ -27,16 +28,74 @@ class PyPyqt5(SIPPackage):
version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9')
variant('qsci', default=False, description='Build with QScintilla python bindings')
# Without opengl support, I got the following error:
# sip: QOpenGLFramebufferObject is undefined
depends_on('qt@5:+opengl')
depends_on('python@2.6:', type=('build', 'run'))
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
depends_on('qscintilla', when='+qsci')
# For building Qscintilla python bindings
resource(name='qscintilla',
url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.10.2/QScintilla_gpl-2.10.2.tar.gz',
sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0',
destination='spack-resource-qscintilla',
when='^qscintilla@2.10.2'
)
# https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html
def configure_args(self):
return [
args = [
'--pyuic5-interpreter', self.spec['python'].command.path,
'--sipdir', self.prefix.share.sip.PyQt5,
'--stubsdir', join_path(site_packages_dir, 'PyQt5'),
]
if '+qsci' in self.spec:
args.extend(['--qsci-api-destdir', self.prefix.share.qsci])
return args
@run_after('install')
def make_qsci(self):
if '+qsci' in self.spec:
rsrc_py_path = os.path.join(
self.stage.source_path,
'spack-resource-qscintilla/QScintilla_gpl-' +
str(self.spec['qscintilla'].version), 'Python')
with working_dir(rsrc_py_path):
pydir = join_path(site_packages_dir, 'PyQt5')
python = self.spec['python'].command
python('configure.py', '--pyqt=PyQt5',
'--sip=' + self.prefix.bin.sip,
'--qsci-incdir=' +
self.spec['qscintilla'].prefix.include,
'--qsci-libdir=' + self.spec['qscintilla'].prefix.lib,
'--qsci-sipdir=' + self.prefix.share.sip.PyQt5,
'--apidir=' + self.prefix.share.qsci,
'--destdir=' + pydir,
'--pyqt-sipdir=' + self.prefix.share.sip.PyQt5,
'--sip-incdir=' + python_include_dir,
'--stubsdir=' + pydir)
# Fix build errors
# "QAbstractScrollArea: No such file or directory"
# "qprinter.h: No such file or directory"
# ".../Qsci.so: undefined symbol: _ZTI10Qsci...."
qscipro = FileFilter('Qsci/Qsci.pro')
link_qscilibs = 'LIBS += -L' + self.prefix.lib +\
' -lqscintilla2_qt5'
qscipro.filter('TEMPLATE = lib',
'TEMPLATE = lib\nQT += widgets' +
'\nQT += printsupport\n' + link_qscilibs)
make()
# Fix installation prefixes
makefile = FileFilter('Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)', '')
makefile = FileFilter('Qsci/Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)', '')
make('install')

View File

@@ -0,0 +1,17 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
#
from spack import *
class PyRangerFm(PythonPackage):
"""A VIM-inspired filemanager for the console"""
homepage = "https://pypi.python.org/pypi/ranger-fm"
url = "https://pypi.io/packages/source/r/ranger-fm/ranger-fm-1.9.2.tar.gz"
git = "https://github.com/ranger/ranger.git"
version('1.9.2', sha256='0ec62031185ad1f40b9faebd5a2d517c8597019c2eee919e3f1c60ce466d8625')

View File

@@ -1,18 +0,0 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
#
from spack import *
class PyRanger(PythonPackage):
"""A VIM-inspired filemanager for the console"""
homepage = "http://ranger.nongnu.org/"
url = "https://github.com/ranger/ranger/archive/v1.7.2.tar.gz"
version('1.7.2', sha256='80917c93396e46272b6de63816d925eb708291a9f7a559d49b24c571ea0eeeb3')
depends_on('python@2.6:')

View File

@@ -79,7 +79,7 @@ def setup_build_environment(self, env):
# https://scikit-learn.org/stable/developers/advanced_installation.html#mac-osx
elif self.spec.satisfies('@0.21: %clang platform=darwin +openmp'):
env.append_flags(
'CPPFLAGS', '-Xpreprocessor -fopenmp')
'CPPFLAGS', self.compiler.openmp_flag)
env.append_flags(
'CFLAGS', self.spec['llvm-openmp'].headers.include_flags)
env.append_flags(

View File

@@ -128,7 +128,7 @@ class PyTorch(PythonPackage):
depends_on('fbgemm', when='+fbgemm')
# TODO: add dependency: https://github.com/ROCmSoftwarePlatform/MIOpen
depends_on('miopen', when='+miopen')
depends_on('mkl', when='+mkldnn')
depends_on('intel-mkl-dnn', when='+mkldnn')
# TODO: add dependency: https://github.com/Maratyszcza/NNPACK
depends_on('nnpack', when='+nnpack')
depends_on('qnnpack', when='+qnnpack')
@@ -219,7 +219,7 @@ def enable_or_disable(variant, keyword='USE', var=None, newer=False):
enable_or_disable('mkldnn')
if '+mkldnn' in self.spec:
env.set('MKLDNN_HOME', self.spec['intel-mkl'].prefix)
env.set('MKLDNN_HOME', self.spec['intel-mkl-dnn'].prefix)
enable_or_disable('nnpack')
enable_or_disable('qnnpack')

View File

@@ -0,0 +1,68 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
class Qscintilla(QMakePackage):
"""
QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor control.
"""
homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro"
url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.11.2/QScintilla_gpl-2.11.2.tar.gz"
version('2.11.2', sha256='029bdc476a069fda2cea3cd937ba19cc7fa614fb90578caef98ed703b658f4a1')
# Newer versions of Qscintilla won't build, so prefer the following version
version('2.10.2', sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0', preferred=True)
variant('designer', default=False, description="Enable pluging for Qt-Designer")
# No 'python' variant, since Python bindings will be
# built by PyQt5+qsci instead
depends_on('qt')
@run_before('qmake')
def chdir(self):
os.chdir(str(self.stage.source_path) + '/Qt4Qt5')
def qmake_args(self):
# below, DEFINES ... gets rid of ...regex...errors during build
# although, there shouldn't be such errors since we use '-std=c++11'
args = ['CONFIG+=-std=c++11', 'DEFINES+=NO_CXX11_REGEX=1']
return args
# When INSTALL_ROOT is unset, qscintilla is installed under qt_prefix
# giving 'Nothing Installed Error'
def setup_build_environment(self, env):
spack_env.set('INSTALL_ROOT', self.prefix)
def setup_run_environment(self, env):
env.prepend_path('QT_PLUGIN_PATH', self.prefix.plugins)
# Fix install prefix
@run_after('qmake')
def fix_install_path(self):
makefile = FileFilter('Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)' +
self.spec['qt'].prefix, '$(INSTALL_ROOT)')
@run_after('install')
def postinstall(self):
# Make designer plugin
if '+designer' in self.spec:
with working_dir(os.path.join(self.stage.source_path,
'designer-Qt4Qt5')):
qscipro = FileFilter('designer.pro')
qscipro.filter('TEMPLATE = lib',
'TEMPLATE = lib\nINCLUDEPATH += ../Qt4Qt5\n')
qmake()
make()
makefile = FileFilter('Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)' +
self.spec['qt'].prefix, '$(INSTALL_ROOT)')
make('install')

View File

@@ -12,7 +12,11 @@ class Revbayes(CMakePackage):
homepage = "https://revbayes.github.io"
url = "https://github.com/revbayes/revbayes/archive/v1.0.11.tar.gz"
git = "https://github.com/revbayes/revbayes.git"
version('develop', branch='development')
version('1.0.13', sha256='472b4ccc44d813c1ff1b8d27e8ccf3d96388de79aa1688b3714f683ba65038fa')
version('1.0.12', sha256='d79f3a9bc72305cab35009d11e1f027fcaacde7329a4c49b5b8285588a8d3588')
version('1.0.11', sha256='7e81b1952e3a63cb84617fa632f4ccdf246b4d79e7d537a423540de047dadf50')
version('1.0.10', sha256='95e9affe8ca8d62880cf46778b6ec9dd8726e62a185670ebcbadf2eb2bb79f93')
@@ -21,9 +25,14 @@ class Revbayes(CMakePackage):
depends_on('boost')
depends_on('mpi', when='+mpi')
conflicts('%gcc@7.1.0:')
conflicts('%gcc@7.1.0:', when='@:1.0.12')
root_cmakelists_dir = 'projects/cmake/build'
@property
def root_cmakelists_dir(self):
if self.spec.version > Version('1.0.13') and '+mpi' in self.spec:
return 'projects/cmake/build-mpi'
else:
return 'projects/cmake/build'
@run_before('cmake')
def regenerate(self):
@@ -44,3 +53,9 @@ def install(self, spec, prefix):
else:
install_path = join_path(self.build_directory, '..', 'rb')
install(install_path, prefix.bin)
@when('@1.0.12:1.0.13')
def install(self, spec, prefix):
mkdirp(prefix.bin)
install_path = join_path(self.build_directory, '..', 'rb')
install(install_path, prefix.bin)

View File

@@ -0,0 +1,15 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Rnaz(AutotoolsPackage):
"""RNAz - predicting structural noncoding RNAs."""
homepage = "https://www.tbi.univie.ac.at/software/RNAz"
url = "https://www.tbi.univie.ac.at/software/RNAz/RNAz-2.1.tar.gz"
version('2.1', sha256='b32ec0361889319f2058f224d6c456c853dbc30dff4dba90c53a8f9fd7b83be5')

View File

@@ -252,8 +252,7 @@ class Root(CMakePackage):
depends_on('vc', when='+vc')
depends_on('veccore', when='+veccore')
depends_on('vdt', when='+vdt')
depends_on('libxml2+python', when='+xml+python')
depends_on('libxml2~python', when='+xml~python')
depends_on('libxml2', when='+xml')
depends_on('xrootd', when='+xrootd')
# depends_on('hdfs') - supported (TODO)
@@ -507,23 +506,27 @@ def cmake_args(self):
spec['python'].command.path)
return options
def setup_environment(self, spack_env, run_env):
run_env.set('ROOTSYS', self.prefix)
run_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
run_env.prepend_path('PYTHONPATH', self.prefix.lib)
def setup_build_environment(self, env):
if 'lz4' in self.spec:
spack_env.append_path('CMAKE_PREFIX_PATH',
self.spec['lz4'].prefix)
spack_env.set('SPACK_INCLUDE_DIRS', '', force=True)
env.append_path('CMAKE_PREFIX_PATH',
self.spec['lz4'].prefix)
env.set('SPACK_INCLUDE_DIRS', '', force=True)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('ROOTSYS', self.prefix)
spack_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
spack_env.prepend_path('PYTHONPATH', self.prefix.lib)
spack_env.prepend_path('PATH', self.prefix.bin)
spack_env.append_path('CMAKE_MODULE_PATH', '{0}/cmake'
.format(self.prefix))
run_env.set('ROOTSYS', self.prefix)
run_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
run_env.prepend_path('PYTHONPATH', self.prefix.lib)
run_env.prepend_path('PATH', self.prefix.bin)
def setup_run_environment(self, env):
env.set('ROOTSYS', self.prefix)
env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
env.prepend_path('PYTHONPATH', self.prefix.lib)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('ROOTSYS', self.prefix)
env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
env.prepend_path('PYTHONPATH', self.prefix.lib)
env.prepend_path('PATH', self.prefix.bin)
env.append_path('CMAKE_MODULE_PATH', '{0}/cmake'
.format(self.prefix))
def setup_dependent_run_environment(self, env, dependent_spec):
env.set('ROOTSYS', self.prefix)
env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1)))
env.prepend_path('PYTHONPATH', self.prefix.lib)
env.prepend_path('PATH', self.prefix.bin)

View File

@@ -0,0 +1,32 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Sfcgal(CMakePackage):
"""
SFCGAL is a C++ wrapper library around CGAL with the aim of supporting
ISO 19107:2013 and OGC Simple Features Access 1.2 for 3D operations. SFCGAL
provides standard compliant geometry types and operations, that can be
accessed from its C or C++ APIs.
"""
homepage = "http://www.sfcgal.org/"
url = "https://github.com/Oslandia/SFCGAL/archive/v1.3.7.tar.gz"
version('1.3.7', sha256='30ea1af26cb2f572c628aae08dd1953d80a69d15e1cac225390904d91fce031b')
# Ref: http://oslandia.github.io/SFCGAL/installation.html
depends_on('cgal@4.3 +core')
depends_on('boost@1.54.0:1.69.0')
depends_on('mpfr@2.2.1:')
depends_on('gmp@4.2:')
def cmake_args(self):
# It seems viewer is discontinued as of v1.3.0
# https://github.com/Oslandia/SFCGAL/releases/tag/v1.3.0
# Also, see https://github.com/Oslandia/SFCGAL-viewer
return ['-DSFCGAL_BUILD_VIEWER=OFF']

View File

@@ -14,9 +14,17 @@ class Sirius(CMakePackage, CudaPackage):
homepage = "https://github.com/electronic-structure/SIRIUS"
url = "https://github.com/electronic-structure/SIRIUS/archive/v6.1.5.tar.gz"
list_url = "https://github.com/electronic-structure/SIRIUS/releases"
git = "https://github.com/electronic-structure/SIRIUS.git"
version('6.1.5', sha256='379f0a2e5208fd6d91c2bd4939c3a5c40002975fb97652946fa1bfe4a3ef97cb')
version('develop', branch='develop')
version('master', branch='master')
version('6.4.1', sha256='86f25c71517952a63e92e0a9bcf66d27e4afb2b0d67cf84af480f116b8e7f53c')
version('6.4.0', sha256='bc61758b71dd2996e2ff515b8c3560b2c69c00931cb2811a163a31bcfea4436e')
version('6.3.4', sha256='8839e988b4bb6ef99b6180f7fba03a5537e31fce51bb3e4c2298b513d6a07e0a')
version('6.3.3', sha256='7ba30a4e5c9a545433251211454ec0d59b74ba8941346057bc7de11e7f6886f7')
version('6.3.2', sha256='1723e5ad338dad9a816369a6957101b2cae7214425406b12e8712c82447a7ee5')
version('6.1.5', sha256='379f0a2e5208fd6d91c2bd4939c3a5c40002975fb97652946fa1bfe4a3ef97cb')
variant('shared', default=False, description="Build shared libraries")
variant('openmp', default=True, description="Build with OpenMP support")
@@ -25,8 +33,12 @@ class Sirius(CMakePackage, CudaPackage):
variant('elpa', default=False, description="Use ELPA")
variant('vdwxc', default=False, description="Enable libvdwxc support")
variant('scalapack', default=False, description="Enable scalapack support")
variant('magma', default=False, description="Enable MAGMA support")
variant('build_type', default='Release',
description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo'))
depends_on('python')
depends_on('python', type=('build', 'run'))
depends_on('mpi')
depends_on('gsl')
depends_on('lapack')
@@ -35,19 +47,29 @@ class Sirius(CMakePackage, CudaPackage):
depends_on('spglib')
depends_on('hdf5+hl')
depends_on('pkgconfig', type='build')
depends_on('py-mpi4py', when='+python')
depends_on('py-pybind11', when='+python')
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('py-scipy', when='+python', type=('build', 'run'))
depends_on('py-h5py', when='+python', type=('build', 'run'))
depends_on('py-mpi4py', when='+python', type=('build', 'run'))
depends_on('py-pyyaml', when='+python', type=('build', 'run'))
depends_on('py-mpi4py', when='+python', type=('build', 'run'))
depends_on('py-voluptuous', when='+python', type=('build', 'run'))
depends_on('py-pybind11', when='+python', type=('build', 'run'))
depends_on('magma', when='+magma')
depends_on('spfft', when='@6.4.0:~cuda')
depends_on('spfft+cuda', when='@6.4.0:+cuda')
depends_on('elpa+openmp', when='+elpa+openmp')
depends_on('elpa~openmp', when='+elpa~openmp')
depends_on('libvdwxc+mpi', when='+vdwxc')
depends_on('scalapack', when='+scalapack')
depends_on('cuda', when='+cuda')
extends('python', when='+python')
conflicts('+shared', when='@6.3.0:') # option to build shared libraries has been removed
# TODO:
# add support for MAGMA, CRAY_LIBSCI, ROCm, testing
# add support for CRAY_LIBSCI, ROCm, testing
patch("strip-spglib-include-subfolder.patch", when='@6.1.5')
patch("link-libraries-fortran.patch", when='@6.1.5')
@@ -96,6 +118,7 @@ def _def(variant, flag=None):
args = [
_def('+openmp'),
_def('+elpa'),
_def('+magma'),
_def('+vdwxc'),
_def('+scalapack'),
_def('+fortran', 'CREATE_FORTRAN_BINDINGS'),
@@ -137,7 +160,7 @@ def _def(variant, flag=None):
if '+cuda' in spec:
cuda_arch = spec.variants['cuda_arch'].value
if cuda_arch:
if cuda_arch[0] != 'none':
args += [
'-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])
]

View File

@@ -2,8 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os.path
class SpectrumMpi(Package):
@@ -19,41 +18,41 @@ def install(self, spec, prefix):
def setup_dependent_package(self, module, dependent_spec):
# get the compiler names
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
self.spec.mpicc = join_path(self.prefix.bin, 'mpixlc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpixlC')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpixlf')
self.spec.mpifc = join_path(self.prefix.bin, 'mpixlf')
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpixlc')
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpixlC')
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpixlf')
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpixlf')
elif '%pgi' in dependent_spec:
self.spec.mpicc = join_path(self.prefix.bin, 'mpipgicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpipgic++')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpipgifort')
self.spec.mpifc = join_path(self.prefix.bin, 'mpipgifort')
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpipgicc')
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpipgic++')
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpipgifort')
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpipgifort')
else:
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc')
self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx')
self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpif77')
self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
def setup_dependent_build_environment(self, env, dependent_spec):
if '%xl' in dependent_spec or '%xl_r' in dependent_spec:
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpixlc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpixlC'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpixlf'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpixlf'))
env.set('MPICC', os.path.join(self.prefix.bin, 'mpixlc'))
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpixlC'))
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpixlf'))
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpixlf'))
elif '%pgi' in dependent_spec:
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpipgicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpipgic++'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpipgifort'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpipgifort'))
env.set('MPICC', os.path.join(self.prefix.bin, 'mpipgicc'))
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpipgic++'))
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpipgifort'))
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpipgifort'))
else:
spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc'))
env.set('MPICXX', os.path.join(self.prefix.bin, 'mpic++'))
env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77'))
env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90'))
spack_env.set('OMPI_CC', spack_cc)
spack_env.set('OMPI_CXX', spack_cxx)
spack_env.set('OMPI_FC', spack_fc)
spack_env.set('OMPI_F77', spack_f77)
env.set('OMPI_CC', spack_cc)
env.set('OMPI_CXX', spack_cxx)
env.set('OMPI_FC', spack_fc)
env.set('OMPI_F77', spack_f77)
spack_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)
env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib)

View File

@@ -49,6 +49,7 @@ class Stat(AutotoolsPackage):
depends_on('py-xdot', when='@4.0.1:')
depends_on('swig')
depends_on('mpi', when='+examples')
depends_on('boost')
patch('configure_mpicxx.patch', when='@2.1.0')
@@ -60,6 +61,7 @@ def configure_args(self):
"--with-graphlib=%s" % spec['graphlib'].prefix,
"--with-stackwalker=%s" % spec['dyninst'].prefix,
"--with-python=%s" % spec['python'].command.path,
"--with-boost=%s" % spec['boost'].prefix,
]
if '+fgfs' in spec:
args.append('--with-fgfs=%s'

View File

@@ -18,12 +18,14 @@ class Strumpack(CMakePackage):
iterative solvers."""
homepage = "http://portal.nersc.gov/project/sparse/strumpack"
url = "https://github.com/pghysels/STRUMPACK/archive/v3.0.3.tar.gz"
url = "https://github.com/pghysels/STRUMPACK/archive/v3.3.0.tar.gz"
git = "https://github.com/pghysels/STRUMPACK.git"
maintainers = ['pghysels']
version('master', branch='master')
version('3.3.0', sha256='499fd3b58656b4b6495496920e5372895861ebf15328be8a7a9354e06c734bc7')
version('3.2.0', sha256='34d93e1b2a3b8908ef89804b7e08c5a884cbbc0b2c9f139061627c0d2de282c1')
version('3.1.1', sha256='c1c3446ee023f7b24baa97b24907735e89ce4ae9f5ef516645dfe390165d1778')
version('3.1.0', sha256='b4f91b7d433955518b04538be1c726afc5de4bffb163e982ef8844d391b26fa7')
version('3.0.3', sha256='2bd2a40d9585b769ae4ba461de02c6e36433bf2b21827f824a50f2fdf73389f7')
@@ -32,6 +34,7 @@ class Strumpack(CMakePackage):
version('3.0.0', sha256='7acd9b4653b8b11380de733c80b164348ca00f9226904f5dc166a8e3db88cd20')
version('2.2.0', sha256='8fe73875cbbb29ed1faf714e3bf13ad538eb062e39d7d5e73cb9c4aafb571e24')
variant('shared', default=False, description='Build shared libraries')
variant('mpi', default=True, description='Use MPI')
variant('openmp', default=True,
description='Enable thread parallellism via tasking with OpenMP')
@@ -39,6 +42,8 @@ class Strumpack(CMakePackage):
description='Enable use of ParMetis')
variant('scotch', default=False,
description='Enable use of Scotch')
variant('butterflypack', default=True,
description='Enable use of ButterflyPACK')
variant('c_interface', default=True,
description='Enable C interface')
variant('count_flops', default=False,
@@ -59,8 +64,11 @@ class Strumpack(CMakePackage):
depends_on('parmetis', when='+parmetis')
depends_on('scotch~metis', when='+scotch')
depends_on('scotch~metis+mpi', when='+scotch+mpi')
depends_on('butterflypack@1.1.0:', when='+butterflypack+mpi')
conflicts('+parmetis', when='~mpi')
conflicts('+butterflypack', when='~mpi')
conflicts('+butterflypack', when='strumpack@:3.2.0')
patch('intel-19-compile.patch', when='@3.1.1')
@@ -90,11 +98,17 @@ def on_off(varstr):
if spec.satisfies('@3.0.4:'):
args.extend([
'-DTPL_ENABLE_PARMETIS=%s' % on_off('+parmetis'),
'-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch')
'-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch'),
'-DTPL_ENABLE_BPACK=%s' % on_off('+butterflypack')
])
else:
args.extend([
'-DSTRUMPACK_USE_PARMETIS=%s' % on_off('+parmetis'),
'-DSTRUMPACK_USE_SCOTCH=%s' % on_off('+scotch')
])
args.extend([
'-DBUILD_SHARED_LIBS=%s' % on_off('+shared')
])
return args

View File

@@ -0,0 +1,69 @@
diff --git a/config/FindPackageMultipass.cmake b/config/FindPackageMultipass.cmake
index 128eee9..847c246 100644
--- a/config/FindPackageMultipass.cmake
+++ b/config/FindPackageMultipass.cmake
@@ -138,7 +138,10 @@ macro (MULTIPASS_SOURCE_RUNS includes libraries source runs language)
math (EXPR _tmp "${MULTIPASS_TEST_COUNT} + 1") # Why can't I add to a cache variable?
set (MULTIPASS_TEST_COUNT ${_tmp} CACHE INTERNAL "Unique test ID")
set (testname MULTIPASS_TEST_${MULTIPASS_TEST_COUNT}_${runs})
- set (testdir ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp)
+ set (testdir ${PROJECT_BINARY_DIR}/PETSC_test)
+ if (NOT EXISTS ${testdir})
+ file(MAKE_DIRECTORY ${testdir})
+ endif ()
set (CMAKE_REQUIRED_INCLUDES ${includes})
set (CMAKE_REQUIRED_LIBRARIES ${libraries})
# if MPI is available, use it for the test
@@ -148,24 +151,38 @@ macro (MULTIPASS_SOURCE_RUNS includes libraries source runs language)
set (REQUIRED_COMPILER ${CMAKE_${language}_COMPILER})
endif ()
if(${language} STREQUAL "C")
- file(WRITE ${testdir}/src.c "${source}")
- try_run(${testname} _compiles ${testdir} ${testdir}/src.c
- CMAKE_FLAGS -DCMAKE_C_COMPILER=${REQUIRED_COMPILER} -DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- elseif(${language} STREQUAL "CXX")
- file(WRITE ${testdir}/src.cxx "${source}")
- try_run(${testname} _compiles ${testdir} ${testdir}/src.cxx
- CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${REQUIRED_COMPILER} -DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- endif()
- # ${testname} is the exit code returned by try_run,
- # so 0 is success and anything else is a failure.
- if (${testname})
- set (${runs} FALSE)
+ set (extension c)
else ()
+ set (extension cxx)
+ endif ()
+ # Create simple test code
+ file(WRITE ${testdir}/src.${extension} "${source}")
+ # Create a CMakeLists.txt file for the test code
+ file(WRITE ${testdir}/CMakeLists.txt
+ "cmake_minimum_required(VERSION 3.5)\n"
+ "project(ctest ${language})\n"
+ "set(CMAKE_VERBOSE_MAKEFILE ON)\n"
+ "set(CMAKE_${language}_COMPILER \"${REQUIRED_COMPILER}\")\n"
+ "set(CMAKE_${language}_FLAGS \"${CMAKE_${language}_FLAGS}\")\n"
+ "include_directories(${CMAKE_REQUIRED_INCLUDES})\n"
+ "add_executable(ctest src.${extension})\n"
+ "target_link_libraries(ctest ${CMAKE_REQUIRED_LIBRARIES})\n")
+ # Attempt to compile the test code
+ try_compile(${testname} ${testdir} ${testdir} ctest
+ OUTPUT_VARIABLE _output)
+ # Write output compiling the test code
+ file(WRITE ${testdir}/src.out "${_output}")
+ # To ensure we do not use stuff from the previous attempts,
+ # we must remove the CMakeFiles directory.
+ file(REMOVE_RECURSE ${testdir}/CMakeFiles)
+ # Process test result
+ if (${testname})
set (${runs} TRUE)
+ else ()
+ set (${runs} FALSE)
endif ()
unset (_compiles)
+ unset (_output)
endmacro (MULTIPASS_SOURCE_RUNS)

View File

@@ -194,6 +194,7 @@ class Sundials(CMakePackage):
# remove OpenMP header file and function from hypre vector test code
patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0')
patch('FindPackageMultipass.cmake.patch', when='@5.0.0')
# ==========================================================================
# SUNDIALS Settings

View File

@@ -40,6 +40,9 @@ class SuperluDist(CMakePackage):
depends_on('parmetis')
depends_on('metis@5:')
patch('xl-611.patch', when='@:6.1.1 %xl')
patch('xl-611.patch', when='@:6.1.1 %xl_r')
def cmake_args(self):
spec = self.spec
args = [
@@ -54,6 +57,10 @@ def cmake_args(self):
'-DTPL_PARMETIS_INCLUDE_DIRS=%s' % spec['parmetis'].prefix.include
]
if (spec.satisfies('%xl') or spec.satisfies('%xl_r')) and \
spec.satisfies('@:6.1.1'):
args.append('-DCMAKE_C_FLAGS=-DNoChange')
if '+int64' in spec:
args.append('-DXSDK_INDEX_SIZE=64')
else:

View File

@@ -0,0 +1,26 @@
commit e51132dbd022139933678b3a751a9b3148fafd19
Author: Satish Balay <balay@mcs.anl.gov>
Date: Tue Nov 12 16:07:08 2019 -0600
add ztrtri_ mapping for xlf
diff --git a/SRC/Cnames.h b/SRC/Cnames.h
index 792f514..ebef619 100644
--- a/SRC/Cnames.h
+++ b/SRC/Cnames.h
@@ -179,6 +179,7 @@ at the top-level directory.
#define zher2_ ZHER2
#define zgeru_ ZGERU
+#define ztrtri_ ZTRTRI
/*
#define mc64id_dist MC64ID_DIST
#define mc64ad_dist MC64AD_DIST
@@ -307,6 +308,7 @@ at the top-level directory.
#define zher2_ zher2
#define zgeru_ zgeru
+#define ztrtri_ ztrtri
/*
#define mc64id_dist mc64id_dist
#define mc64ad_dist mc64ad_dist

View File

@@ -35,6 +35,7 @@ class Trilinos(CMakePackage):
version('xsdk-0.2.0', tag='xsdk-0.2.0')
version('develop', branch='develop')
version('master', branch='master')
version('12.18.1', commit='55a75997332636a28afc9db1aee4ae46fe8d93e7') # tag trilinos-release-12-8-1
version('12.14.1', sha256='52a4406cca2241f5eea8e166c2950471dd9478ad6741cbb2a7fc8225814616f0')
version('12.12.1', sha256='5474c5329c6309224a7e1726cf6f0d855025b2042959e4e2be2748bd6bb49e18')
version('12.10.1', sha256='ab81d917196ffbc21c4927d42df079dd94c83c1a08bda43fef2dd34d0c1a5512')
@@ -190,6 +191,12 @@ class Trilinos(CMakePackage):
commit='4fe4d9d56cfd4f8a61f392b81d8efd0e389ee764', # branch dtk-3.0
placement='DataTransferKit',
when='+dtk @12.14.0:12.14.99')
resource(name='dtk',
git='https://github.com/ornl-cees/DataTransferKit.git',
commit='edfa050cd46e2274ab0a0b7558caca0079c2e4ca', # tag 3.1-rc1
placement='DataTransferKit',
submodules=True,
when='+dtk @12.18:12.18.99')
resource(name='dtk',
git='https://github.com/ornl-cees/DataTransferKit.git',
branch='master',
@@ -255,7 +262,7 @@ class Trilinos(CMakePackage):
conflicts('+dtk', when='~teuchos')
conflicts('+dtk', when='~tpetra')
# Only allow DTK with Trilinos 12.14 and develop
conflicts('+dtk', when='@0:12.12.99,12.16.0:99,master')
conflicts('+dtk', when='@0:12.12.99,master')
conflicts('+fortrilinos', when='~fortran')
conflicts('+fortrilinos', when='@:99')
conflicts('+fortrilinos', when='@master')

View File

@@ -14,6 +14,9 @@ class Trimgalore(Package):
homepage = "https://github.com/FelixKrueger/TrimGalore"
url = "https://github.com/FelixKrueger/TrimGalore/archive/0.4.4.tar.gz"
version('0.6.4', sha256='eb57e18203d8a1dce1397b930a348a9969eebaa758b8a7304d04c22f216cea2d')
version('0.6.3', sha256='c85104452dbb5cfa8c9307920e804fb53baaad355ce656b111f5243e5eb92db4')
version('0.6.2', sha256='c50b841bdc294a6cdc6a27fb7bfbed1973541d20a68a4708584b817c58b3f376')
version('0.6.1', sha256='658578c29d007fe66f9ab49608442be703a6fcf535db06eb82659c7edccb62b0')
version('0.6.0', sha256='f374dfa4c94e2ad50c63276dda0f341fd95b29cb1d5a0e2ad56e8b0168b758ec')
version('0.4.5', sha256='a6b97e554944ddc6ecd50e78df486521f17225d415aad84e9911163faafe1f3c')

View File

@@ -57,6 +57,7 @@ class Vim(AutotoolsPackage):
depends_on('libxtst', when="+x")
depends_on('ncurses', when="@7.4:")
depends_on('findutils', type='build')
def configure_args(self):
spec = self.spec

View File

@@ -12,6 +12,8 @@ class Vsearch(AutotoolsPackage):
homepage = "https://github.com/torognes/vsearch"
url = "https://github.com/torognes/vsearch/archive/v2.4.3.tar.gz"
version('2.14.1', sha256='388529a39eb0618a09047bf91e0a8ae8c9fd851a05f8d975e299331748f97741')
version('2.13.3', sha256='e5f34ece28b76403d3ba4a673eca41178fe399c35a1023dbc87d0c0da5efaa52')
version('2.4.3', sha256='f7ffc2aec5d76bdaf1ffe7fb733102138214cec3e3846eb225455dcc3c088141')
depends_on('m4', type='build')

View File

@@ -0,0 +1,15 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Which(AutotoolsPackage):
"""GNU which - is a utility that is used to find which executable (or
alias or shell function) is executed when entered on the shell prompt."""
homepage = "https://savannah.gnu.org/projects/which/"
url = "https://ftp.gnu.org/gnu/which/which-2.21.tar.gz"
version('2.21', sha256='f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad')

View File

@@ -5,6 +5,7 @@
from spack import *
import sys
class Xsdk(BundlePackage):
@@ -18,91 +19,129 @@ class Xsdk(BundlePackage):
maintainers = ['balay', 'luszczek']
version('develop')
version('0.5.0')
version('0.4.0')
version('0.3.0')
version('xsdk-0.2.0')
variant('debug', default=False, description='Compile in debug mode')
variant('cuda', default=False, description='Enable CUDA dependent packages')
variant('trilinos', default=True, description='Enable trilinos package build')
variant('omega-h', default=True, description='Enable omega-h package build')
variant('strumpack', default=True, description='Enable strumpack package build')
variant('dealii', default=True, description='Enable dealii package build')
variant('phist', default=True, description='Enable phist package build')
variant('ginkgo', default=True, description='Enable ginkgo package build')
variant('libensemble', default=True, description='Enable py-libensemble package build')
variant('precice', default=(sys.platform != 'darwin'),
description='Enable precice package build')
variant('butterflypack', default=True, description='Enable butterflypack package build')
depends_on('hypre@develop~internal-superlu+superlu-dist+shared', when='@develop')
depends_on('hypre@develop+superlu-dist+shared', when='@develop')
depends_on('hypre@2.18.2+superlu-dist+shared', when='@0.5.0')
depends_on('hypre@2.15.1~internal-superlu', when='@0.4.0')
depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0')
depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0')
depends_on('mfem@develop+mpi+hypre+superlu-dist+petsc~sundials+examples+miniapps', when='@develop')
depends_on('mfem@4.0.1-xsdk+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.5.0')
depends_on('mfem@3.4.0+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.4.0')
depends_on('mfem@3.3.2+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.3.0')
depends_on('superlu-dist@develop', when='@develop')
depends_on('superlu-dist@6.1.1', when='@0.5.0')
depends_on('superlu-dist@6.1.0', when='@0.4.0')
depends_on('superlu-dist@5.2.2', when='@0.3.0')
depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('trilinos@develop+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
when='@develop')
when='@develop +trilinos')
depends_on('trilinos@12.18.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
when='@0.5.0 +trilinos')
depends_on('trilinos@12.14.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
when='@0.4.0')
when='@0.4.0 +trilinos')
depends_on('trilinos@12.12.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@0.3.0')
when='@0.3.0 +trilinos')
depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@xsdk-0.2.0')
when='@xsdk-0.2.0 +trilinos')
depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
depends_on('petsc +trilinos', when='+trilinos')
depends_on('petsc ~trilinos', when='~trilinos')
depends_on('petsc +batch', when='platform=cray @0.5.0:')
depends_on('petsc@develop+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@develop')
depends_on('petsc@3.10.3+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
depends_on('petsc@3.12.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@0.5.0')
depends_on('petsc@3.10.3+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@0.4.0')
depends_on('petsc@3.8.2+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
depends_on('petsc@3.8.2+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@0.3.0')
depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
depends_on('petsc@xsdk-0.2.0+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@xsdk-0.2.0')
depends_on('dealii@develop~assimp~python~doc~gmsh+petsc+slepc+mpi+trilinos~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@develop +dealii')
depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi+trilinos~int64+hdf5~netcdf+metis~ginkgo~symengine', when='@0.4.0 +dealii')
depends_on('dealii +trilinos', when='+trilinos +dealii')
depends_on('dealii ~trilinos', when='~trilinos +dealii')
depends_on('dealii@develop~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@develop +dealii')
depends_on('dealii@9.1.1~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@0.5.0 +dealii')
depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi~int64+hdf5~netcdf+metis~ginkgo~symengine', when='@0.4.0 +dealii')
depends_on('pflotran@develop', when='@develop')
depends_on('pflotran@xsdk-0.5.0', when='@0.5.0')
depends_on('pflotran@xsdk-0.4.0', when='@0.4.0')
depends_on('pflotran@xsdk-0.3.0', when='@0.3.0')
depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('alquimia@develop', when='@develop')
depends_on('alquimia@xsdk-0.5.0', when='@0.5.0')
depends_on('alquimia@xsdk-0.4.0', when='@0.4.0')
depends_on('alquimia@xsdk-0.3.0', when='@0.3.0')
depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('sundials@4.1.0~int64+hypre', when='@develop')
depends_on('sundials+superlu-dist', when='@0.5.0: %gcc@6.1:')
depends_on('sundials@develop~int64+hypre+petsc', when='@develop')
depends_on('sundials@5.0.0~int64+hypre+petsc', when='@0.5.0')
depends_on('sundials@3.2.1~int64+hypre', when='@0.4.0')
depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0')
depends_on('plasma@18.11.1:', when='@develop %gcc@6.0:')
depends_on('plasma@19.8.1:', when='@develop %gcc@6.0:')
depends_on('plasma@19.8.1:', when='@0.5.0 %gcc@6.0:')
depends_on('plasma@18.11.1:', when='@0.4.0 %gcc@6.0:')
depends_on('magma@2.4.0', when='@develop +cuda')
depends_on('magma@2.5.1', when='@develop +cuda')
depends_on('magma@2.5.1', when='@0.5.0 +cuda')
depends_on('magma@2.4.0', when='@0.4.0 +cuda')
depends_on('magma@2.2.0', when='@0.3.0 +cuda')
depends_on('amrex@develop+sundials', when='@develop %intel')
depends_on('amrex@develop+sundials', when='@develop %gcc')
depends_on('amrex@develop', when='@develop %intel')
depends_on('amrex@develop', when='@develop %gcc')
depends_on('amrex@19.08', when='@0.5.0 %intel')
depends_on('amrex@19.08', when='@0.5.0 %gcc')
depends_on('amrex@18.10.1', when='@0.4.0 %intel')
depends_on('amrex@18.10.1', when='@0.4.0 %gcc')
depends_on('slepc@develop', when='@develop')
depends_on('slepc@3.12.0', when='@0.5.0')
depends_on('slepc@3.10.1', when='@0.4.0')
depends_on('omega-h +trilinos', when='+trilinos +omega-h')
depends_on('omega-h ~trilinos', when='~trilinos +omega-h')
depends_on('omega-h@develop', when='@develop +omega-h')
depends_on('omega-h@9.29.0', when='@0.5.0 +omega-h')
depends_on('omega-h@9.19.1', when='@0.4.0 +omega-h')
depends_on('strumpack@master', when='@develop')
depends_on('strumpack@3.1.1', when='@0.4.0')
depends_on('strumpack@master', when='@develop +strumpack')
depends_on('strumpack@3.3.0', when='@0.5.0 +strumpack')
depends_on('strumpack@3.1.1', when='@0.4.0 +strumpack')
depends_on('pumi@develop', when='@develop')
depends_on('pumi@2.2.1', when='@0.5.0')
depends_on('pumi@2.2.0', when='@0.4.0')
depends_on('tasmanian@develop+xsdkflags+blas~openmp', when='@develop')
depends_on('tasmanian@develop+xsdkflags+blas+cuda+magma~openmp', when='@develop +cuda')
tasmanian_openmp = '~openmp' if sys.platform == 'darwin' else '+openmp'
depends_on('tasmanian@develop+xsdkflags+blas' + tasmanian_openmp, when='@develop')
depends_on('tasmanian@develop+xsdkflags+blas+cuda+magma' + tasmanian_openmp, when='@develop +cuda')
depends_on('tasmanian@7.0+xsdkflags+mpi+blas' + tasmanian_openmp, when='@0.5.0')
depends_on('tasmanian@7.0+xsdkflags+mpi+blas+cuda+magma' + tasmanian_openmp, when='@0.5.0 +cuda')
depends_on('tasmanian@6.0+xsdkflags+blas~openmp', when='@0.4.0')
depends_on('tasmanian@6.0+xsdkflags+blas+cuda+magma~openmp', when='@0.4.0 +cuda')
@@ -111,8 +150,27 @@ class Xsdk(BundlePackage):
# these are type='build' dependencies, but spack reports a conflict anyway.
# This will be fixed once the new concretizer becomes available
# (says @adamjstewart)
depends_on('phist@develop kernel_lib=tpetra ~fortran ~scamac ~openmp ~host', when='@develop +phist')
depends_on('phist@1.7.5 kernel_lib=tpetra ~fortran ~scamac ~openmp ~host', when='@0.4.0 +phist')
depends_on('phist kernel_lib=tpetra', when='+trilinos +phist')
depends_on('phist kernel_lib=petsc', when='~trilinos +phist')
depends_on('phist@develop ~fortran ~scamac ~openmp ~host', when='@develop +phist')
depends_on('phist@1.8.0 ~fortran ~scamac ~openmp ~host', when='@0.5.0 +phist')
depends_on('phist@1.7.5 ~fortran ~scamac ~openmp ~host', when='@0.4.0 +phist')
depends_on('ginkgo@develop ~openmp', when='@develop +ginkgo')
depends_on('ginkgo@develop ~openmp+cuda', when='@develop +ginkgo +cuda')
depends_on('ginkgo@1.1.0 ~openmp', when='@0.5.0 +ginkgo')
depends_on('ginkgo@1.1.0 ~openmp+cuda', when='@0.5.0 +cuda +ginkgo')
depends_on('py-libensemble@develop+petsc4py', type='run', when='@develop +libensemble')
depends_on('py-libensemble@0.5.2+petsc4py', type='run', when='@0.5.0 +libensemble')
depends_on('precice ~petsc', when='platform=cray +precice')
depends_on('precice@develop', when='@develop +precice')
depends_on('precice@1.6.1', when='@0.5.0 +precice')
depends_on('butterflypack@master', when='@develop +butterflypack')
depends_on('butterflypack@1.1.0', when='@0.5.0 +butterflypack')
# xSDKTrilinos depends on the version of Trilinos built with
# +tpetra which is turned off for faster xSDK

View File

@@ -0,0 +1,12 @@
--- spack-src/src/util/hash.cpp.org 2019-11-14 11:12:11.233379342 +0900
+++ spack-src/src/util/hash.cpp 2019-11-14 11:15:51.356519168 +0900
@@ -75,8 +75,8 @@
__fallthrough;
case 1 :
a+=str[0];
- __fallthrough;
/* case 0: nothing left to add */
+ break;
}
mix(a,b,c);
/*-------------------------------------------- report the result */

View File

@@ -0,0 +1,12 @@
--- spack-src/src/util/hash.cpp.org 2019-11-13 13:25:33.317336437 +0900
+++ spack-src/src/util/hash.cpp 2019-11-13 13:26:12.671491961 +0900
@@ -83,8 +83,8 @@
Z3_fallthrough;
case 1 :
a+=str[0];
- Z3_fallthrough;
/* case 0: nothing left to add */
+ break;
}
mix(a,b,c);
/*-------------------------------------------- report the result */

View File

@@ -20,8 +20,12 @@ class Z3(MakefilePackage):
phases = ['bootstrap', 'build', 'install']
variant('python', default=False, description='Enable python support')
depends_on('python', when='+python')
variant('python', default=False, description='Enable python binding')
depends_on('python', type=('build', 'run'))
# Referenced: https://github.com/Z3Prover/z3/issues/1016
patch('fix_1016_1.patch', when='@:4.4.1')
patch('fix_1016_2.patch', when='@4.5.0')
build_directory = 'build'