Compare commits

..

69 Commits

Author SHA1 Message Date
Gregory Becker
9479be5618 improved again 2020-12-02 18:22:46 -08:00
Gregory Becker
4dd854d31b improve detection of shared variant 2020-12-02 18:21:46 -08:00
Gregory Becker
25fd25a77d default pythoncmd true for python2 detection 2020-12-02 09:46:33 -08:00
Gregory Becker
842867dd89 uncomment gettext 2020-11-25 17:55:35 -08:00
Gregory Becker
49866c9013 improved python detection 2020-11-25 17:34:55 -08:00
Massimiliano Culpo
983fb11dee concretizer: treat conditional providers correctly (#20086)
refers #20040

This modification emits rules like:

provides_virtual("netlib-lapack","blas") :- variant_value("netlib-lapack","external-blas","False").

for packages that provide virtual dependencies conditionally instead
of a fact that doesn't account for the condition.
2020-11-25 22:03:42 +01:00
Martin Aumüller
b33969598a intel-tbb: patch for arm64 on macOS (#20039)
* intel-tbb: patch for arm64 on macOS

as submitted upstream and used in homebrew

* intel-tbb: check patchable versions

* intel-tbb: avoid patch breakage when 2021.1 is released

2021.1-beta05 would be considered newer than 2021.1
2020-11-25 10:05:50 -06:00
downloadico
8b2c7a6c65 Add the 'exciting' package. (#20060)
* Add the 'exciting' package.
Version 14 (latest available) is defined.
An as-of-yet unpublished patch (dfgather.patch) from the developers is also
included.

* fixed flake8 errors (I *thought* I had already gotten them!  OOPS!)

* Update var/spack/repos/builtin/packages/exciting/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* fixed install method to just do the install, and no build method is needed.

* *Actually* added the lapack dependency!

* removed variant from blas dependency

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-25 09:59:35 -06:00
Harmen Stoppels
f40492b7d4 concretizer: remove debug statement (#20085) 2020-11-25 14:09:52 +01:00
Tomoyasu Nojiri
164fc4ee95 powertop: Add depend ncurses (#20080) 2020-11-25 10:15:51 +01:00
Erik Schnetter
408824f365 h5cpp: Correct checksum and build instructions (#20053)
* h5cpp: Correct checksum and build instructions

Closes https://github.com/spack/spack/issues/20046.

* h5cpp: Update to 1.10.4-6

* Update var/spack/repos/builtin/packages/h5cpp/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* h5cpp: Correct formatting

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-24 13:37:29 -06:00
Dr. Christian Tacke
f6549849e5 root: Add 6.22.02, remove preferred label (#20002)
Drop the preferred label from 6.20.x.
Let's just default to the latest (production) version.
2020-11-24 11:08:56 -06:00
Scott Wittenburg
348cbe143c phist needs sbang fix for build script (#20063) 2020-11-24 07:07:34 -08:00
Ricardo Silva
87689f7cc8 sqlcipher: new package at v4.4.1 (#20009)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-11-24 15:54:27 +01:00
Ben Morgan
d9f6ef9df4 clhep: new version 2.4.4.0 (#20066) 2020-11-24 08:53:22 -06:00
Ben Morgan
2c0091df3f vecgeom: new version 1.1.8 (#20067) 2020-11-24 08:32:33 -05:00
vvolkl
28a3b30c53 [root] fix rootfit/roofit variant (#20051)
* [root] fix rootfit/roofit variant

fix typo

* Update var/spack/repos/builtin/packages/root/package.py

Co-authored-by: Hadrien G. <knights_of_ni@gmx.com>

Co-authored-by: Hadrien G. <knights_of_ni@gmx.com>
2020-11-24 11:19:10 +00:00
vvolkl
4e35df4b61 [gaudi] clhep is not optional (#20052) 2020-11-24 11:17:28 +00:00
Justin S
c468d6bed2 r-stanheaders: add 2.21.0-6 (#20057) 2020-11-23 20:56:48 -06:00
Andrew W Elble
3f0984e5e1 py-tensorboard: force use of spack's python, force build of ijar (#20059)
(same fix for py-tensorboard-plugin-wit)
2020-11-23 20:56:33 -06:00
Martin Oberzalek
fd07decd27 Also build static library (#20016) 2020-11-23 20:46:14 -06:00
Dmitri Smirnov
aa8dd782cd mysql: Add sasl as dependency for versions <5.7.999 (#20027) 2020-11-23 20:43:37 -06:00
Matthias Diener
617f2ac714 charmpp: fix tests (#20047) 2020-11-23 20:27:55 -06:00
Justin S
aee3b4a1e8 r-bh: add 1.72.0-3 (#20058) 2020-11-23 20:18:14 -06:00
Axel Huebl
01c9f3edc3 pybind11: 2.6.1 (#20061)
Add the latest pybind11 release.
Since release 2.6.0 was a major release with many changes in the
build system, prefer 2.5.0 for now.
2020-11-23 20:12:24 -06:00
Seth R. Johnson
5c623b03b1 flibcpp: update version and deps (#20048) 2020-11-23 10:40:57 -05:00
iulian787
cb4a08b3e0 moab: added v5.2.1, v5.2.0, v5.1.0 (#20010)
Also added maintainers for the package recipe.
2020-11-23 13:17:52 +01:00
vvolkl
fa66d683e4 delphes: updated pre-release version (#20011) 2020-11-23 13:16:14 +01:00
Adam J. Stewart
fb2ac2077d Docs: remove duplication in Command Reference (#20021) 2020-11-23 12:38:34 +01:00
Martin Aumüller
b62401ec8f ispc: external find support, added master branch version (#20033)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-11-23 12:28:11 +01:00
Cyrus Harrison
8a54817d4e vtk-h: added v0.6.6 (#20026) 2020-11-23 11:21:42 +01:00
Martin Aumüller
5088d799eb openscenegraph: remove dependency on Qt for >= 3.5.4 (#20032) 2020-11-23 11:18:41 +01:00
Michael Kuhn
c25f15b7d5 libx11: added v1.7.0 (#20035) 2020-11-23 11:13:33 +01:00
Michael Kuhn
d7db6068c5 libxcb, xcb-proto: added v1.14 versions (#20036)
At least xcb-proto 1.14.1 is only avaiable from the new URL, so change
both to be future-proof.
2020-11-23 11:13:09 +01:00
Martin Aumüller
236796577d botan: added v2.17.0, v2.17.1 and v2.17.2 (#20037) 2020-11-23 11:11:51 +01:00
Martin Aumüller
b490d65f28 recognize macOS 11.1 as big sur (#20038)
Big Sur versions go 11.0, 11.0.1, 11.1 (vs. prior versions that
only used the minor component)

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2020-11-23 08:37:40 +01:00
Pramod Kumbhar
92d540fde7 Add sionlib and linktest packages (#20034)
* Add sionlib and linktest packages

* fix flake8
2020-11-22 09:22:26 -06:00
Thomas Gruber
4609a126ba Add new release 5.1.0 and change homepage (#20022) 2020-11-21 00:02:08 +01:00
Shahzeb Siddiqui
f30aeb35ae [WIP] nersc e4s pipeline trigger (#19688)
* nersc e4s pipeline trigger

* Update nersc_pipeline.yml

* Update nersc_pipeline.yml
2020-11-20 13:31:25 -08:00
Martin Oberzalek
439b329c38 openldap: enable creation of static libraries (#20013) 2020-11-20 13:51:25 +01:00
psakievich
f613e10f24 Trilinos: Add CUDA relocatable code flag (#19993)
* Add relocatable code flag to trilinos

* Make CUDA RDC and varainat

* adjust default of cuda_rdc
2020-11-19 19:24:42 -05:00
Josh Essman
f92e52cdc8 mfem: Add support for AmgX, fix to version extensions (#19990)
* fix: leading . is not needed in extension kwarg

* mfem: add support for NVIDIA AmgX

fix: proper spacing

* mfem: use conflict to indicate that AmgX is expected to depend on CUDA
2020-11-19 14:03:22 -06:00
Axel Huebl
16d5cc2c99 ADIOS2: ~dataman default (#20003)
Disable dataman by default. It pulls heavy dependencies that are
often not needed for HPC (ZMQ) and it currently does not link
with popular compilers.
2020-11-19 13:56:51 -06:00
Massimiliano Culpo
d6e44b94d6 globalarrays: added v5.8 and earlier, simplified recipe (#19999)
fixes #19966

Global arrays supports GCC 10 since version 5.7.1,
therefore a conflict has been added to avoid old
releases to error at build-time.

Removed the 'blas' and 'lapack' variant since
BLAS and LAPACK are always a dependency, and
if not specified during configure, a version
of these APIs vendored with Global Arrays is
built.

Fixed a few options in configuration.
2020-11-19 11:58:54 -06:00
Brian Van Essen
5015635506 Removed accidental command to not expand the tarball. (#20001) 2020-11-19 11:58:25 -06:00
Dr. Christian Tacke
c417827954 cmake: Add Version 3.19.0 (#19996) 2020-11-19 10:43:52 -06:00
Sreenivasa Murthy Kolam
e75b76f433 bump up version for rocm 3.9.0 (#19995) 2020-11-19 07:40:24 -06:00
Toyohisa Kameyama
1522d1fac6 simde: New package (#19992)
* simde: New package

* remove 0.5.0.
2020-11-19 07:38:50 -06:00
Nithin Senthil Kumar
5129d84304 mvapich2: extended the fabrics variant description (#19860)
The point of this variant is to give the end user an option to use system
installed fabrics such as mofed instead of upstream fabrics such as rdma-core.
This was found to avoid run time errors on some systems.

Co-authored-by: nithintsk <nithintsk@github.com>
2020-11-19 13:47:57 +01:00
Adam J. Stewart
14a9359395 spack debug report: print concretizer (#19983) 2020-11-19 11:12:28 +01:00
Tomoki, Karatsu
8f3594564c fujitsu compiler: added / fixed support for compiler flags (#19967)
Added flags for:
- Debug symbols
- C++17 standard

Fixed the list of flags for generic optimizations
2020-11-19 11:09:34 +01:00
Michael Kuhn
1b7a5e53a6 clang/llvm: fix version detection (#19978)
This PR fixes two problems with clang/llvm's version detection. clang's
version output looks like this:

```
clang version 11.0.0
Target: x86_64-unknown-linux-gnu
```

This caused clang's version to be misdetected as:

```
clang@11.0.0
Target:
```

This resulted in errors when trying to actually use it as a compiler.

When using `spack external find`, we couldn't determine the compiler
version, resulting in errors like this:

```
==> Warning: "llvm@11.0.0+clang+lld+lldb" has been detected on the system but will not be added to packages.yaml [reason=c compiler not found for llvm@11.0.0+clang+lld+lldb]
```

Changing the regex to only match until the end of the line fixes these
problems.

Fixes: #19473
2020-11-19 11:06:45 +01:00
Michael Kuhn
dd54cb4c7a llvm: add missing pkgconfig dependency (#19982)
When building llvm with CUDA support, it needs to find libffi. Without
pkg-config, libffi will not be found.
2020-11-19 10:34:13 +01:00
Brian Van Essen
db9b7a509a cuDNN Refactor to accommodate architecture and CUDA version (#19989)
* Updated the cuDNN recipe to generate the proper version names for only
the arhcitecture that you are on.  This prevents the concretizer from
selecting a source code version that is incompatible with your current
architecture.  Additionally, add constraints to ensure that the
corresponding CUDA version is properly set as well.

* Added maintainer

* Fixed renaming for darwin systems

* Fixed flake8

* Fixed flake8

* Fixed range typo

* Update var/spack/repos/builtin/packages/cudnn/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Fixed style issues

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-18 22:56:39 -06:00
eugeneswalker
a2801a1384 openblas@0.3.11 conflicts with gcc less than 8.3.0 (#19975) 2020-11-18 22:52:31 -06:00
Andreas Baumbach
cb22bcf6f1 drop unnecessary tk dependency of py-git-review (#19969)
* seems to have been introduced errorously by users using gitk-based
  workflows. This should be handled by the git package
* fixes build problems on OSX bigsur
2020-11-18 22:51:47 -06:00
t-nojiri
c9aac3e221 openloops: Fix for aarch64 (#19965) 2020-11-18 22:49:04 -06:00
arjun-raj-kuppala
a680df8453 AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev (#19957)
* AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev and updates to hip/hip-rocclr

* Update package.py
2020-11-18 22:47:10 -06:00
Matthias Diener
932f128bc8 charmpp: various fixes (#19956)
* charmpp: various fixes

- change URLs to https
- address deprecated/renamed versions
- make it build with the cmake build system

* flake8

* Apply suggestions from code review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-18 22:45:57 -06:00
Adam J. Stewart
95f5419502 py-ipykernel: fix bug in phase method (#19986)
* py-ipykernel: fix bug in phase method

* Fix bug in executable calling
2020-11-18 18:45:29 -08:00
Enrico Usai
bc5c475909 aws-parallelcluster: 2.10.0 release (#19976)
Updated boto3 dependency and removed useless comments.
2020-11-18 19:27:04 -06:00
Greg Becker
10f784338b fix error handling for spack test results command (#19987) 2020-11-18 16:16:34 -08:00
Danny Taller
3b9155239b hip support for umpire, chai, raja, camp (#19715)
* create HipPackage base class and do some refactoring

* comments and added conflict to raja for openmp with hip
2020-11-18 11:52:21 -08:00
Cyrus Harrison
676d68a979 add 0.6.0 conduit release and update for branch changes (#19696) 2020-11-18 12:34:14 -06:00
vvolkl
3069631f37 Add "hep" label to high energy physics packages (#19968)
* [hep] add hep tag to relevant packages

* [lcio] add hep label
2020-11-18 17:07:35 +00:00
Dr. Christian Tacke
eca1370abc root: Add +spectrum variant to enable TSpectrum (#19971) 2020-11-18 16:37:37 +00:00
Massimiliano Culpo
b1dc3e787b Merge tag 'v0.16.0' into develop 2020-11-18 15:23:35 +01:00
Axel Huebl
8b431d1774 py-ipykernel: fix install (#19617)
There is a post-install routine in `ipykernel` that needs to be
called for proper registration with jupyter.
2020-11-18 07:34:12 -06:00
Wouter Deconinck
a0a15b5cd0 qt: patch missing includes when +opengl %gcc@10: (#19963) 2020-11-18 07:51:51 -05:00
139 changed files with 1439 additions and 374 deletions

View File

@@ -0,0 +1,138 @@
# Copyright 2013-2020 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)
# Troubleshooting advice for +hip builds:
#
# 1. When building with clang, go your compilers.yaml,
# add an entry for the amd version of clang, as below.
# This will ensure that your entire package is compiled/linked
# with the same compiler version. If you use a different version of
# clang which is linked against a different version of the gcc library,
# you will get errors along the lines of:
# undefined reference to
# `std::__throw_out_of_range_fmt(char const*, ...)@@GLIBCXX_3.4.20'
# which is indicative of a mismatch in standard library versions.
#
# in compilers.yaml
# - compiler:
# spec: clang@amd
# paths:
# cc: /opt/rocm/llvm/bin/clang
# cxx: /opt/rocm/llvm/bin/clang++
# f77:
# fc:
# flags: {}
# operating_system: rhel7
# target: x86_64
# modules: []
# environment: {}
# extra_rpaths: []
#
#
# 2. hip and its dependencies are currently NOT picked up by spack
# automatically, and should therefore be added to packages.yaml by hand:
#
# in packages.yaml:
# hip:
# externals:
# - spec: hip@3.8.20371-d1886b0b
# prefix: /opt/rocm/hip
# extra_attributes:
# compilers:
# c: /opt/rocm/llvm/bin/clang++
# c++: /opt/rocm/llvm/bin/clang++
# hip: /opt/rocm/hip/bin/hipcc
# buildable: false
# hsa-rocr-dev:
# externals:
# - spec: hsa-rocr-dev
# prefix: /opt/rocm
# extra_attributes:
# compilers:
# c: /opt/rocm/llvm/bin/clang++
# cxx: /opt/rocm/llvm/bin/clang++
# buildable: false
# llvm-amdgpu:
# externals:
# - spec: llvm-amdgpu
# prefix: /opt/rocm/llvm
# extra_attributes:
# compilers:
# c: /opt/rocm/llvm/bin/clang++
# cxx: /opt/rocm/llvm/bin/clang++
# buildable: false
#
# 3. In part 2, DO NOT list the path to hsa as /opt/rocm/hsa ! You want spack
# to find hsa in /opt/rocm/include/hsa/hsa.h . The directory of
# /opt/rocm/hsa also has an hsa.h file, but it won't be found because spack
# does not like its directory structure.
#
from spack.package import PackageBase
from spack.directives import depends_on, variant, conflicts
class HipPackage(PackageBase):
"""Auxiliary class which contains HIP variant, dependencies and conflicts
and is meant to unify and facilitate its usage. Closely mimics CudaPackage.
Maintainers: dtaller
"""
# https://llvm.org/docs/AMDGPUUsage.html
# Possible architectures
amdgpu_targets = (
'gfx701', 'gfx801', 'gfx802', 'gfx803',
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
'gfx1011', 'gfx1012', 'none'
)
variant('hip', default=False, description='Enable HIP support')
# possible amd gpu targets for hip builds
variant('amdgpu_target', default='none', values=amdgpu_targets)
depends_on('llvm-amdgpu', when='+hip')
depends_on('hsa-rocr-dev', when='+hip')
depends_on('hip', when='+hip')
# need amd gpu type for hip builds
conflicts('amdgpu_target=none', when='+hip')
# Make sure non-'none' amdgpu_targets cannot be used without +hip
for value in amdgpu_targets[:-1]:
conflicts('~hip', when='amdgpu_target=' + value)
# https://github.com/ROCm-Developer-Tools/HIP/blob/master/bin/hipcc
# It seems that hip-clang does not (yet?) accept this flag, in which case
# we will still need to set the HCC_AMDGPU_TARGET environment flag in the
# hip package file. But I will leave this here for future development.
@staticmethod
def hip_flags(amdgpu_target):
return '--amdgpu-target={0}'.format(amdgpu_target)
# https://llvm.org/docs/AMDGPUUsage.html
# Possible architectures (not including 'none' option)
@staticmethod
def amd_gputargets_list():
return (
'gfx701', 'gfx801', 'gfx802', 'gfx803',
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
'gfx1011', 'gfx1012'
)
# HIP version vs Architecture
# TODO: add a bunch of lines like:
# depends_on('hip@:6.0', when='amdgpu_target=gfx701')
# to indicate minimum version for each architecture.
# Compiler conflicts
# TODO: add conflicts statements along the lines of
# arch_platform = ' target=x86_64: platform=linux'
# conflicts('%gcc@5:', when='+cuda ^cuda@:7.5' + arch_platform)
# conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:')
# for hip-related limitations.

View File

@@ -15,6 +15,7 @@
from llnl.util.filesystem import working_dir
import spack.architecture as architecture
import spack.config
import spack.paths
from spack.main import get_version
from spack.util.executable import which
@@ -89,6 +90,7 @@ def report(args):
print('* **Python:**', platform.python_version())
print('* **Platform:**', architecture.Arch(
architecture.platform(), 'frontend', 'frontend'))
print('* **Concretizer:**', spack.config.get('config:concretizer'))
def debug(parser, args):

View File

@@ -21,7 +21,7 @@
import spack.package
description = "run spack's tests for an install"
section = "administrator"
section = "admin"
level = "long"
@@ -333,6 +333,7 @@ def test_results(args):
if names:
test_suites = [spack.install_test.get_test_suite(name) for name
in names]
test_suites = list(filter(lambda ts: ts is not None, test_suites))
if not test_suites:
tty.msg('No test suite(s) found in test stage: {0}'
.format(', '.join(names)))

View File

@@ -6,7 +6,7 @@
description = "run a command in a spec's test environment, " \
"or dump its environment to screen or file"
section = "administration"
section = "admin"
level = "long"
setup_parser = env_utility.setup_parser

View File

@@ -159,11 +159,11 @@ def extract_version_from_output(cls, output):
match = re.search(
# Normal clang compiler versions are left as-is
r'clang version ([^ )]+)-svn[~.\w\d-]*|'
r'clang version ([^ )\n]+)-svn[~.\w\d-]*|'
# Don't include hyphenated patch numbers in the version
# (see https://github.com/spack/spack/pull/14365 for details)
r'clang version ([^ )]+?)-[~.\w\d-]*|'
r'clang version ([^ )]+)',
r'clang version ([^ )\n]+?)-[~.\w\d-]*|'
r'clang version ([^ )\n]+)',
output
)
if match:

View File

@@ -34,9 +34,13 @@ class Fj(spack.compiler.Compiler):
def verbose_flag(self):
return "-v"
@property
def debug_flags(self):
return "-g"
@property
def opt_flags(self):
return ['-O', '-O0', '-O1', '-O2', '-O3', '-O4']
return ['-O0', '-O1', '-O2', '-O3', '-Ofast']
@property
def openmp_flag(self):
@@ -54,6 +58,10 @@ def cxx11_flag(self):
def cxx14_flag(self):
return "-std=c++14"
@property
def cxx17_flag(self):
return "-std=c++17"
@property
def c99_flag(self):
return "-std=c99"

View File

@@ -55,10 +55,14 @@ def __init__(self):
'10.14': 'mojave',
'10.15': 'catalina',
'10.16': 'bigsur',
'11.0': 'bigsur',
'11': 'bigsur',
}
mac_ver = str(macos_version().up_to(2))
# Big Sur versions go 11.0, 11.0.1, 11.1 (vs. prior versions that
# only used the minor component)
part = 1 if macos_version() >= Version('11') else 2
mac_ver = str(macos_version().up_to(part))
name = mac_releases.get(mac_ver, "macos")
super(MacOs, self).__init__(name, mac_ver)

View File

@@ -20,6 +20,7 @@
from spack.build_systems.autotools import AutotoolsPackage
from spack.build_systems.cmake import CMakePackage
from spack.build_systems.cuda import CudaPackage
from spack.build_systems.hip import HipPackage
from spack.build_systems.qmake import QMakePackage
from spack.build_systems.maven import MavenPackage
from spack.build_systems.scons import SConsPackage

View File

@@ -1290,7 +1290,6 @@ def target_defaults(self, specs):
if not spec.architecture or not spec.architecture.target:
continue
print("TTYPE:", type(platform.target(spec.target.name)))
target = archspec.cpu.TARGETS.get(spec.target.name)
if not target:
raise ValueError("Invalid target: ", spec.target.name)
@@ -1323,13 +1322,18 @@ def virtual_providers(self):
self.gen.fact(fn.virtual(vspec))
all_providers = sorted(spack.repo.path.providers_for(vspec))
for idx, provider in enumerate(all_providers):
self.gen.fact(fn.provides_virtual(provider.name, vspec))
provides_atom = fn.provides_virtual(provider.name, vspec)
possible_provider_fn = fn.possible_provider(
vspec, provider.name, idx
)
item = (idx, provider, possible_provider_fn)
self.providers_by_vspec_name[vspec].append(item)
clauses = self.spec_clauses(provider, body=True)
clauses_but_node = [c for c in clauses if c.name != 'node']
if clauses_but_node:
self.gen.rule(provides_atom, AspAnd(*clauses_but_node))
else:
self.gen.fact(provides_atom)
for clause in clauses:
self.gen.rule(clause, possible_provider_fn)
self.gen.newline()

View File

@@ -11,6 +11,7 @@
import os.path
import spack.architecture as architecture
import spack.config
from spack.main import SpackCommand, get_version
from spack.util.executable import which
@@ -53,3 +54,4 @@ def test_report():
assert get_version() in out
assert platform.python_version() in out
assert str(arch) in out
assert spack.config.get('config:concretizer') in out

View File

@@ -471,14 +471,16 @@ def test_fj_flags():
supported_flag_test("cxx98_flag", "-std=c++98", "fj@4.0.0")
supported_flag_test("cxx11_flag", "-std=c++11", "fj@4.0.0")
supported_flag_test("cxx14_flag", "-std=c++14", "fj@4.0.0")
supported_flag_test("cxx17_flag", "-std=c++17", "fj@4.0.0")
supported_flag_test("c99_flag", "-std=c99", "fj@4.0.0")
supported_flag_test("c11_flag", "-std=c11", "fj@4.0.0")
supported_flag_test("cc_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("cxx_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("f77_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("fc_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("opt_flags", ['-O', '-O0', '-O1', '-O2', '-O3', '-O4'],
supported_flag_test("opt_flags", ['-O0', '-O1', '-O2', '-O3', '-Ofast'],
'fj@4.0.0')
supported_flag_test("debug_flags", "-g", "fj@4.0.0")
def test_gcc_flags():

View File

@@ -96,7 +96,11 @@ def test_apple_clang_version_detection(
('clang version 8.0.0-3 (tags/RELEASE_800/final)\n'
'Target: aarch64-unknown-linux-gnu\n'
'Thread model: posix\n'
'InstalledDir: /usr/bin\n', '8.0.0')
'InstalledDir: /usr/bin\n', '8.0.0'),
('clang version 11.0.0\n'
'Target: aarch64-unknown-linux-gnu\n'
'Thread model: posix\n'
'InstalledDir: /usr/bin\n', '11.0.0')
])
def test_clang_version_detection(version_str, expected_version):
version = spack.compilers.clang.Clang.extract_version_from_output(

View File

@@ -883,3 +883,15 @@ def test_transitive_conditional_virtual_dependency(self):
# 'stuff' is provided by an external package, so check it's present
assert 'externalvirtual' in s
@pytest.mark.regression('20040')
def test_conditional_provides_or_depends_on(self):
if spack.config.get('config:concretizer') == 'original':
pytest.xfail('Known failure of the original concretizer')
# Check that we can concretize correctly a spec that can either
# provide a virtual or depend on it based on the value of a variant
s = Spec('conditional-provider +disable-v1').concretized()
assert 'v1-provider' in s
assert s['v1'].name == 'v1-provider'
assert s['v2'].name == 'conditional-provider'

View File

@@ -0,0 +1,9 @@
merge_pipeline:
only:
- develop
variables:
SPACK_REPO: ${CI_PROJECT_URL}
SPACK_REF: ${CI_COMMIT_SHA}
trigger:
project: ecp/e4s/e4s
strategy: depend

View File

@@ -0,0 +1,18 @@
# Copyright 2013-2020 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)
class ConditionalProvider(Package):
"""Mimic the real netlib-lapack, that may be built on top of an
optimized blas.
"""
homepage = "https://dev.null"
version('1.0')
variant('disable-v1', default=False, description='nope')
provides('v2')
provides('v1', when='~disable-v1')
depends_on('v1', when='+disable-v1')

View File

@@ -0,0 +1,13 @@
# Copyright 2013-2020 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)
class V1Provider(Package):
"""Mimic the real netlib-lapack, that may be built on top of an
optimized blas.
"""
homepage = "https://dev.null"
version('1.0')
provides('v1')

View File

@@ -33,6 +33,8 @@ class Acts(CMakePackage, CudaPackage):
git = "https://github.com/acts-project/acts.git"
maintainers = ['HadrienG2']
tags = ['hep']
# Supported Acts versions
version('master', branch='master')
version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c')

View File

@@ -51,7 +51,7 @@ class Adios2(CMakePackage):
# transport engines
variant('sst', default=True,
description='Enable the SST staging engine')
variant('dataman', default=True,
variant('dataman', default=False,
description='Enable the DataMan engine for WAN transports')
variant('dataspaces', default=False,
description='Enable support for DATASPACES')

View File

@@ -12,6 +12,8 @@ class Aida(Package):
homepage = "http://aida.freehep.org/"
url = "ftp://ftp.slac.stanford.edu/software/freehep/AIDA/v3.2.1/aida-3.2.1.tar.gz"
tags = ['hep']
version('3.2.1', sha256='c51da83e99c0985a7ef3e8bc5a60c3ae61f3ca603b61100c2438b4cdadd5bb2e')
def install(self, spec, prefix):

View File

@@ -0,0 +1,28 @@
From 526efe86427a4d49da38773534d84025dd4246c3 Mon Sep 17 00:00:00 2001
From: Ethan Stewart <ethan.stewart@amd.com>
Date: Tue, 10 Nov 2020 15:32:59 -0600
Subject: [PATCH] Add cmake option for copying source for debugging.
---
openmp/CMakeLists.txt | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
index a86e83c50212..51962b561a3b 100644
--- a/openmp/CMakeLists.txt
+++ b/openmp/CMakeLists.txt
@@ -103,3 +103,11 @@ endif()
# Now that we have seen all testsuites, create the check-openmp target.
construct_check_openmp_target()
+
+option(DEBUG_COPY_SOURCE "Enable source code copy for openmp debug build."
+ ${ENABLE_SOURCE_COPY})
+if (${ENABLE_SOURCE_COPY})
+ install(DIRECTORY runtime/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/runtime)
+ install(DIRECTORY libomptarget/src libomptarget/plugins DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libomptarget)
+ install(DIRECTORY libompd/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libompd)
+endif()
--
2.17.1

View File

@@ -8,6 +8,22 @@
tools_url = 'https://github.com/ROCm-Developer-Tools'
compute_url = 'https://github.com/RadeonOpenCompute'
# 3.9 SHA Keys
aomp39 = dict()
aomp39 = {
"aomp":
"14fc6867af0b17e3bff8cb42cb36f509c95a29b7a933a106bf6778de21f6c123",
"devlib":
"c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7",
"llvm":
"f0a0b9fec0626878340a15742e73a56f155090011716461edcb069dcf05e6b30",
"flang":
"43d57bcc87fab092ac242e36da62588a87b6fa91f9e81fdb330159497afdecb3",
"extras":
"014fca1fba54997c6db0e84822df274fb6807698b6856da4f737f38f10ab0e5d"
}
# 3.8 SHA Keys
aomp38 = dict()
aomp38 = {
@@ -65,17 +81,19 @@ class Aomp(Package):
"""llvm openmp compiler from AMD."""
homepage = tools_url + "/aomp"
url = tools_url + "/aomp/archive/rocm-3.8.0.tar.gz"
url = tools_url + "/aomp/archive/rocm-3.9.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08']
version('3.9.0', sha256=aomp38['aomp'])
version('3.8.0', sha256=aomp38['aomp'])
version('3.7.0', sha256=aomp37['aomp'])
version('3.5.0', sha256=aomp35['aomp'])
depends_on('cmake@3.5.2:3.13.4', type='build')
depends_on('mesa~llvm@18.3:', type=('build', 'link'))
depends_on('mesa18~llvm@18.3:', type=('build', 'link'))
depends_on('py-setuptools@44.1.0', type='build')
depends_on('python@2.7.18', type='build')
depends_on('python@2.7.18', type='build', when='@3.5.0:3.8.0')
depends_on('python@3.6.9', type='build', when='@3.9.0:')
depends_on('py-pip', when='@3.8.0:', type='build')
depends_on('py-wheel@0.29.0', when='@3.8.0:', type=('build', 'run'))
depends_on('perl-data-dumper', type='build')
@@ -83,11 +101,60 @@ class Aomp(Package):
depends_on('elfutils', type=('build', 'link'))
depends_on('libffi', type=('build', 'link'))
for ver in ['3.5.0', '3.7.0', '3.8.0']:
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
depends_on('hsakmt-roct@' + ver, type=('build', 'run'), when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type=('build', 'run'),
when='@' + ver)
depends_on('rocm-device-libs@' + ver, type=('build', 'run'),
when='@' + ver)
if ver != '3.5.0':
depends_on('hip@' + ver, type=('build', 'run'), when='@' + ver)
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
if ver == '3.9.0':
depends_on('rocm-gdb@' + ver, type=('build', 'run'),
when='@' + ver)
# 3.9.0 Resources
if ver == '3.9.0':
resource(
name='rocm-device-libs',
url=compute_url +
'/ROCm-Device-Libs/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['devlib'],
expand=True,
destination='aomp-dir',
placement='rocm-device-libs',
when='@3.9.0')
resource(
name='amd-llvm-project',
url=tools_url + '/amd-llvm-project/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['llvm'],
expand=True,
destination='aomp-dir',
placement='amd-llvm-project',
when='@3.9.0')
resource(
name='flang',
url=tools_url + '/flang/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['flang'],
expand=True,
destination='aomp-dir',
placement='flang',
when='@3.9.0')
resource(
name='aomp-extras',
url=tools_url + '/aomp-extras/archive/rocm-3.9.0.tar.gz',
sha256=aomp39['extras'],
expand=True,
destination='aomp-dir',
placement='aomp-extras',
when='@3.9.0')
# 3.8.0 Resources
if ver == '3.8.0':
@@ -233,6 +300,11 @@ class Aomp(Package):
destination='aomp-dir',
placement='opencl-on-vdi',
when='@3.5.0')
# Copy source files over for debug build in 3.9.0
patch('0001-Add-cmake-option-for-copying-source-for-debugging.patch',
working_dir='aomp-dir/amd-llvm-project', when='@3.9.0:')
# Revert back to .amdgcn.bc naming scheme for 3.8.0
patch('0001-Add-amdgcn-to-devicelibs-bitcode-names-3.8.patch',
working_dir='aomp-dir/amd-llvm-project', when='@3.8.0')
@@ -256,8 +328,14 @@ def patch(self):
src = self.stage.source_path
libomptarget = '{0}/aomp-dir/amd-llvm-project/openmp/libomptarget'
aomp_extras = '{0}/aomp-dir/aomp-extras/aomp-device-libs'
flang = '{0}/aomp-dir/flang/'
if self.spec.version == Version('3.8.0'):
if self.spec.version >= Version('3.9.0'):
filter_file(
'ADDITIONAL_VERSIONS 2.7', 'ADDITIONAL_VERSIONS 3',
flang.format(src) + 'CMakeLists.txt')
if self.spec.version >= Version('3.8.0'):
filter_file(
'{CMAKE_INSTALL_PREFIX}', '{HSA_INCLUDE}',
libomptarget.format(src) + '/hostrpc/services/CMakeLists.txt')
@@ -330,6 +408,13 @@ def patch(self):
'-Wl,-rpath,${COMGR_LIB}',
libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
def setup_run_environment(self, env):
devlibs_prefix = self.spec['rocm-device-libs'].prefix
aomp_prefix = self.spec['aomp'].prefix
env.set('HIP_DEVICE_LIB_PATH',
'{0}/amdgcn/bitcode'.format(format(devlibs_prefix)))
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
def setup_build_environment(self, env):
aomp_prefix = self.spec['aomp'].prefix
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
@@ -347,7 +432,15 @@ def install(self, spec, prefix):
hsakmt_prefix = self.spec['hsakmt-roct'].prefix
comgr_prefix = self.spec['comgr'].prefix
opencl_src = '/aomp-dir/opencl-on-vdi/api/opencl'
omp_src = '/aomp-dir/amd-llvm-project/openmp'
debug_map = '-fdebug-prefix-map={0}{1}={2}'
debug_map_format = debug_map.format(src, omp_src, aomp_prefix)
components = dict()
if self.spec.version >= Version('3.9.0'):
bitcode_dir = '/amdgcn/bitcode'
else:
bitcode_dir = '/lib'
components['amd-llvm-project'] = [
'../aomp-dir/amd-llvm-project/llvm',
'-DLLVM_ENABLE_PROJECTS=clang;lld;compiler-rt',
@@ -388,15 +481,16 @@ def install(self, spec, prefix):
components['aomp-extras'] = [
'../aomp-dir/aomp-extras',
'-DROCM_PATH=$ROCM_DIR ',
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src)
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DCMAKE_VERBOSE_MAKEFILE=1'
]
components['openmp'] = [
'../aomp-dir/amd-llvm-project/openmp',
'-DROCM_DIR={0}'.format(hsa_prefix),
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
@@ -416,7 +510,7 @@ def install(self, spec, prefix):
components['openmp-debug'] = [
'../aomp-dir/amd-llvm-project/openmp',
'-DROCM_DIR={0}'.format(hsa_prefix),
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
@@ -434,7 +528,13 @@ def install(self, spec, prefix):
'-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1'
]
if self.spec.version == Version('3.8.0'):
if self.spec.version >= Version('3.9.0'):
components['openmp-debug'] += [
'-DENABLE_SOURCE_COPY=ON',
'-DOPENMP_SOURCE_DEBUG_MAP={0}'.format(debug_map_format),
]
if self.spec.version >= Version('3.8.0'):
components['openmp-debug'] += [
'-DLIBOMP_ARCH=x86_64',
'-DLIBOMP_OMP_VERSION=50',

View File

@@ -12,7 +12,7 @@ class AwsParallelcluster(PythonPackage):
tool to deploy and manage HPC clusters in the AWS cloud."""
homepage = "https://github.com/aws/aws-parallelcluster"
url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.9.1.tar.gz"
url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.10.0.tar.gz"
maintainers = [
'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
@@ -23,6 +23,7 @@ class AwsParallelcluster(PythonPackage):
'pcluster.config', 'pcluster.networking'
]
version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b')
version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3')
version('2.9.0', sha256='e98a8426bc46aca0860d9a2be89bbc4a90aab3ed2f60ca6c385b595fbbe79a78')
version('2.8.1', sha256='c183dc3f053bc2445db724e561cea7f633dd5e7d467a7b3f9b2f2f703f7d5d49')
@@ -33,29 +34,33 @@ class AwsParallelcluster(PythonPackage):
version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303')
version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3')
# common deps
depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-future@0.16.0:0.18.2', type=('build', 'run'))
depends_on('py-ipaddress@1.0.22:', type=('build', 'run'))
depends_on('py-configparser@3.5.0:3.8.1', when='^python@:2', type=('build', 'run'))
# 2.9.x changes
depends_on('py-tabulate@0.8.2:0.8.3', when='@:2.8', type=('build', 'run'))
depends_on('py-tabulate@0.8.5', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-tabulate@0.8.2:0.8.7', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
depends_on('py-pyyaml@5.2', when='@2.6:2.8 ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-pyyaml@5.3.1:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
depends_on('py-jinja2@2.10.1', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-jinja2@2.11.0:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
# 2.8.x changes
depends_on('py-boto3@1.14.3:', when='@2.8:', type=('build', 'run'))
depends_on('py-boto3@1.16.14:', when='@2.10:', type=('build', 'run'))
depends_on('py-boto3@1.14.3:', when='@2.8:2.9', type=('build', 'run'))
depends_on('py-boto3@1.10.15:', when='@:2.7', type=('build', 'run'))
# 2.6.x changes
depends_on('py-setuptools', when='@2.6:', type=('build', 'run'))
depends_on('py-enum34@1.1.6:', when='@2.6: ^python@:3.3', type=('build', 'run'))
depends_on('py-enum34@1.1.6:', when='@:2.5', type=('build', 'run'))
depends_on('py-pyyaml@5.1.2', when='@2.6: ^python@:2,3.5:', type=('build', 'run'))
depends_on('py-pyyaml@5.1.2:', when='@:2.5', type=('build', 'run'))

View File

@@ -14,6 +14,9 @@ class Botan(Package):
maintainers = ['aumuell']
version('2.17.2', sha256='ebe27dfe2b55d7e02bf520e926606c48b76b22facb483256b13ab38e018e1e6c')
version('2.17.1', sha256='741358b3f1638ed7d9b2f59b4e344aa46f4966b15958b5434c0ac1580df0c0c1')
version('2.17.0', sha256='b97044b312aa718349af7851331b064bc7bd5352400d5f80793bace427d01343')
version('2.16.0', sha256='92ed6ebc918d86bd1b04221ca518af4cf29cc326c4760740bd2d22e61cea2628')
version('2.15.0', sha256='d88af1307f1fefac79aa4f2f524699478d69ce15a857cf2d0a90ac6bf2a50009')
version('2.14.0', sha256='0c10f12b424a40ee19bde00292098e201d7498535c062d8d5b586d07861a54b5')

View File

@@ -6,7 +6,7 @@
from spack import *
class Camp(CMakePackage, CudaPackage):
class Camp(CMakePackage, CudaPackage, HipPackage):
"""
Compiler agnostic metaprogramming library providing concepts,
type operations and tuples for C++ and cuda
@@ -22,27 +22,6 @@ class Camp(CMakePackage, CudaPackage):
depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', type='build', when="+cuda")
variant('hip', default=False, description='Enable HIP support')
# possible amd gpu targets for hip builds
# TODO: we should add a hip build system description equivalent to
# lib/spack/spack/build_systems/cuda.py, where possible hip amd gpu
# architectures are defined in a similar way as for cuda gpu
# architectures. In the meantime, require users to define
# amd gpu type for hip builds with a variant here.
amdgpu_targets = (
'gfx701', 'gfx801', 'gfx802', 'gfx803',
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
'gfx1011', 'gfx1012', 'none'
)
variant('amdgpu_target', default='none', values=amdgpu_targets)
depends_on('llvm-amdgpu', when='+hip')
depends_on('hip', when='+hip')
# need amd gpu type for hip builds
conflicts('amdgpu_target=none', when='+hip')
def cmake_args(self):
spec = self.spec
@@ -66,7 +45,7 @@ def cmake_args(self):
options.extend([
'-DENABLE_HIP=ON',
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
'-DHIP_HCC_FLAGS=--amdgpu-target={0}'.format(arch)])
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
else:
options.append('-DENABLE_HIP=OFF')

View File

@@ -31,6 +31,8 @@ class CcsQcd(MakefilePackage):
homepage = "https://github.com/fiber-miniapp/ccs-qcd"
git = "https://github.com/fiber-miniapp/ccs-qcd.git"
tags = ['hep']
version('master', branch='master')
version('1.2.1', commit='d7c6b6923f35a824e997ba8db5bd12dc20dda45c')

View File

@@ -6,7 +6,7 @@
from spack import *
class Chai(CMakePackage, CudaPackage):
class Chai(CMakePackage, CudaPackage, HipPackage):
"""
Copy-hiding array interface for data migration between memory spaces
"""
@@ -36,6 +36,15 @@ class Chai(CMakePackage, CudaPackage):
depends_on('umpire+cuda', when="+cuda")
depends_on('raja+cuda', when="+raja+cuda")
# variants +hip and amdgpu_targets are not automatically passed to
# dependencies, so do it manually.
amdgpu_targets = HipPackage.amd_gputargets_list()
depends_on('umpire+hip', when='+hip')
depends_on('raja+hip', when="+raja+hip")
for val in amdgpu_targets:
depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val)
def cmake_args(self):
spec = self.spec
@@ -54,6 +63,15 @@ def cmake_args(self):
else:
options.append('-DENABLE_CUDA=OFF')
if '+hip' in spec:
arch = self.spec.variants['amdgpu_target'].value
options.extend([
'-DENABLE_HIP=ON',
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
else:
options.append('-DENABLE_HIP=OFF')
if '+raja' in spec:
options.extend(['-DENABLE_RAJA_PLUGIN=ON',
'-DRAJA_DIR=' + spec['raja'].prefix])
@@ -64,6 +82,13 @@ def cmake_args(self):
options.append('-DENABLE_TESTS={0}'.format(
'ON' if self.run_tests else 'OFF'))
# give clear error for conflict between self.run_tests and
# benchmarks variant.
if not self.run_tests and '+benchmarks' in spec:
raise InstallError(
'ENABLE_BENCHMARKS requires ENABLE_TESTS to be ON'
)
options.append('-DENABLE_BENCHMARKS={0}'.format(
'ON' if '+benchmarks' in spec else 'OFF'))

View File

@@ -17,11 +17,13 @@ class Charmpp(Package):
allows programs to run portably from small multicore computers
(your laptop) to the largest supercomputers."""
homepage = "http://charmplusplus.org"
url = "http://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
homepage = "https://charmplusplus.org"
url = "https://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
git = "https://github.com/UIUC-PPL/charm.git"
version("develop", branch="master")
maintainers = ["matthiasdiener"]
version("master", branch="master")
version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb')
version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8')
@@ -37,7 +39,7 @@ class Charmpp(Package):
version("6.5.1", sha256="68aa43e2a6e476e116a7e80e385c25c6ac6497807348025505ba8bfa256ed34a")
# Support OpenMPI; see
# <https://charm.cs.illinois.edu/redmine/issues/1206>
# <https://github.com/UIUC-PPL/charm/issues/1206>
# Patch is no longer needed in versions 6.8.0+
patch("mpi.patch", when="@:6.7.1")
@@ -147,17 +149,12 @@ def charmarch(self):
("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
("linux", "i386", "mpi"): "mpi-linux",
("linux", "i386", "multicore"): "multicore-linux",
("linux", "i386", "netlrts"): "netlrts-linux",
("linux", "i386", "uth"): "uth-linux",
("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
("linux", "x86_64", "multicore"): "multicore-linux-x86_64",
("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
("linux", "x86_64", "ofi"): "ofi-linux-x86_64",
("linux", "x86_64", "ucx"): "ucx-linux-x86_64",
("linux", "x86_64", "uth"): "uth-linux-x86_64",
("linux", "ppc", "mpi"): "mpi-linux-ppc",
("linux", "ppc", "multicore"): "multicore-linux-ppc",
("linux", "ppc", "netlrts"): "netlrts-linux-ppc",
@@ -173,6 +170,21 @@ def charmarch(self):
("cnl", "x86_64", "gni"): "gni-crayxc",
("cnl", "x86_64", "mpi"): "mpi-crayxc",
}
# Some versions were renamed/removed in 6.11
if self.spec.version < Version("6.11.0"):
versions.update({("linux", "i386", "mpi"): "mpi-linux"})
versions.update({("linux", "i386", "multicore"):
"multicore-linux"})
versions.update({("linux", "i386", "netlrts"): "netlrts-linux"})
versions.update({("linux", "i386", "uth"): "uth-linux"})
else:
versions.update({("linux", "i386", "mpi"): "mpi-linux-i386"})
versions.update({("linux", "i386", "multicore"):
"multicore-linux-i386"})
versions.update({("linux", "i386", "netlrts"):
"netlrts-linux-i386"})
if (plat, mach, comm) not in versions:
raise InstallError(
"The communication mechanism %s is not supported "
@@ -301,7 +313,10 @@ def install(self, spec, prefix):
os.rename(tmppath, filepath)
except (IOError, OSError):
pass
shutil.rmtree(join_path(builddir, "tmp"))
tmp_path = join_path(builddir, "tmp")
if not os.path.islink(tmp_path):
shutil.rmtree(tmp_path)
if self.spec.satisfies('@6.9.99'):
# A broken 'doc' link in the prefix can break the build.
@@ -315,8 +330,8 @@ def install(self, spec, prefix):
@run_after('install')
@on_package_attributes(run_tests=True)
def check_build(self):
make('-C', join_path(self.stage.source_path, 'charm/tests'),
'test', parallel=False)
make('-C', join_path(self.stage.source_path, 'tests'),
'test', 'TESTOPTS=++local', parallel=False)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.ampicc)

View File

@@ -14,8 +14,11 @@ class Clhep(CMakePackage):
list_url = "https://proj-clhep.web.cern.ch/proj-clhep/"
list_depth = 1
tags = ['hep']
maintainers = ['drbenmorgan']
version('2.4.4.0', sha256='5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539')
version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913')
version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8')
version('2.4.1.0', sha256='d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d')

View File

@@ -11,11 +11,12 @@ class Cmake(Package):
tools designed to build, test and package software.
"""
homepage = 'https://www.cmake.org'
url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz'
url = 'https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz'
maintainers = ['chuckatkins']
executables = ['^cmake$']
version('3.19.0', sha256='fdda688155aa7e72b7c63ef6f559fca4b6c07382ea6dca0beb5f45aececaf493')
version('3.18.4', sha256='597c61358e6a92ecbfad42a9b5321ddd801fc7e7eca08441307c9138382d4f77')
version('3.18.3', sha256='2c89f4e30af4914fd6fb5d00f863629812ada848eee4e2d29ec7e456d7fa32e5')
version('3.18.2', sha256='5d4e40fc775d3d828c72e5c45906b4d9b59003c9433ff1b36a1cb552bbd51d7e')

View File

@@ -12,6 +12,8 @@ class Collier(CMakePackage):
homepage = "https://collier.hepforge.org"
url = "https://collier.hepforge.org/downloads/?f=collier-1.2.5.tar.gz"
tags = ['hep']
version('1.2.5', sha256='3ec58a975ff0c3b1ca870bc38973476c923ff78fd3dd5850e296037852b94a8b')
version('1.2.4', sha256='92ae8f61461b232fbd47a6d8e832e1a726d504f9390b7edc49a68fceedff8857')
version('1.2.3', sha256='e6f72df223654df59113b0067a4bebe9f8c20227bb81371d3193e1557bdf56fb')

View File

@@ -37,7 +37,11 @@ class Conduit(Package):
url = "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz"
git = "https://github.com/LLNL/conduit.git"
version('master', branch='master', submodules=True, preferred=True)
version('develop', branch='develop', submodules=True, preferred=True)
# note: the main branch in conduit was renamed to develop, this next entry
# is to bridge any spack dependencies that are still using the name master
version('master', branch='develop', submodules=True)
version('0.6.0', sha256='078f086a13b67a97e4ab6fe1063f2fef2356df297e45b43bb43d74635f80475d')
version('0.5.1', sha256='68a3696d1ec6d3a4402b44a464d723e6529ec41016f9b44c053676affe516d44')
version('0.5.0', sha256='7efac668763d02bd0a2c0c1b134d9f5ee27e99008183905bb0512e5502b8b4fe')
version('0.4.0', sha256='c228e6f0ce5a9c0ffb98e0b3d886f2758ace1a4b40d00f3f118542c0747c1f52')

View File

@@ -5,6 +5,137 @@
import os
from spack import *
import platform
_versions = {
# cuDNN 8.0.4
'8.0.4.30-11.1': {
'Linux-x86_64': '8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab',
'Linux-ppc64le': 'b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712'},
'8.0.4.30-11.0': {
'Linux-x86_64': '38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
'Linux-ppc64le': '8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1'},
'8.0.4.30-10.2': {
'Linux-x86_64': 'c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e',
'Linux-ppc64le': '32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e'},
'8.0.4.30-10.1': {
'Linux-x86_64': 'eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715',
'Linux-ppc64le': '690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9'},
# cuDNN 8.0.3
'8.0.3.33-11.0': {
'Linux-x86_64': '8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a',
'Linux-ppc64le': 'c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d'},
'8.0.3.33-10.2': {
'Linux-x86_64': 'b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc',
'Linux-ppc64le': 'ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11'},
'8.0.3.33-10.1': {
'Linux-x86_64': '4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07',
'Linux-ppc64le': 'c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3'},
# cuDNN 8.0.2
'8.0.2.39-11.0': {
'Linux-x86_64': '672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345',
'Linux-ppc64le': 'b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057'},
'8.0.2.39-10.2': {
'Linux-x86_64': 'c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f',
'Linux-ppc64le': 'c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262'},
'8.0.2.39-10.1': {
'Linux-x86_64': '82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d',
'Linux-ppc64le': '8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9'},
# cuDNN 8.0
'8.0.0.180-11.0': {
'Linux-x86_64': '9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e',
'Linux-ppc64le': '1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060'},
'8.0.0.180-10.2': {
'Linux-x86_64': '0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d',
'Linux-ppc64le': '59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f'},
# cuDNN 7.6.5
'7.6.5.32-10.2': {
'Linux-x86_64': '600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20',
'Linux-ppc64le': '7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b'},
'7.6.5.32-10.1': {
'Linux-x86_64': '7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3',
'Darwin-x86_64': '8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff',
'Linux-ppc64le': '97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56'},
'7.6.5.32-10.0': {
'Linux-x86_64': '28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba',
'Darwin-x86_64': '6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47',
'Linux-ppc64le': 'b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b'},
'7.6.5.32-9.2': {
'Linux-x86_64': 'a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4',
'Linux-ppc64le': 'a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76'},
'7.6.5.32-9.0': {
'Linux-x86_64': 'bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8'},
# cuDNN 7.6.4
'7.6.4.38-10.1': {
'Linux-x86_64': '32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099',
'Darwin-x86_64': 'bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236',
'Linux-ppc64le': 'f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce'},
'7.6.4.38-10.0': {
'Linux-x86_64': '417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf',
'Darwin-x86_64': 'af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1',
'Linux-ppc64le': 'c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb'},
'7.6.4.38-9.2': {
'Linux-x86_64': 'c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27',
'Linux-ppc64le': '98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884'},
'7.6.4.38-9.0': {
'Linux-x86_64': '8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d'},
# cuDNN 7.6.3
'7.6.3.30-10.1': {
'Linux-x86_64': '352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961',
'Linux-ppc64le': 'f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee'},
# cuDNN 7.5.1
'7.5.1.10-10.1': {
'Linux-x86_64': '2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0',
'Linux-ppc64le': 'a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663'},
'7.5.1.10-10.0': {
'Linux-x86_64': 'c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985',
'Linux-ppc64le': 'd9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70'},
# cuDNN 7.5.0
'7.5.0.56-10.1': {
'Linux-x86_64': 'c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8',
'Linux-ppc64le': '15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638'},
'7.5.0.56-10.0': {
'Linux-x86_64': '701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781',
'Linux-ppc64le': 'f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a'},
# cuDNN 7.3.0
'7.3.0.29-9.0': {
'Linux-x86_64': '403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b'},
# cuDNN 7.2.1
'7.2.1.38-9.0': {
'Linux-x86_64': 'cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37'},
# cuDNN 7.1.3
'7.1.3-9.1': {
'Linux-x86_64': 'dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228',
'Linux-ppc64le': 'e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931'},
# cuDNN 6.0
'6.0-8.0': {
'Linux-x86_64': '9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c'},
# cuDNN 5.1
'5.1-8.0': {
'Linux-x86_64': 'c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce'},
}
class Cudnn(Package):
@@ -20,214 +151,26 @@ class Cudnn(Package):
# Note that download links don't work from command line,
# need to use modified URLs like in url_for_version.
maintainers = ['adamjstewart']
maintainers = ['adamjstewart', 'bvanessen']
# cudNN 8.0.4
version('8.0.4.30-11.1-linux-x64',
sha256='8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab')
version('8.0.4.30-11.1-linux-ppc64le',
sha256='b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712')
version('8.0.4.30-11.0-linux-x64',
sha256='38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
preferred=True)
version('8.0.4.30-11.0-linux-ppc64le',
sha256='8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1')
version('8.0.4.30-10.2-linux-x64',
sha256='c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e')
version('8.0.4.30-10.2-linux-ppc64le',
sha256='32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e')
version('8.0.4.30-10.1-linux-x64',
sha256='eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715')
version('8.0.4.30-10.1-linux-ppc64le',
sha256='690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9')
# cuDNN 8.0.3
version('8.0.3.33-11.0-linux-x64',
sha256='8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a')
version('8.0.3.33-11.0-linux-ppc64le',
sha256='c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d')
version('8.0.3.33-10.2-linux-x64',
sha256='b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc')
version('8.0.3.33-10.2-linux-ppc64le',
sha256='ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11')
version('8.0.3.33-10.1-linux-x64',
sha256='4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07')
version('8.0.3.33-10.1-linux-ppc64le',
sha256='c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3')
# cuDNN 8.0.2
version('8.0.2.39-11.0-linux-x64',
sha256='672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345')
version('8.0.2.39-11.0-linux-ppc64le',
sha256='b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057')
version('8.0.2.39-10.2-linux-x64',
sha256='c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f')
version('8.0.2.39-10.2-linux-ppc64le',
sha256='c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262')
version('8.0.2.39-10.1-linux-x64',
sha256='82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d')
version('8.0.2.39-10.1-linux-ppc64le',
sha256='8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9')
# cuDNN 8.0
version('8.0.0.180-11.0-linux-x64',
sha256='9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e')
version('8.0.0.180-11.0-linux-ppc64le',
sha256='1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060')
version('8.0.0.180-10.2-linux-x64',
sha256='0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d')
version('8.0.0.180-10.2-linux-ppc64le',
sha256='59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f')
# cuDNN 7.6.5
version('7.6.5.32-10.2-linux-x64',
sha256='600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20')
version('7.6.5.32-10.2-linux-ppc64le',
sha256='7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b')
version('7.6.5.32-10.1-linux-x64',
sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3')
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.2
depends_on('cuda@10.2.0:10.2.999', when='@7.6.5.32-10.2-linux-x64')
# 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')
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
pkg = packages.get(key)
cudnn_ver, cuda_ver = ver.split('-')
long_ver = "{0}-{1}".format(cudnn_ver, cuda_ver)
if pkg:
version(long_ver, sha256=pkg)
# Add constraints matching CUDA version to cuDNN version
cuda_req = 'cuda@{0}.0:{0}.999'.format(cuda_ver)
cudnn_ver_req = '@{0}'.format(long_ver)
depends_on(cuda_req, when=cudnn_ver_req)
def url_for_version(self, version):
url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-v{2}.tgz'
url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}-v{3}.tgz'
# Get the system and machine arch for building the file path
sys = "{0}-{1}".format(platform.system(), platform.machine())
# Munge it to match Nvidia's naming scheme
sys_key = sys.lower().replace('x86_64', 'x64').replace('darwin', 'osx')
if version >= Version('7.2'):
directory = version[:3]
@@ -246,7 +189,7 @@ def url_for_version(self, version):
ver = version[:2]
cuda = version[2:]
return url.format(directory, cuda, ver)
return url.format(directory, cuda, sys_key, ver)
def setup_run_environment(self, env):
if 'target=ppc64le: platform=linux' in self.spec:

View File

@@ -21,6 +21,8 @@ class Dd4hep(CMakePackage):
maintainers = ['vvolkl', 'drbenmorgan']
tags = ['hep']
version('master', branch='master')
version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717')
version('1.14.0', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895')

View File

@@ -15,11 +15,12 @@ class Delphes(CMakePackage):
git = "https://github.com/delphes/delphes.git"
url = "http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.2.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan', 'vvolkl', 'selvaggi']
version('master', branch='master')
version('3.4.3pre05', tag='3.4.3pre05')
version('3.4.3pre04', tag='3.4.3pre04')
version('3.4.3pre06', tag='3.4.3pre06')
version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b', preferred=True)
version('3.4.1', sha256='4b5a2aeac326643f45b6d45c39ba2302e323eeb86d8cb58843c6e73949b1208a')
version('3.4.0', sha256='c0f9500663a0c3a5c1eddcee598a67b5bcfc9318303195c6cacc0590b4023fa1')

View File

@@ -16,6 +16,8 @@ class Dire(Package):
git = "http://gitlab.com/dire/direforpythia"
list_url = "http://dire.gitlab.io/Downloads.html"
tags = ['hep']
maintainer = ['mdiefent']
version('2.004', sha256='8cc1213b58fec744fdaa50834560a14b141de99efb2c3e3d3d47f3d6d84b179f')

View File

@@ -13,6 +13,8 @@ class Evtgen(AutotoolsPackage):
homepage = "https://evtgen.hepforge.org/"
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/evtgen-R01-07-00.tar.gz"
tags = ['hep']
maintainers = ['vvolkl']
version('02-00-00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719')

View File

@@ -0,0 +1,27 @@
--- dfgather.F90_old 2020-09-16 17:19:18.000000000 -0600
+++ dfgather.F90 2020-09-16 17:19:21.000000000 -0600
@@ -27,6 +27,11 @@
! loop over q-points
Do iq = 1, nqpt
tq0 = tqgamma (iq)
+
+ call genfilname(basename='X0', bzsampl=bzsampl,&
+ & acont=input%xs%tddft%acont, nar= .not. input%xs%tddft%aresdf,&
+ & tord=input%xs%tddft%torddf, markfxcbse=tfxcbse, iqmt=iq, filnam=fnchi0)
+
! calculate k+q and G+k+q related variables
Call init1offs (qvkloff(1, iq))
! size of local field effects
@@ -54,6 +59,12 @@
call mpi_bcast(chi0hd,3*3,MPI_DOUBLE_COMPLEX,iproc,mpi_comm_world,ierr)
#endif
if(rank.eq.0.or.(firstinnode.and. .not.input%sharedfs))then
+ if (iw == wpari) then
+ print *, 'procs=', procs
+ print *, 'rank=', rank
+ print *, 'iq=', iq, '/', nqpt
+ print *, 'fnchi0=',trim(fnchi0)
+ end if
Call putx0 (tq0, iq, iw, trim(fnchi0), '', chi0, chi0wg, &
& chi0hd)
endif

View File

@@ -0,0 +1,117 @@
# Copyright 2013-2020 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 Exciting(MakefilePackage):
"""
exciting is a full-potential all-electron density-functional-theory package
implementing the families of linearized augmented planewave methods. It can
be applied to all kinds of materials, irrespective of the atomic species in
volved, and also allows for exploring the physics of core electrons. A
particular focus are excited states within many-body perturbation theory.
"""
homepage = "http://exciting-code.org/"
url = "http://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz"
version('14', sha256='a7feaffdc23881d6c0737d2f79f94d9bf073e85ea358a57196d7f7618a0a3eff')
# as-of-yet unpublished fix to version 14
patch('dfgather.patch', when='@14', working_dir='src/src_xs', level=0)
variant('mpi', default=False, description='Use MPI')
variant('mkl', default=False, description='Use MKL')
variant('omp', default=True, description='Use OpenMP')
variant('scalapack', default=False, description='Use ScaLAPACK')
depends_on('blas')
depends_on('lapack')
depends_on('fftw', when='~mkl')
depends_on('mkl', when='+mkl')
depends_on('mpi', when='+mpi')
depends_on('scalapack', when='+scalapack')
conflicts('%gcc@10:', msg='exciting cannot be built with GCC 10')
for __compiler in spack.compilers.supported_compilers():
if __compiler != 'intel':
conflicts('%{0}'.format(__compiler), when='^mkl',
msg='MKL only works with the Intel compiler')
def edit(self, spec, prefix):
opts = {}
opts['BUILDSMP'] = 'true'
opts['F90_OPTS'] = '-cpp '
opts['F77_OPTS'] = '-cpp -O3 '
opts['CPP_ON_OPTS'] = '-cpp -DXS -DISO -DLIBXC'
opts['LIB_ARP'] = 'libarpack.a'
opts['F90'] = spack_fc
opts['F77'] = spack_f77
if '+omp' in spec:
opts['LDFLAGS'] = self.compiler.openmp_flag + ' -DUSEOMP'
opts['F90_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
opts['F77_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
if '%intel' in spec:
opts['F90_OPTS'] += ' -O3 -cpp -ip -unroll -scalar_rep '
opts['CPP_ON_OPTS'] += ' -DIFORT -DFFTW'
if '%gcc' in spec:
opts['F90_OPTS'] += '-O3 -march=native -ffree-line-length-0'
filter_file('FCFLAGS = @FCFLAGS@',
' '.join(['FCFLAGS = @FCFLAGS@', '-cpp',
self.compiler.openmp_flag]),
'src/libXC/src/Makefile.in')
if '+mkl' in spec:
if '%intel' in spec:
opts['LIB_LPK'] = '-mkl=parallel'
opts['INC_MKL'] = spec['mkl'].headers.include_flags
opts['LIB_MKL'] = spec['mkl'].libs.ld_flags
else:
opts['LIB_LPK'] = ' '.join([spec['lapack'].libs.ld_flags,
spec['blas'].libs.ld_flags,
self.compiler.openmp_flag])
if '+mpi' in spec:
opts['BUILDMPI'] = 'true'
opts['MPIF90'] = spec['mpi'].mpifc
opts['MPIF90_CPP_OPTS'] = self.compiler.openmp_flag
opts['MPIF90_CPP_OPTS'] += ' -DMPI -DMPIRHO -DMPISEC '
opts['MPIF90_OPTS'] = ' '.join(['$(F90_OPTS)', '$(CPP_ON_OPTS) '
'$(MPIF90_CPP_OPTS)'])
opts['MPIF90MT'] = '$(MPIF90)'
else:
opts['BUILDMPI'] = 'false'
if '+scalapack' in spec:
opts['LIB_SCLPK'] = spec['scalapack'].libs.ld_flags
opts['LIB_SCLPK'] += ' ' + self.compiler.openmp_flag
opts['CPP_SCLPK'] = ' -DSCAL '
opts['LIBS_MPI'] = '$(LIB_SCLPK)'
opts['MPIF90_CPP_OPTS'] += ' $(CPP_SCLPK) '
opts['USE_SYS_LAPACK'] = 'true'
opts['LIB_FFT'] = 'fftlib.a'
opts['LIB_BZINT'] = 'libbzint.a'
opts['LIBS'] = '$(LIB_ARP) $(LIB_LPK) $(LIB_FFT) $(LIB_BZINT)'
with open('build/make.inc', 'a') as inc:
for key in opts:
inc.write('{0} = {1}\n'.format(key, opts[key]))
def install(self, spec, prefix):
install_tree('bin', prefix)
install_tree('species', prefix.species)
install_tree('tools', prefix.tools)
def setup_run_environment(self, env):
env.set('WNHOME', self.prefix)
env.set('EXCITINGROOT', self.prefix)
env.set('EXCITINGBIN', self.prefix.bin)
env.set('EXCITINGTOOLS', self.prefix.tools)
env.set('EXCITINGSTM', self.prefix.tools.stm)
env.set('EXCITINGVISUAL', self.prefix.xml.visualizationtemplates)
env.set('EXCITINGCONVERT', self.prefix.xml.inputfileconverter)
env.set('TIMEFORMAT', ' Elapsed time = %0lR')
env.set('WRITEMINMAX', '1')
env.append_path('PYTHONPATH', self.prefix.tools.stm)
env.append_path('PATH', self.prefix.tools)
env.append_path('PATH', self.prefix)
env.append_path('PATH', self.prefix.tools.stm)

View File

@@ -39,7 +39,9 @@ def url_for_version(self, version):
def configure_args(self):
spec = self.spec
args = ['--without-docbook']
args = ['--without-docbook',
'--enable-static',
]
if '+libbsd' in spec and '@2.2.1:' in spec:
args.append('--with-libbsd')
return args

View File

@@ -15,6 +15,8 @@ class Fastjet(AutotoolsPackage):
homepage = "http://fastjet.fr/"
url = "http://fastjet.fr/repo/fastjet-3.3.3.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan', 'vvolkl']
version('3.3.3', sha256='30b0a0282ce5aeac9e45862314f5966f0be941ce118a83ee4805d39b827d732b')

View File

@@ -13,6 +13,8 @@ class Fjcontrib(AutotoolsPackage):
homepage = "https://fastjet.hepforge.org/contrib/"
url = "http://fastjet.hepforge.org/contrib/downloads/fjcontrib-1.044.tar.gz"
tags = ['hep']
version('1.044', sha256='de3f45c2c1bed6d7567483e4a774575a504de8ddc214678bac7f64e9d2e7e7a7')
version('1.043', sha256='ef0f586b19ffd12f392b7facc890a73d31fc11b9f5bb727cf3743d6eb59e9993')
version('1.042', sha256='5b052e93a371c557557fa4a293cca4b08f88ccfb6c43a4df15b2a9f38c6d8831')

View File

@@ -14,7 +14,7 @@ class Flibcpp(CMakePackage):
git = "https://github.com/swig-fortran/flibcpp.git"
url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.1.tar.gz"
version('master', branch='master')
version('0.5.2', sha256='b9b4eb6431d5b56a54c37f658df7455eafd3d204a5534903b127e0c8a1c9b827')
version('0.5.1', sha256='76db24ce7893f19ab97ea7260c39490ae1bd1e08a4cc5111ad7e70525a916993')
version('0.5.0', sha256='94204198304ba4187815431859e5958479fa651a6f06f460b099badbf50f16b2')
version('0.4.1', sha256='5c9a11af391fcfc95dd11b95338cff19ed8104df66d42b00ae54f6cde4da5bdf')
@@ -28,7 +28,7 @@ class Flibcpp(CMakePackage):
variant('fstd', default='03', values=('none', '03', '08', '15', '18'),
multi=False, description='Build with this Fortran standard')
depends_on('swig@fortran', type='build', when="+swig")
depends_on('swig@4.0.2-fortran', type='build', when="+swig")
depends_on('py-sphinx', type='build', when="+doc")
@run_before('cmake')
@@ -44,6 +44,6 @@ def cmake_args(self):
self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
self.define_from_variant('FLIBCPP_BUILD_DOCS', 'doc'),
self.define_from_variant('FLIBCPP_FORTRAN_STD', 'fstd'),
self.define('BUILD_TESTING', bool(self.run_tests)),
self.define('FLIBCPP_BUILD_TESTS', bool(self.run_tests)),
self.define('FLIBCPP_BUILD_EXAMPLES', bool(self.run_tests)),
]

View File

@@ -12,6 +12,8 @@ class G4abla(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4emlow(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4ensdfstate(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -13,6 +13,8 @@ class G4incl(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
@@ -31,4 +33,4 @@ def setup_dependent_run_environment(self, env, dependent_spec):
def url_for_version(self, version):
"""Handle version string."""
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version)
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version)

View File

@@ -12,6 +12,8 @@ class G4ndl(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
version('4.6', sha256='9d287cf2ae0fb887a2adce801ee74fb9be21b0d166dab49bcbee9408a5145408')

View File

@@ -13,6 +13,8 @@ class G4neutronxs(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -13,6 +13,8 @@ class G4particlexs(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.2.1.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
@@ -32,4 +34,4 @@ def setup_dependent_run_environment(self, env, dependent_spec):
def url_for_version(self, version):
"""Handle version string."""
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version)
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version)

View File

@@ -12,6 +12,8 @@ class G4photonevaporation(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4pii(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4radioactivedecay(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4realsurface(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4saiddata(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -12,6 +12,8 @@ class G4tendl(Package):
homepage = "http://geant4.web.cern.ch"
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added

View File

@@ -13,6 +13,8 @@ class Gaudi(CMakePackage):
git = "https://gitlab.cern.ch/gaudi/Gaudi.git"
url = "https://gitlab.cern.ch/gaudi/Gaudi/-/archive/v33r1/Gaudi-v33r1.tar.gz"
tags = ['hep']
version('master', branch='master')
version('35.0', sha256='c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6')
version('34.0', sha256='28fc4abb5a6b08da5a6b1300451c7e8487f918b055939877219d454abf7668ae')
@@ -88,13 +90,14 @@ def cmake_args(self):
args = [
self.define_from_variant("BUILD_TESTING", "optional"),
self.define_from_variant("GAUDI_USE_AIDA", "optional"),
self.define_from_variant("GAUDI_USE_CLHEP", "optional"),
self.define_from_variant("GAUDI_USE_CPPUNIT", "optional"),
self.define_from_variant("GAUDI_USE_HEPPDT", "optional"),
self.define_from_variant("GAUDI_USE_JEMALLOC", "optional"),
self.define_from_variant("GAUDI_USE_UNWIND", "optional"),
self.define_from_variant("GAUDI_USE_XERCESC", "optional"),
self.define_from_variant("GAUDI_USE_DOXYGEN", "docs"),
# needed to build core services like rndmsvc
self.define("GAUDI_USE_CLHEP", True),
self.define("GAUDI_USE_PYTHON_MAJOR",
str(self.spec['python'].version.up_to(1))),
# todo:

View File

@@ -15,6 +15,8 @@ class Geant4Data(BundlePackage):
maintainers = ['drbenmorgan']
tags = ['hep']
version('10.6.2')
version('10.6.1')
version('10.6.0')

View File

@@ -13,6 +13,8 @@ class Geant4Vmc(CMakePackage):
url = "http://github.com/vmc-project/geant4_vmc/archive/v5-1-p1.tar.gz"
git = "http://github.com/vmc-project/geant4_vmc.git"
tags = ['hep']
maintainer = ['wdconinc']
version('master', branch='master')

View File

@@ -15,6 +15,8 @@ class Geant4(CMakePackage):
homepage = "http://geant4.cern.ch/"
url = "https://gitlab.cern.ch/geant4/geant4/-/archive/v10.6.0/geant4-v10.6.0.tar.gz"
tags = ['hep']
maintainers = ['drbenmorgan']
version('10.6.2', sha256='e381e04c02aeade1ed8cdd9fdbe7dcf5d6f0f9b3837a417976b839318a005dbd')

View File

@@ -2,20 +2,24 @@
# 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 Globalarrays(AutotoolsPackage):
"""Global Arrays (GA) is a Partitioned Global Address Space (PGAS)
programming model. It provides primitives for one-sided communication
(Get, Put, Accumulate) and Atomic Operations (read increment).
It supports blocking and non-blocking primtives, and supports location
consistency."""
programming model.
It provides primitives for one-sided communication (Get, Put, Accumulate)
and Atomic Operations (read increment). It supports blocking and
non-blocking primtives, and supports location consistency.
"""
homepage = "http://hpc.pnl.gov/globalarrays/"
url = "https://github.com/GlobalArrays/ga/releases/download/v5.7/ga-5.7.tar.gz"
version('5.8', sha256='64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac')
version('5.7.2', sha256='8cd0fcfd85bc7f9c168c831616f66f1e8b9b2ca31dc7dd93cc55b27cc7fe7069')
version('5.7.1', sha256='aa4c6038d792cabf1766e264320da58a555da81a3a36be32b7c4d3e71c08ffa9')
version('5.7', sha256='3ed1ab47adfda7bceb7beca12fc05a2e1631732f0e55bbaf9036dad4e3da4774')
version('5.6.5', sha256='17a7111dfe67d44cf0888c7b79abd48bf4968874f26b3f16cce9fd04e2c72bb9')
version('5.6.4', sha256='3daf742053502755c0b581041a56f8f7086af05980c7146d194b0fd6526ee14f')
@@ -24,39 +28,38 @@ class Globalarrays(AutotoolsPackage):
version('5.6.1', sha256='b324deed49f930f55203e1d18294ce07dd02680b9ac0728ebc54f94a12557ebc')
version('5.6', sha256='a228dfbae9a6cfaae34694d7e56f589ac758e959b58f4bc49e6ef44058096767')
variant('int64', default=False, description='Compile with 64 bit indices support')
variant('blas', default=False, description='Enable BLAS')
variant('lapack', default=False, description='Enable LAPACK')
variant('scalapack', default=False, description='Enable SCALAPACK')
variant('armci', values=('mpi-ts', 'mpi-pr', 'mpi3', 'openib', 'ofi'),
default='mpi-ts', description='ARMCI runtime')
depends_on('mpi')
depends_on('blas', when='+blas')
depends_on('lapack', when='+lapack')
depends_on('blas')
depends_on('lapack')
depends_on('scalapack', when='+scalapack')
conflicts('+lapack', when='~blas')
conflicts('+scalapack', when='~blas')
conflicts('+scalapack', when='~lapack')
# See release https://github.com/GlobalArrays/ga/releases/tag/v5.7.1
conflicts('%gcc@10:', when='@5.7')
conflicts('%gcc@10:', when='@:5.6.5')
@property
def build_directory(self):
return os.path.join(str(self.stage.source_path), '..', 'spack-build')
def configure_args(self):
args = ['--with-mpi']
blas_flags = self.spec['blas'].libs.ld_flags
lapack_libs = self.spec['lapack'].libs.ld_flags
if '+blas' in self.spec:
if '+int64' in self.spec:
args.append('--with-blas8')
else:
args.append('--with-blas')
if '+lapack' in self.spec:
args.append('--with-lapack')
args = [
'--enable-shared',
'--with-mpi',
'--with-blas={0}'.format(blas_flags),
'--with-lapack={0}'.format(lapack_libs),
]
if '+scalapack' in self.spec:
if '+int64' in self.spec:
args.append('--with-scalapack8')
else:
args.append('--with-scalapack')
scalapack_libs = self.spec['scalapack'].libs.ld_flags
args.append('--with-scalapack={0}'.format(scalapack_libs))
args.append('--with-' + self.spec.variants['armci'].value)

View File

@@ -12,6 +12,8 @@ class GosamContrib(AutotoolsPackage):
homepage = "https://gosam.hepforge.org"
url = "https://gosam.hepforge.org/downloads/?f=gosam-contrib-2.0.tar.gz"
tags = ['hep']
version('2.0', sha256='c05beceea74324eb51c1049773095e2cb0c09c8c909093ee913d8b0da659048d')
version('1.0', sha256='a29d4232d9190710246abc2ed97fdcd8790ce83580f56a360f3456b0377c40ec')

View File

@@ -16,7 +16,8 @@ class H5cpp(CMakePackage):
maintainers = ['eschnett']
version('master', branch='master')
version('1.10.4-5', sha256='42d0ca1aaff1ead8998a26d892a51c12b1b89023382f191dc438bd0fa4513455')
version('1.10.4-6', sha256='4fbc8e777dc78a37ec2fe8c7b6a47114080ffe587f083e83a2046b5e794aef93')
version('1.10.4-5', sha256='661ccc4d76e081afc73df71ef11d027837d92dd1089185f3650afcaec9d418ec')
variant('mpi', default=True, description='Include MPI support')
@@ -26,4 +27,9 @@ class H5cpp(CMakePackage):
depends_on('mpi', when='+mpi')
def cmake_args(self):
return ['-DH5CPP_BUILD_TESTS=OFF']
return [
'-DHDF5_INCLUDE_DIRS=%s' %
self.spec['hdf5'].headers.directories[0],
'-DHDF5_LIBRARIES=%s' % self.spec['hdf5'].libs.directories[0],
'-DH5CPP_BUILD_TESTS=OFF',
]

View File

@@ -11,6 +11,8 @@ class Hepmc(CMakePackage):
homepage = "http://hepmc.web.cern.ch/hepmc/"
url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
tags = ['hep']
version('2.06.10', sha256='5adedd9e3f7447e1e5fc01b72f745ab87da2c1611df89208bb3d7c6ea94c11a4')
version('2.06.09', sha256='e0f8fddd38472c5615210894444686ac5d72df3be682f7d151b562b236d9b422')
version('2.06.08', sha256='8be6c1793e0a045f07ddb88bb64b46de7e66a52e75fb72b3f82f9a3e3ba8a8ce')

View File

@@ -14,6 +14,8 @@ class Hepmc3(CMakePackage):
url = "https://gitlab.cern.ch/hepmc/HepMC3/-/archive/3.2.1/HepMC3-3.2.1.tar.gz"
git = "https://gitlab.cern.ch/hepmc/HepMC3.git"
tags = ['hep']
maintainers = ['vvolkl']
version('3.2.2', sha256='0e8cb4f78f804e38f7d29875db66f65e4c77896749d723548cc70fb7965e2d41')

View File

@@ -15,6 +15,8 @@ class Hepmcanalysis(MakefilePackage):
version('3.4.13', sha256='be9937c6de493a5671258919493b0caa0cecca77853a2075f5cecce1071e0029')
tags = ['hep']
depends_on('hepmc')
depends_on('fastjet')
depends_on('root')

View File

@@ -15,6 +15,8 @@ class Heppdt(AutotoolsPackage):
homepage = "https://cdcvs.fnal.gov/redmine/projects/heppdt/wiki"
url = "https://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/HepPDT-2.06.01.tar.gz"
tags = ['hep']
version('3.04.01', sha256='2c1c39eb91295d3ded69e0d3f1a38b1cb55bc3f0cde37b725ffd5d722f63c0f6')
version('3.04.00', sha256='c5f0eefa19dbbae99f2b6a2ab1ad8fd5d5f844fbbbf96e62f0ddb68cc6a7d5f3')
version('3.03.02', sha256='409d940badbec672c139cb8972c88847b3f9a2476a336f4f7ee6924f8d08426c')

View File

@@ -13,6 +13,8 @@ class Heputils(MakefilePackage):
homepage = "https://bitbucket.org/andybuckley/heputils/src/default/"
url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz"
tags = ['hep']
version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0')
version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b')
version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852')

View File

@@ -13,6 +13,8 @@ class Herwig3(AutotoolsPackage):
homepage = "https://herwig.hepforge.org"
url = "https://herwig.hepforge.org/downloads/Herwig-7.2.1.tar.bz2"
tags = ['hep']
version('7.2.1', sha256='d4fff32f21c5c08a4b2e563c476b079859c2c8e3b78d853a8a60da96d5eea686')
depends_on('autoconf', type='build')

View File

@@ -13,6 +13,8 @@ class Herwigpp(AutotoolsPackage):
homepage = "https://herwig.hepforge.org/"
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2"
tags = ['hep']
version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6')
patch('herwig++-2.7.1.patch', when='@2.7.1', level=0)

View File

@@ -30,7 +30,7 @@ def url_for_version(self, version):
version('3.5.0', sha256='87c1ee9f02b8aa487b628c543f058198767c474cec3d21700596a73c028959e1')
depends_on('cmake@3:', type='build')
depends_on('mesa~llvm@18.3: swr=none', type='link')
depends_on('mesa18~llvm@18.3: swr=none', type='link')
depends_on('libelf', type='link', when="@3.7.0:")
depends_on('numactl', type='link', when="@3.7.0:")
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:

View File

@@ -24,7 +24,7 @@ class Hip(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('perl@5.10:', type=('build', 'run'))
depends_on('mesa~llvm@18.3:')
depends_on('mesa18~llvm@18.3:')
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
@@ -50,17 +50,25 @@ class Hip(CMakePackage):
patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@3.5.0:')
def setup_run_environment(self, env):
env.set('ROCM_PATH', '')
# NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
# It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
rocm_prefixes = self.get_rocm_prefix_info()
env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
env.set('HIP_COMPILER', 'clang')
env.set('HIP_PLATFORM', 'hcc')
env.set('HIP_CLANG_PATH', self.spec['llvm-amdgpu'].prefix.bin)
env.set('HSA_PATH', self.spec['hsa-rocr-dev'].prefix)
env.set('ROCMINFO_PATH', self.spec['rocminfo'].prefix)
env.set('HIP_PATH', self.prefix)
env.set('DEVICE_LIB_PATH',
self.spec['rocm-device-libs'].prefix.amdgcn.bitcode)
env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
env.set('HIP_PATH', rocm_prefixes['rocm-path'])
env.set('HIPCC_COMPILE_FLAGS_APPEND',
'--rocm-path={0}'.format(self.prefix))
'--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
if 'amdgpu_target' in self.spec.variants:
arch = self.spec.variants['amdgpu_target'].value
if arch != 'none':
env.set('HCC_AMDGPU_TARGET', arch)
def setup_dependent_run_environment(self, env, dependent_spec):
self.setup_run_environment(env)
@@ -85,31 +93,42 @@ def get_rocm_prefix_info(self):
raise RuntimeError(msg)
return {
'rocm-path': fallback_prefix,
'llvm-amdgpu': fallback_prefix.llvm,
'hsa-rocr-dev': fallback_prefix.hsa,
'rocminfo': fallback_prefix.bin,
'rocm-device-libs': fallback_prefix,
}
else:
return dict((name, self.spec[name].prefix)
for name in ('llvm-amdgpu', 'hsa-rocr-dev', 'rocminfo',
'rocm-device-libs'))
mydict = dict((name, self.spec[name].prefix)
for name in ('llvm-amdgpu', 'hsa-rocr-dev',
'rocminfo', 'rocm-device-libs'))
mydict['rocm-path'] = os.path.dirname(self.spec.prefix)
return mydict
def setup_dependent_build_environment(self, env, dependent_spec):
# Indirection for dependency paths because hip may be an external in
# Spack. See block comment on get_rocm_prefix_info
# Spack. See block comment on get_rocm_prefix_info .
# NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
# It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
rocm_prefixes = self.get_rocm_prefix_info()
env.set('ROCM_PATH', '')
env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
env.set('HIP_COMPILER', 'clang')
env.set('HIP_PLATFORM', 'hcc')
env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
env.set('DEVICE_LIB_PATH',
self.spec['rocm-device-libs'].prefix.amdgcn.bitcode)
env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
env.set('HIP_PATH', rocm_prefixes['rocm-path'])
env.set('HIPCC_COMPILE_FLAGS_APPEND',
'--rocm-path={0}'.format(self.prefix))
'--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
if 'amdgpu_target' in dependent_spec.variants:
arch = dependent_spec.variants['amdgpu_target'].value
if arch != 'none':
env.set('HCC_AMDGPU_TARGET', arch)
def setup_dependent_package(self, module, dependent_spec):
self.spec.hipcc = join_path(self.prefix.bin, 'hipcc')

View File

@@ -0,0 +1,32 @@
From 86f6dcdc17a8f5ef2382faaef860cfa5243984fe Mon Sep 17 00:00:00 2001
From: Yining Karl Li <betajippity@gmail.com>
Date: Fri, 3 Jul 2020 06:23:18 -0700
Subject: [PATCH] Add detection of arm64 architecture for macos builds
This commit adds detection of arm64 for macos builds on arm64 hardware.
The only change necessary is an additional case in the code where
macos.inc queries and detects the system architecture.
---
build/macos.inc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/build/macos.inc b/build/macos.inc
index dde93216f5e7a9337dd83757df1ec734241d044e..2bdcde7e3042390b871fc601a930b3648ccaa124 100644
--- a/build/macos.inc
+++ b/build/macos.inc
@@ -36,11 +36,15 @@ ifndef arch
export arch:=ppc32
endif
else
+ ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64)
+ export arch:=arm64
+ else
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
export arch:=intel64
else
export arch:=ia32
endif
+ endif
endif
endif

View File

@@ -103,15 +103,21 @@ class IntelTbb(Package):
patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0')
# Patch cmakeConfig.cmake.in to find the libraries where we install them.
patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:')
patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:2021.0')
patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4')
# Restore the debug targets.
patch("makefile-debug.patch", when="@2020:")
patch("makefile-debug.patch", when="@2020:2021.0")
# Some very old systems don't support transactional memory.
patch("disable-tm.patch", when='~tm')
# Add support for building on arm64 macOS,
# also included in hombrew and already available upstream:
# https://github.com/oneapi-src/oneTBB/pull/258
# https://github.com/oneapi-src/oneTBB/commit/86f6dcdc17a8f5ef2382faaef860cfa5243984fe.patch?full_index=1
patch("macos-arm64.patch", when="@:2021.0")
# Version and tar file names:
# 2020.0 --> v2020.0.tar.gz starting with 2020
# 2017.1 --> 2017_U1.tar.gz starting with 2017

View File

@@ -9,6 +9,7 @@
from spack import *
import re
class Ispc(CMakePackage):
@@ -18,8 +19,12 @@ class Ispc(CMakePackage):
homepage = "https://ispc.github.io"
url = "https://github.com/ispc/ispc/tarball/v1.14.1"
git = "https://github.com/ispc/ispc"
maintainers = ['aumuell']
executables = ['^ispc$']
version('master', branch='master')
version('1.14.1', sha256='ca12f26dafbc4ef9605487d03a2156331c1351a4ffefc9bab4d896a466880794')
version('1.14.0', sha256='1ed72542f56738c632bb02fb0dd56ad8aec3e2487839ebbc0def8334f305a4c7')
version('1.13.0', sha256='aca595508b51dd1ff065c406a3fd7c93822320c510077dd4d97a2b98a23f097a')
@@ -34,6 +39,7 @@ class Ispc(CMakePackage):
depends_on('llvm@10:10.999', when='@1.13:1.13.999')
patch('don-t-assume-that-ncurses-zlib-are-system-libraries.patch',
when='@1.14:1.14.999',
sha256='d3ccf547d3ba59779fd375e10417a436318f2200d160febb9f830a26f0daefdc')
patch('fix-linking-against-llvm-10.patch', when='@1.13:1.13.999',
@@ -47,3 +53,10 @@ def cmake_args(self):
args.append('-DISPC_INCLUDE_TESTS=OFF')
args.append('-DISPC_INCLUDE_UTILS=OFF')
return args
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('--version', output=str, error=str)
match = re.search(r'^Intel.*[iI][sS][pP][cC]\),\s+(\S+)\s+\(build.*\)',
output)
return match.group(1) if match else None

View File

@@ -13,6 +13,8 @@ class Kassiopeia(CMakePackage):
url = "https://github.com/KATRIN-Experiment/Kassiopeia/archive/v3.6.1.tar.gz"
git = "https://github.com/KATRIN-Experiment/Kassiopeia.git"
tags = ['hep']
maintainers = ['wdconinc']
version('3.7.5', sha256='8f28d08c7ef51e64221e0a4705f3cee3a5d738b8cdde5ce9fa58a3a0dd14ae05')

View File

@@ -14,6 +14,8 @@ class Lcio(CMakePackage):
git = "https://github.com/iLCSoft/LCIO.git"
url = "https://github.com/iLCSoft/LCIO/archive/v02-13-03.tar.gz"
tags = ['hep']
maintainers = ['gaede', 'vvolkl']
version('master', branch='master')

View File

@@ -13,6 +13,8 @@ class Lhapdf(AutotoolsPackage):
homepage = "https://lhapdf.hepforge.org/"
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
tags = ['hep']
version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')

View File

@@ -12,12 +12,14 @@ class Libx11(AutotoolsPackage, XorgPackage):
homepage = "https://www.x.org/"
xorg_mirror_path = "lib/libX11-1.6.7.tar.gz"
version('1.7.0', sha256='c48ec61785ec68fc6a9a6aca0a9578393414fe2562e3cc9cca30234345c7b6ac')
version('1.6.7', sha256='f62ab88c2a87b55e1dc338726a55bb6ed8048084fe6a3294a7ae324ca45159d1')
version('1.6.5', sha256='3abce972ba62620611fab5b404dafb852da3da54e7c287831c30863011d28fb3')
version('1.6.3', sha256='0b03b9d22f4c9e59b4ba498f294e297f013cae27050dfa0f3496640200db5376')
depends_on('libxcb@1.1.92:')
depends_on('xproto@7.0.25:', type='build', when='@1.7.0:')
depends_on('xproto@7.0.17:', type='build')
depends_on('xextproto', type=('build', 'link'))
depends_on('xtrans', type='build')

View File

@@ -13,8 +13,9 @@ class Libxcb(AutotoolsPackage):
extensibility."""
homepage = "https://xcb.freedesktop.org/"
url = "https://xcb.freedesktop.org/dist/libxcb-1.13.tar.gz"
url = "https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.14.tar.xz"
version('1.14', sha256='a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34')
version('1.13', sha256='0bb3cfd46dbd90066bf4d7de3cad73ec1024c7325a4a0cbf5f4a0d4fa91155fb')
version('1.12', sha256='092f147149d8a6410647a848378aaae749304d5b73e028ccb8306aa8a9e26f06')
version('1.11.1', sha256='660312d5e64d0a5800262488042c1707a0261fa01a759bad265b1b75dd4844dd')
@@ -26,6 +27,7 @@ class Libxcb(AutotoolsPackage):
# libxcb 1.X requires xcb-proto >= 1.X
depends_on('xcb-proto', type='build')
depends_on('xcb-proto@1.14:', when='@1.14:1.14.999', type='build')
depends_on('xcb-proto@1.13:', when='@1.13:1.13.999', type='build')
depends_on('xcb-proto@1.12:', when='@1.12:1.12.999', type='build')
depends_on('xcb-proto@1.11:', when='@1.11:1.11.999', type='build')
@@ -39,6 +41,14 @@ class Libxcb(AutotoolsPackage):
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
def url_for_version(self, version):
if version >= Version('1.14'):
url = 'https://xorg.freedesktop.org/archive/individual/lib/libxcb-{0}.tar.xz'
else:
url = 'https://xcb.freedesktop.org/dist/libxcb-{0}.tar.gz'
return url.format(version)
def configure_args(self):
config_args = []

View File

@@ -16,11 +16,12 @@ class Likwid(Package):
See https://github.com/RRZE-HPC/likwid/wiki/TutorialLikwidPerf#feature-limitations
for information."""
homepage = "https://github.com/RRZE-HPC/likwid"
homepage = "https://hpc.fau.de/research/tools/likwid/"
url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz"
git = "https://github.com/RRZE-HPC/likwid.git"
maintainers = ['TomTheBear']
version('5.1.0', sha256='5a180702a1656c6315b861a85031ab4cb090424aec42cbbb326b849e29f55571')
version('5.0.2', sha256='0a1c8984e4b43ea8b99d09456ef05035eb934594af1669432117585c638a2da4')
version('5.0.1', sha256='3757b0cb66e8af0116f9288c7f90543acbd8e2af8f72f77aef447ca2b3e76453')
version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e')

View File

@@ -0,0 +1,36 @@
# Copyright 2013-2020 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)
class Linktest(MakefilePackage):
"""Performance tool to generate communication matrix using
parallel ping-pong benchmark"""
homepage = "https://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/LinkTest/_node.html"
url = "http://apps.fz-juelich.de/jsc/linktest/download.php?version=1.2p1"
maintainers = ['pramodk']
version('1.2p1', sha256='981b96da1d5bf214507b8e219a36e8d0183d8bd5c10539b26f660b2c83e5269d', extension='tar.gz')
depends_on('mpi')
depends_on('sionlib')
def edit(self, spec, prefix):
with working_dir('src'):
makefile = FileFilter('Makefile')
makefile.filter('= gcc', '= cc')
makefile.filter('mpicc', spec['mpi'].mpicc)
makefile.filter('#SIONLIB_INST=.*',
'SIONLIB_INST=%s' % spec['sionlib'].prefix)
def build(self, spec, prefix):
with working_dir('src'):
make()
def install(self, spec, prefix):
mkdir(prefix.bin)
install('src/mpilinktest', prefix.bin)
install('src/pingponganalysis', prefix.bin)

View File

@@ -140,6 +140,7 @@ class Llvm(CMakePackage, CudaPackage):
depends_on("cmake@3.4.3:", type="build")
depends_on("python@2.7:2.8", when="@:4.999 ~python", type="build")
depends_on("python", when="@5: ~python", type="build")
depends_on("pkgconfig", type="build")
# Universal dependency
depends_on("python@2.7:2.8", when="@:4.999+python")
@@ -242,11 +243,11 @@ def filter_detected_exes(cls, prefix, exes_in_prefix):
def determine_version(cls, exe):
version_regex = re.compile(
# Normal clang compiler versions are left as-is
r'clang version ([^ )]+)-svn[~.\w\d-]*|'
r'clang version ([^ )\n]+)-svn[~.\w\d-]*|'
# Don't include hyphenated patch numbers in the version
# (see https://github.com/spack/spack/pull/14365 for details)
r'clang version ([^ )]+?)-[~.\w\d-]*|'
r'clang version ([^ )]+)|'
r'clang version ([^ )\n]+?)-[~.\w\d-]*|'
r'clang version ([^ )\n]+)|'
# LLDB
r'lldb version ([^ )\n]+)|'
# LLD

View File

@@ -18,6 +18,8 @@ class Madgraph5amc(Package):
homepage = "https://launchpad.net/mg5amcnlo"
url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
tags = ['hep']
version('2.8.1', sha256='acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c',
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz")
version('2.8.0', sha256='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',

View File

@@ -13,6 +13,8 @@ class Mcutils(MakefilePackage):
homepage = "https://bitbucket.org/andybuckley/mcutils"
url = "https://bitbucket.org/andybuckley/mcutils/get/mcutils-1.3.4.tar.gz"
tags = ['hep']
version('1.3.4', sha256='0bf9795cc248871ab2b663d2eef647311eacaea4982997950096de68747e65a3')
version('1.3.3', sha256='bfb2f0e0e6de358928436f309f3f1b084d3d652073c440f262de878332116ecb')
version('1.3.2', sha256='e17d417e8d4f8d17a6879ea18dcd2cd76e161d37eae08b84893504d1b08f9708')

View File

@@ -47,45 +47,45 @@ class Mfem(Package):
version('4.2.0',
'4352a225b55948d2e73a5ee88cece0e88bdbe7ba6726a23d68b2736d3221a86d',
url='https://bit.ly/mfem-4-2', extension='.tar.gz',
url='https://bit.ly/mfem-4-2', extension='tar.gz',
preferred=True)
version('4.1.0',
'4c83fdcf083f8e2f5b37200a755db843cdb858811e25a8486ad36b2cbec0e11d',
url='https://bit.ly/mfem-4-1', extension='.tar.gz')
url='https://bit.ly/mfem-4-1', extension='tar.gz')
# Tagged development version used by xSDK
version('4.0.1-xsdk', commit='c55c80d17b82d80de04b849dd526e17044f8c99a')
version('4.0.0',
'df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727',
url='https://bit.ly/mfem-4-0', extension='.tar.gz')
url='https://bit.ly/mfem-4-0', extension='tar.gz')
# Tagged development version used by the laghos package:
version('3.4.1-laghos-v2.0', tag='laghos-v2.0')
version('3.4.0',
sha256='4e73e4fe0482636de3c5dc983cd395839a83cb16f6f509bd88b053e8b3858e05',
url='https://bit.ly/mfem-3-4', extension='.tar.gz')
url='https://bit.ly/mfem-3-4', extension='tar.gz')
version('3.3.2',
sha256='b70fa3c5080b9ec514fc05f4a04ff74322b99ac4ecd6d99c229f0ed5188fc0ce',
url='https://goo.gl/Kd7Jk8', extension='.tar.gz')
url='https://goo.gl/Kd7Jk8', extension='tar.gz')
# Tagged development version used by the laghos package:
version('3.3.1-laghos-v1.0', tag='laghos-v1.0')
version('3.3',
sha256='b17bd452593aada93dc0fee748fcfbbf4f04ce3e7d77fdd0341cc9103bcacd0b',
url='http://goo.gl/Vrpsns', extension='.tar.gz')
url='http://goo.gl/Vrpsns', extension='tar.gz')
version('3.2',
sha256='2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
url='http://goo.gl/Y9T75B', extension='.tar.gz')
url='http://goo.gl/Y9T75B', extension='tar.gz')
version('3.1',
sha256='841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
url='http://goo.gl/xrScXn', extension='.tar.gz')
url='http://goo.gl/xrScXn', extension='tar.gz')
variant('static', default=True,
description='Build static library')
@@ -105,6 +105,7 @@ class Mfem(Package):
variant('raja', default=False, description='Enable RAJA backend')
variant('libceed', default=False, description='Enable libCEED backend')
variant('umpire', default=False, description='Enable Umpire support')
variant('amgx', default=False, description='Enable NVIDIA AmgX solver support')
variant('threadsafe', default=False,
description=('Enable thread safe features.'
@@ -174,6 +175,8 @@ class Mfem(Package):
conflicts('+raja', when='mfem@:3.99.99')
conflicts('+libceed', when='mfem@:4.0.99')
conflicts('+umpire', when='mfem@:4.0.99')
conflicts('+amgx', when='mfem@:4.1.99')
conflicts('+amgx', when='~cuda')
conflicts('+superlu-dist', when='~mpi')
conflicts('+strumpack', when='~mpi')
@@ -246,6 +249,13 @@ class Mfem(Package):
depends_on('umpire@2.0.0:', when='+umpire')
depends_on('umpire+cuda', when='+umpire+cuda')
depends_on('amgx', when='+amgx')
# MPI is enabled by default
depends_on('amgx~mpi', when='+amgx~mpi')
for sm_ in CudaPackage.cuda_arch_values:
depends_on('amgx cuda_arch={0}'.format(sm_),
when='+amgx cuda_arch=sm_{0}'.format(sm_))
patch('mfem_ppc_build.patch', when='@3.2:3.3.0 arch=ppc64le')
patch('mfem-3.4.patch', when='@3.4.0')
patch('mfem-3.3-3.4-petsc-3.9.patch',
@@ -363,6 +373,7 @@ def find_optional_library(name, prefix):
'MFEM_USE_CUDA=%s' % yes_no('+cuda'),
'MFEM_USE_OCCA=%s' % yes_no('+occa'),
'MFEM_USE_RAJA=%s' % yes_no('+raja'),
'MFEM_USE_AMGX=%s' % yes_no('+amgx'),
'MFEM_USE_CEED=%s' % yes_no('+libceed'),
'MFEM_USE_UMPIRE=%s' % yes_no('+umpire')]
@@ -569,6 +580,15 @@ def find_optional_library(name, prefix):
ld_flags_from_dirs([spec['raja'].prefix.lib],
['RAJA'])]
if '+amgx' in spec:
amgx = spec['amgx']
if '+shared' in amgx:
options += ['AMGX_OPT=-I%s' % amgx.prefix.include,
'AMGX_LIB=%s' %
ld_flags_from_library_list(amgx.libs)]
else:
options += ['AMGX_DIR=%s' % amgx.prefix]
if '+libceed' in spec:
options += ['CEED_OPT=-I%s' % spec['libceed'].prefix.include,
'CEED_LIB=%s' %

View File

@@ -20,10 +20,13 @@ class Moab(AutotoolsPackage):
git = "https://bitbucket.org/fathomteam/moab.git"
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz"
maintainers = ['vijaysm', 'iulian787']
version('develop', branch='develop')
version('master', branch='master')
# Version 5.0.2 disappeared from FTP server. Instead set temporary version
# of MoAB to 5.0.2 set to current head of the master branch.
version('5.2.1', sha256='60d31762be3f0e5c89416c764e844ec88dac294169b59a5ead3c316b50f85c29')
version('5.2.0', sha256='805ed3546deff39e076be4d1f68aba1cf0dda8c34ce43e1fc179d1aff57c5d5d')
version('5.1.0', sha256='0371fc25d2594589e95700739f01614f097b6157fb6023ed8995e582726ca658')
version('5.0.2', commit='01d05b1805236ef44da36f67eb2701095f2e33c7')
version('5.0.1', commit='6cc12bd4ae3fa7c9ad81c595e4d38fa84f0884be')
version('5.0.0', sha256='df5d5eb8c0d0dbb046de2e60aa611f276cbf007c9226c44a24ed19c570244e64')

View File

@@ -13,7 +13,7 @@ class Mvapich2(AutotoolsPackage):
networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing
platforms (x86 (Intel and AMD), ARM and OpenPOWER)"""
homepage = "http://mvapich.cse.ohio-state.edu/"
homepage = "http://mvapich.cse.ohio-state.edu/userguide/userguide_spack/"
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.4.tar.gz"
list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
@@ -83,7 +83,12 @@ class Mvapich2(AutotoolsPackage):
variant(
'fabrics',
description='The fabric enabled for this build',
description='Select the fabric to be enabled for this build.'
'If you have verbs (either from OFED or MOFED), PSM or PSM2 '
'installed on the system already, you may need to setup external '
'packages in the package.yaml file for rdma-core, psm or opa-psm2. '
'This is recommended to avoid unexpected runtime failures. For '
'more info, visit the homepage url.',
default='mrail',
values=(
'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail',

View File

@@ -117,6 +117,7 @@ class Mysql(CMakePackage):
depends_on('perl', type=['build', 'test'], when='@:7.99.99')
depends_on('bison@2.1:', type='build')
depends_on('m4', type='build', when='@develop platform=solaris')
depends_on('cyrus-sasl', when='@:5.7.999')
patch('fix-no-server-5.5.patch', level=1, when='@5.5.0:5.5.999')

View File

@@ -13,6 +13,8 @@ class Njet(AutotoolsPackage):
homepage = "https://bitbucket.org/njet/njet/wiki/Home"
url = "https://bitbucket.org/njet/njet/downloads/njet-2.1.1.tar.gz"
tags = ['hep']
version('2.1.1', sha256='3858ad37e84f3652711aa033819a6566352ecff04a1cb0189d6590af75b7bb56')
depends_on('qd')

View File

@@ -112,6 +112,9 @@ class Openblas(MakefilePackage):
patch('openblas_fujitsu_v0.3.11.patch', when='@0.3.11: %fj')
patch('openblas_fujitsu2.patch', when='@0.3.10: %fj')
# See https://github.com/spack/spack/issues/19932
conflicts('%gcc@:8.2.99', when='@0.3.11:')
# See https://github.com/spack/spack/issues/3036
conflicts('%intel@16', when='@0.2.15:0.2.19')
conflicts('+consistent_fpcsr', when='threads=none',

View File

@@ -47,7 +47,7 @@ class Openldap(AutotoolsPackage):
@when('+client_only')
def configure_args(self):
return ['CPPFLAGS=-D_GNU_SOURCE',
'--disable-static',
'--enable-static',
'--enable-dynamic',
'--disable-debug',
'--disable-slapd',
@@ -57,7 +57,7 @@ def configure_args(self):
def configure_args(self):
# Ref: https://www.openldap.org/lists/openldap-technical/201009/msg00304.html
args = ['CPPFLAGS=-D_GNU_SOURCE', # fixes a build error, see Ref above
'--disable-static',
'--enable-static',
'--disable-debug',
'--with-cyrus-sasl',
'--enable-dynamic',

View File

@@ -17,6 +17,8 @@ class Openloops(Package):
homepage = "https://openloops.hepforge.org/"
url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
tags = ['hep']
version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91')
all_processes = (
@@ -97,7 +99,11 @@ def configure(self, spec, prefix):
f.write('gfortran_f_flags = -ffree-line-length-none\n')
if self.spec.satisfies('@2.1.1') and not is_intel:
f.write('gfortran_f_flags = -ffree-line-length-none ' +
'-fdollar-ok -mcmodel=medium\n')
'-fdollar-ok ')
if self.spec.target.family == 'aarch64':
f.write('-mcmodel=small\n')
else:
f.write('-mcmodel=medium\n')
if self.spec.satisfies('@:1.999.999 processes=lcg.coll'):
copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll')

View File

@@ -27,7 +27,7 @@ class Openscenegraph(CMakePackage):
depends_on('cmake@2.8.7:', type='build')
depends_on('gl')
depends_on('qt+opengl', when='@:3.5.4') # Qt windowing system was moved into separate osgQt project
depends_on('qt@4:', when='@3.2:')
depends_on('qt@4:', when='@3.2:3.5.4')
depends_on('qt@:4', when='@:3.1')
depends_on('libxinerama')
depends_on('libxrandr')

View File

@@ -5,6 +5,7 @@
from spack import *
import spack.hooks.sbang as sbang
class Phist(CMakePackage):
@@ -101,6 +102,8 @@ class Phist(CMakePackage):
patch('update_tpetra_gotypes.patch', when='@:1.8.99')
patch('sbang.patch', when='+fortran')
# ###################### Dependencies ##########################
depends_on('cmake@3.8:', type='build')
@@ -132,6 +135,9 @@ class Phist(CMakePackage):
# to compile some OpenMP statements
conflicts('%gcc@:4.9.1')
def setup_build_environment(self, env):
env.set('SPACK_SBANG', sbang.sbang_install_path())
def cmake_args(self):
spec = self.spec

View File

@@ -0,0 +1,8 @@
diff --git a/fortran_bindings/cfwrapper.py.in b/fortran_bindings/cfwrapper.py.in
index 6eb9051..874ce48 100755
--- a/fortran_bindings/cfwrapper.py.in
+++ b/fortran_bindings/cfwrapper.py.in
@@ -1,3 +1,4 @@
+#!/bin/bash $ENV{SPACK_SBANG}
#!${PYTHON_EXECUTABLE}
# -*- coding: utf-8 -*-

View File

@@ -13,6 +13,8 @@ class Photos(AutotoolsPackage):
homepage = "http://photospp.web.cern.ch/photospp/"
url = "http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61-LHC.tar.gz"
tags = ['hep']
version('3.61', sha256='acd3bcb769ba2a3e263de399e9b89fd6296405c9cbc5045b83baba3e60db4b26')
maintainers = ['vvolkl']

View File

@@ -16,6 +16,8 @@ class Podio(CMakePackage):
maintainers = ['vvolkl', 'drbenmorgan']
tags = ["hep", "key4hep"]
version('master', branch='master')
version('0.12.0', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a')
version('0.11.0', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6')

View File

@@ -16,6 +16,7 @@ class Powertop(AutotoolsPackage):
version('2.9', sha256='aa7fb7d8e9a00f05e7d8a7a2866d85929741e0d03a5bf40cab22d2021c959250')
depends_on('libnl')
depends_on('ncurses', type='link')
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.sbin)

View File

@@ -22,7 +22,6 @@ class PyGitReview(PythonPackage):
depends_on('py-pbr', type=('build', 'run'))
depends_on('py-requests@1.1:', type=('build', 'run'))
depends_on('git', type=('run'))
depends_on('tk', type=('run'))
def setup_run_environment(self, env):
env.set('PBR_VERSION', str(self.spec.version))

View File

@@ -14,6 +14,8 @@ class PyGosam(PythonPackage):
homepage = "https://gosam.hepforge.org"
url = "https://gosam.hepforge.org/downloads/?f=gosam-2.0.4-6d9f1cba.tar.gz"
tags = ['hep']
version('2.0.4', sha256='faf621c70f66d9dffc16ac5cce66258067f39f686d722a4867eeb759fcde4f44')
depends_on('form', type='run')

Some files were not shown because too many files have changed in this diff Show More