Compare commits
87 Commits
versions/g
...
conc-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1aa900668d | ||
|
|
76da5a1141 | ||
|
|
6d9a214339 | ||
|
|
17713c0151 | ||
|
|
f383ca40db | ||
|
|
453d36ca00 | ||
|
|
eb95a50e08 | ||
|
|
a9996db35c | ||
|
|
ddc5b4422d | ||
|
|
b2a02861bb | ||
|
|
1df9c3437f | ||
|
|
9cc6bc26a2 | ||
|
|
94ce7f5040 | ||
|
|
5bea24526f | ||
|
|
57b27023a4 | ||
|
|
ceb260927b | ||
|
|
1c362ccb11 | ||
|
|
2c2eb911e1 | ||
|
|
d1e0266952 | ||
|
|
8986c21d73 | ||
|
|
64532902f9 | ||
|
|
568a535e3f | ||
|
|
cd5e7579be | ||
|
|
b559b99c8f | ||
|
|
a39a6c4ea7 | ||
|
|
4b5e071141 | ||
|
|
2a64c6a402 | ||
|
|
aea10bf876 | ||
|
|
2088d407a2 | ||
|
|
cc14384818 | ||
|
|
3d29e0d641 | ||
|
|
ad2b493171 | ||
|
|
5bbcb43ad3 | ||
|
|
fe8548853d | ||
|
|
4a17099cc3 | ||
|
|
822b763222 | ||
|
|
28aa1a64d4 | ||
|
|
e3ab326228 | ||
|
|
6934703ffb | ||
|
|
53fb5963eb | ||
|
|
022aa496a5 | ||
|
|
d424d0e54e | ||
|
|
762893d4a6 | ||
|
|
addf6f2686 | ||
|
|
ce4b812b52 | ||
|
|
afaaf04fa9 | ||
|
|
9f49461183 | ||
|
|
4081597731 | ||
|
|
d42e5421dc | ||
|
|
80a6eab2db | ||
|
|
916da02326 | ||
|
|
9199800bbd | ||
|
|
838a0086cf | ||
|
|
ab74738609 | ||
|
|
90c28783a0 | ||
|
|
35406a8984 | ||
|
|
6a1b0331a9 | ||
|
|
258600eede | ||
|
|
b7794cdac8 | ||
|
|
a6580d4704 | ||
|
|
4d0ee4e169 | ||
|
|
6bc2e660e8 | ||
|
|
8665ccb661 | ||
|
|
6610c50414 | ||
|
|
b0c63a6554 | ||
|
|
77d2b9a87a | ||
|
|
f931067bf2 | ||
|
|
7d66779c06 | ||
|
|
6cfcf59781 | ||
|
|
544258f16a | ||
|
|
b48bdc9e19 | ||
|
|
cf4f281f54 | ||
|
|
673faf6044 | ||
|
|
e86cdbbf23 | ||
|
|
0c4b56d885 | ||
|
|
ebdba2c6a7 | ||
|
|
7d68d4564c | ||
|
|
06fd0f892e | ||
|
|
b13629062a | ||
|
|
a284c3e76d | ||
|
|
efcdd64893 | ||
|
|
e2b87ade06 | ||
|
|
96c1fb7b0b | ||
|
|
4d5eff11b4 | ||
|
|
8db12b72ec | ||
|
|
9900d348d7 | ||
|
|
85c454bdb0 |
8
lib/spack/env/cc
vendored
8
lib/spack/env/cc
vendored
@@ -241,28 +241,28 @@ case "$command" in
|
||||
mode=cpp
|
||||
debug_flags="-g"
|
||||
;;
|
||||
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc)
|
||||
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc|amdclang)
|
||||
command="$SPACK_CC"
|
||||
language="C"
|
||||
comp="CC"
|
||||
lang_flags=C
|
||||
debug_flags="-g"
|
||||
;;
|
||||
c++|CC|g++|clang++|armclang++|icpc|icpx|dpcpp|pgc++|nvc++|xlc++|xlc++_r|FCC)
|
||||
c++|CC|g++|clang++|armclang++|icpc|icpx|dpcpp|pgc++|nvc++|xlc++|xlc++_r|FCC|amdclang++)
|
||||
command="$SPACK_CXX"
|
||||
language="C++"
|
||||
comp="CXX"
|
||||
lang_flags=CXX
|
||||
debug_flags="-g"
|
||||
;;
|
||||
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt)
|
||||
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt|amdflang)
|
||||
command="$SPACK_FC"
|
||||
language="Fortran 90"
|
||||
comp="FC"
|
||||
lang_flags=F
|
||||
debug_flags="-g"
|
||||
;;
|
||||
f77|xlf|xlf_r|pgf77)
|
||||
f77|xlf|xlf_r|pgf77|amdflang)
|
||||
command="$SPACK_F77"
|
||||
language="Fortran 77"
|
||||
comp="F77"
|
||||
|
||||
1
lib/spack/env/rocmcc/amdclang
vendored
Symbolic link
1
lib/spack/env/rocmcc/amdclang
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../cc
|
||||
1
lib/spack/env/rocmcc/amdclang++
vendored
Symbolic link
1
lib/spack/env/rocmcc/amdclang++
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../cpp
|
||||
1
lib/spack/env/rocmcc/amdflang
vendored
Symbolic link
1
lib/spack/env/rocmcc/amdflang
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../fc
|
||||
@@ -202,6 +202,12 @@ def display_env(env, args, decorator):
|
||||
|
||||
|
||||
def find(parser, args):
|
||||
if args.bootstrap:
|
||||
tty.warn(
|
||||
"`spack find --bootstrap` is deprecated and will be removed in v0.19.",
|
||||
"Use `spack --bootstrap find` instead."
|
||||
)
|
||||
|
||||
if args.bootstrap:
|
||||
bootstrap_store_path = spack.bootstrap.store_path()
|
||||
with spack.bootstrap.ensure_bootstrap_configuration():
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
|
||||
_compiler_to_pkg = {
|
||||
'clang': 'llvm+clang',
|
||||
'oneapi': 'intel-oneapi-compilers'
|
||||
'oneapi': 'intel-oneapi-compilers',
|
||||
'rocmcc': 'llvm-amdgpu'
|
||||
}
|
||||
|
||||
|
||||
|
||||
78
lib/spack/spack/compilers/rocmcc.py
Normal file
78
lib/spack/spack/compilers/rocmcc.py
Normal file
@@ -0,0 +1,78 @@
|
||||
# Copyright 2013-2022 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)
|
||||
|
||||
import re
|
||||
|
||||
import llnl.util.lang
|
||||
|
||||
import spack.compilers.clang
|
||||
|
||||
|
||||
class Rocmcc(spack.compilers.clang.Clang):
|
||||
# Subclasses use possible names of C compiler
|
||||
cc_names = ['amdclang']
|
||||
|
||||
# Subclasses use possible names of C++ compiler
|
||||
cxx_names = ['amdclang++']
|
||||
|
||||
# Subclasses use possible names of Fortran 77 compiler
|
||||
f77_names = ['amdflang']
|
||||
|
||||
# Subclasses use possible names of Fortran 90 compiler
|
||||
fc_names = ['amdflang']
|
||||
|
||||
PrgEnv = 'PrgEnv-amd'
|
||||
PrgEnv_compiler = 'amd'
|
||||
|
||||
@property
|
||||
def link_paths(self):
|
||||
link_paths = {'cc': 'rocmcc/amdclang',
|
||||
'cxx': 'rocmcc/amdclang++',
|
||||
'f77': 'rocmcc/amdflang',
|
||||
'fc': 'rocmcc/amdflang'}
|
||||
|
||||
return link_paths
|
||||
|
||||
@property
|
||||
def cxx11_flag(self):
|
||||
return "-std=c++11"
|
||||
|
||||
@property
|
||||
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'
|
||||
|
||||
@property
|
||||
def c11_flag(self):
|
||||
return "-std=c11"
|
||||
|
||||
@classmethod
|
||||
@llnl.util.lang.memoized
|
||||
def extract_version_from_output(cls, output):
|
||||
match = re.search(
|
||||
r'llvm-project roc-(\d+)[._](\d+)[._](\d+)',
|
||||
output
|
||||
)
|
||||
if match:
|
||||
return '.'.join(match.groups())
|
||||
|
||||
@classmethod
|
||||
def fc_version(cls, fortran_compiler):
|
||||
return cls.default_version(fortran_compiler)
|
||||
|
||||
@classmethod
|
||||
def f77_version(cls, f77):
|
||||
return cls.fc_version(f77)
|
||||
|
||||
@property
|
||||
def stdcxx_libs(self):
|
||||
return ('-lstdc++', )
|
||||
@@ -124,7 +124,10 @@ def merge(self, other):
|
||||
# concatenate patch lists, or just copy them in
|
||||
for cond, p in other.patches.items():
|
||||
if cond in self.patches:
|
||||
self.patches[cond].extend(other.patches[cond])
|
||||
current_list = self.patches[cond]
|
||||
current_list.extend(
|
||||
p for p in other.patches[cond] if p not in current_list
|
||||
)
|
||||
else:
|
||||
self.patches[cond] = other.patches[cond]
|
||||
|
||||
|
||||
@@ -1437,13 +1437,7 @@ def fetch(self):
|
||||
basename = os.path.basename(parsed_url.path)
|
||||
|
||||
with working_dir(self.stage.path):
|
||||
import spack.util.s3 as s3_util
|
||||
s3 = s3_util.create_s3_session(self.url,
|
||||
connection=s3_util.get_mirror_connection(parsed_url), url_type="fetch") # noqa: E501
|
||||
|
||||
headers = s3.get_object(Bucket=parsed_url.netloc,
|
||||
Key=parsed_url.path.lstrip("/"))
|
||||
stream = headers["Body"]
|
||||
_, headers, stream = web_util.read_from_url(self.url)
|
||||
|
||||
with open(basename, 'wb') as f:
|
||||
shutil.copyfileobj(stream, f)
|
||||
|
||||
@@ -188,6 +188,10 @@ def provides(self):
|
||||
if self.spec.name == 'llvm':
|
||||
provides['compiler'] = spack.spec.CompilerSpec(str(self.spec))
|
||||
provides['compiler'].name = 'clang'
|
||||
# Special case for llvm-amdgpu
|
||||
if self.spec.name == 'llvm-amdgpu':
|
||||
provides['compiler'] = spack.spec.CompilerSpec(str(self.spec))
|
||||
provides['compiler'].name = 'rocmcc'
|
||||
|
||||
# All the other tokens in the hierarchy must be virtual dependencies
|
||||
for x in self.hierarchy_tokens:
|
||||
|
||||
@@ -97,6 +97,12 @@ def to_dict(self):
|
||||
'working_dir': self.working_dir,
|
||||
}
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.sha256 == other.sha256
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.sha256)
|
||||
|
||||
|
||||
class FilePatch(Patch):
|
||||
"""Describes a patch that is retrieved from a file in the repository.
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
import contextlib
|
||||
import errno
|
||||
import functools
|
||||
import importlib
|
||||
import inspect
|
||||
import itertools
|
||||
import os
|
||||
@@ -1099,7 +1100,12 @@ def get_pkg_class(self, pkg_name):
|
||||
% (self.namespace, namespace))
|
||||
|
||||
class_name = nm.mod_to_class(pkg_name)
|
||||
module = self._get_pkg_module(pkg_name)
|
||||
|
||||
fullname = "{0}.{1}".format(self.full_namespace, pkg_name)
|
||||
try:
|
||||
module = importlib.import_module(fullname)
|
||||
except ImportError:
|
||||
raise UnknownPackageError(pkg_name)
|
||||
|
||||
cls = getattr(module, class_name)
|
||||
if not inspect.isclass(cls):
|
||||
|
||||
@@ -1668,13 +1668,15 @@ def define_installed_packages(self, specs, possible):
|
||||
# Specs from local store
|
||||
with spack.store.db.read_transaction():
|
||||
for spec in spack.store.db.query(installed=True):
|
||||
self._facts_from_concrete_spec(spec, possible)
|
||||
if not spec.satisfies('dev_path=*'):
|
||||
self._facts_from_concrete_spec(spec, possible)
|
||||
|
||||
# Specs from configured buildcaches
|
||||
try:
|
||||
index = spack.binary_distribution.update_cache_and_get_specs()
|
||||
for spec in index:
|
||||
self._facts_from_concrete_spec(spec, possible)
|
||||
if not spec.satisfies('dev_path=*'):
|
||||
self._facts_from_concrete_spec(spec, possible)
|
||||
except (spack.binary_distribution.FetchCacheError, IndexError):
|
||||
# this is raised when no mirrors had indices.
|
||||
# TODO: update mirror configuration so it can indicate that the source cache
|
||||
|
||||
@@ -827,6 +827,9 @@ no_flags(Package, FlagType)
|
||||
{ hash(Package, Hash) : installed_hash(Package, Hash) } 1
|
||||
:- node(Package), error("Internal error: package must resolve to at most one hash").
|
||||
|
||||
% you can't choose an installed hash for a dev spec
|
||||
:- hash(Package, Hash), variant_set(Package, "dev_path", _).
|
||||
|
||||
% if a hash is selected, we impose all the constraints that implies
|
||||
impose(Hash) :- hash(Package, Hash).
|
||||
|
||||
|
||||
@@ -333,3 +333,8 @@ def test_find_loaded(database, working_env):
|
||||
output = find('--loaded')
|
||||
expected = find()
|
||||
assert output == expected
|
||||
|
||||
|
||||
def test_bootstrap_deprecated():
|
||||
output = find('--bootstrap')
|
||||
assert "`spack find --bootstrap` is deprecated" in output
|
||||
|
||||
@@ -332,7 +332,6 @@ def concretize_difficult_packages(self, a, b):
|
||||
assert s[a].version == ver(b)
|
||||
|
||||
def test_concretize_two_virtuals(self):
|
||||
|
||||
"""Test a package with multiple virtual dependencies."""
|
||||
Spec('hypre').concretize()
|
||||
|
||||
@@ -1138,6 +1137,38 @@ def test_external_package_versions(self, spec_str, is_external, expected):
|
||||
assert s.external == is_external
|
||||
assert s.satisfies(expected)
|
||||
|
||||
@pytest.mark.parametrize('dev_first,spec', [
|
||||
(True, 'dev-build-test-install'),
|
||||
(True, 'dev-build-test-dependent'),
|
||||
(False, 'dev-build-test-install'),
|
||||
(False, 'dev-build-test-dependent')
|
||||
])
|
||||
def test_reuse_does_not_overwrite_dev_specs(
|
||||
self, dev_first, spec, tmpdir, mock_packages, install_mockery, mock_fetch):
|
||||
"""Test that reuse does not mix dev specs with non-dev specs.
|
||||
|
||||
Tests for either order (dev specs are not reused for non-dev, and
|
||||
non-dev specs are not reused for dev specs)
|
||||
Tests for a spec in which the root is developed and a spec in
|
||||
which a dep is developed."""
|
||||
# dev and non-dev specs that are otherwise identical
|
||||
spec = Spec(spec).normalized() # ensure dependencies present
|
||||
dev_spec = spec.copy()
|
||||
dev_constraint = 'dev_path=%s' % tmpdir.strpath
|
||||
dev_spec['dev-build-test-install'].constrain(dev_constraint)
|
||||
|
||||
# run the test in both orders
|
||||
first_spec = dev_spec if dev_first else spec
|
||||
second_spec = spec if dev_first else dev_spec
|
||||
|
||||
# concretize and install a non-dev version
|
||||
first_spec.concretize()
|
||||
first_spec.package.do_install(fake=True)
|
||||
# concretize a dev version
|
||||
with spack.config.override("concretizer:reuse", True):
|
||||
second_spec.concretize()
|
||||
assert first_spec.dag_hash() != second_spec.dag_hash()
|
||||
|
||||
@pytest.mark.regression('20292')
|
||||
@pytest.mark.parametrize('context', [
|
||||
{'add_variant': True, 'delete_variant': False},
|
||||
@@ -1145,7 +1176,7 @@ def test_external_package_versions(self, spec_str, is_external, expected):
|
||||
{'add_variant': True, 'delete_variant': True}
|
||||
])
|
||||
@pytest.mark.xfail()
|
||||
def test_reuse_installed_packages(
|
||||
def test_reuse_installed_packages_when_package_def_changes(
|
||||
self, context, mutable_database, repo_with_changing_recipe
|
||||
):
|
||||
# Install a spec
|
||||
|
||||
@@ -89,7 +89,8 @@ def test_fetch(type_of_test,
|
||||
mock_git_repository,
|
||||
config,
|
||||
mutable_mock_repo,
|
||||
git_version):
|
||||
git_version,
|
||||
monkeypatch):
|
||||
"""Tries to:
|
||||
|
||||
1. Fetch the repo using a fetch strategy constructed with
|
||||
@@ -107,7 +108,7 @@ def test_fetch(type_of_test,
|
||||
spec = Spec('git-test')
|
||||
spec.concretize()
|
||||
pkg = spack.repo.get(spec)
|
||||
pkg.versions[ver('git')] = t.args
|
||||
monkeypatch.setitem(pkg.versions, ver('git'), t.args)
|
||||
|
||||
# Enter the stage directory and check some properties
|
||||
with pkg.stage:
|
||||
@@ -137,7 +138,9 @@ def test_fetch(type_of_test,
|
||||
|
||||
|
||||
@pytest.mark.parametrize("type_of_test", ['branch', 'commit'])
|
||||
def test_debug_fetch(mock_packages, type_of_test, mock_git_repository, config):
|
||||
def test_debug_fetch(
|
||||
mock_packages, type_of_test, mock_git_repository, config, monkeypatch
|
||||
):
|
||||
"""Fetch the repo with debug enabled."""
|
||||
# Retrieve the right test parameters
|
||||
t = mock_git_repository.checks[type_of_test]
|
||||
@@ -146,7 +149,7 @@ def test_debug_fetch(mock_packages, type_of_test, mock_git_repository, config):
|
||||
spec = Spec('git-test')
|
||||
spec.concretize()
|
||||
pkg = spack.repo.get(spec)
|
||||
pkg.versions[ver('git')] = t.args
|
||||
monkeypatch.setitem(pkg.versions, ver('git'), t.args)
|
||||
|
||||
# Fetch then ensure source path exists
|
||||
with pkg.stage:
|
||||
@@ -176,7 +179,7 @@ def test_needs_stage():
|
||||
|
||||
@pytest.mark.parametrize("get_full_repo", [True, False])
|
||||
def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
|
||||
config, mutable_mock_repo):
|
||||
config, mutable_mock_repo, monkeypatch):
|
||||
"""Ensure that we can clone a full repository."""
|
||||
|
||||
if git_version < ver('1.7.1'):
|
||||
@@ -193,7 +196,7 @@ def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
|
||||
pkg = spack.repo.get(spec)
|
||||
args = copy.copy(t.args)
|
||||
args['get_full_repo'] = get_full_repo
|
||||
pkg.versions[ver('git')] = args
|
||||
monkeypatch.setitem(pkg.versions, ver('git'), args)
|
||||
|
||||
with pkg.stage:
|
||||
with spack.config.override('config:verify_ssl', secure):
|
||||
@@ -222,7 +225,7 @@ def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
|
||||
@pytest.mark.disable_clean_stage_check
|
||||
@pytest.mark.parametrize("submodules", [True, False])
|
||||
def test_gitsubmodule(submodules, mock_git_repository, config,
|
||||
mutable_mock_repo):
|
||||
mutable_mock_repo, monkeypatch):
|
||||
"""
|
||||
Test GitFetchStrategy behavior with submodules
|
||||
"""
|
||||
@@ -235,7 +238,7 @@ def test_gitsubmodule(submodules, mock_git_repository, config,
|
||||
pkg = spack.repo.get(spec)
|
||||
args = copy.copy(t.args)
|
||||
args['submodules'] = submodules
|
||||
pkg.versions[ver('git')] = args
|
||||
monkeypatch.setitem(pkg.versions, ver('git'), args)
|
||||
pkg.do_stage()
|
||||
with working_dir(pkg.stage.source_path):
|
||||
for submodule_count in range(2):
|
||||
@@ -249,7 +252,9 @@ def test_gitsubmodule(submodules, mock_git_repository, config,
|
||||
|
||||
|
||||
@pytest.mark.disable_clean_stage_check
|
||||
def test_gitsubmodules_delete(mock_git_repository, config, mutable_mock_repo):
|
||||
def test_gitsubmodules_delete(
|
||||
mock_git_repository, config, mutable_mock_repo, monkeypatch
|
||||
):
|
||||
"""
|
||||
Test GitFetchStrategy behavior with submodules_delete
|
||||
"""
|
||||
@@ -264,7 +269,7 @@ def test_gitsubmodules_delete(mock_git_repository, config, mutable_mock_repo):
|
||||
args['submodules'] = True
|
||||
args['submodules_delete'] = ['third_party/submodule0',
|
||||
'third_party/submodule1']
|
||||
pkg.versions[ver('git')] = args
|
||||
monkeypatch.setitem(pkg.versions, ver('git'), args)
|
||||
pkg.do_stage()
|
||||
with working_dir(pkg.stage.source_path):
|
||||
file_path = os.path.join(pkg.stage.source_path,
|
||||
|
||||
@@ -28,7 +28,8 @@ def test_fetch(
|
||||
secure,
|
||||
mock_hg_repository,
|
||||
config,
|
||||
mutable_mock_repo
|
||||
mutable_mock_repo,
|
||||
monkeypatch
|
||||
):
|
||||
"""Tries to:
|
||||
|
||||
@@ -47,7 +48,7 @@ def test_fetch(
|
||||
spec = Spec('hg-test')
|
||||
spec.concretize()
|
||||
pkg = spack.repo.get(spec)
|
||||
pkg.versions[ver('hg')] = t.args
|
||||
monkeypatch.setitem(pkg.versions, ver('hg'), t.args)
|
||||
|
||||
# Enter the stage directory and check some properties
|
||||
with pkg.stage:
|
||||
|
||||
@@ -151,7 +151,9 @@ def test_failing_overwrite_install_should_keep_previous_installation(
|
||||
assert os.path.exists(spec.prefix)
|
||||
|
||||
|
||||
def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch):
|
||||
def test_dont_add_patches_to_installed_package(
|
||||
install_mockery, mock_fetch, monkeypatch
|
||||
):
|
||||
dependency = Spec('dependency-install')
|
||||
dependency.concretize()
|
||||
dependency.package.do_install()
|
||||
@@ -160,9 +162,11 @@ def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch):
|
||||
dependent = Spec('dependent-install ^/' + dependency_hash)
|
||||
dependent.concretize()
|
||||
|
||||
dependency.package.patches['dependency-install'] = [
|
||||
monkeypatch.setitem(dependency.package.patches, 'dependency-install', [
|
||||
spack.patch.UrlPatch(
|
||||
dependent.package, 'file://fake.patch', sha256='unused-hash')]
|
||||
dependent.package, 'file://fake.patch', sha256='unused-hash'
|
||||
)
|
||||
])
|
||||
|
||||
assert dependent['dependency-install'] == dependency
|
||||
|
||||
@@ -308,52 +312,43 @@ def test_installed_upstream(install_upstream, mock_fetch):
|
||||
|
||||
|
||||
@pytest.mark.disable_clean_stage_check
|
||||
def test_partial_install_keep_prefix(install_mockery, mock_fetch):
|
||||
def test_partial_install_keep_prefix(install_mockery, mock_fetch, monkeypatch):
|
||||
spec = Spec('canfail').concretized()
|
||||
pkg = spack.repo.get(spec)
|
||||
|
||||
# Normally the stage should start unset, but other tests set it
|
||||
pkg._stage = None
|
||||
remove_prefix = spack.package.Package.remove_prefix
|
||||
try:
|
||||
# If remove_prefix is called at any point in this test, that is an
|
||||
# error
|
||||
pkg.succeed = False # make the build fail
|
||||
spack.package.Package.remove_prefix = mock_remove_prefix
|
||||
with pytest.raises(spack.build_environment.ChildError):
|
||||
pkg.do_install(keep_prefix=True)
|
||||
assert os.path.exists(pkg.prefix)
|
||||
|
||||
# must clear failure markings for the package before re-installing it
|
||||
spack.store.db.clear_failure(spec, True)
|
||||
|
||||
pkg.succeed = True # make the build succeed
|
||||
pkg.stage = MockStage(pkg.stage)
|
||||
# If remove_prefix is called at any point in this test, that is an
|
||||
# error
|
||||
pkg.succeed = False # make the build fail
|
||||
monkeypatch.setattr(spack.package.Package, 'remove_prefix', mock_remove_prefix)
|
||||
with pytest.raises(spack.build_environment.ChildError):
|
||||
pkg.do_install(keep_prefix=True)
|
||||
assert pkg.installed
|
||||
assert not pkg.stage.test_destroyed
|
||||
assert os.path.exists(pkg.prefix)
|
||||
|
||||
finally:
|
||||
spack.package.Package.remove_prefix = remove_prefix
|
||||
# must clear failure markings for the package before re-installing it
|
||||
spack.store.db.clear_failure(spec, True)
|
||||
|
||||
pkg.succeed = True # make the build succeed
|
||||
pkg.stage = MockStage(pkg.stage)
|
||||
pkg.do_install(keep_prefix=True)
|
||||
assert pkg.installed
|
||||
assert not pkg.stage.test_destroyed
|
||||
|
||||
|
||||
def test_second_install_no_overwrite_first(install_mockery, mock_fetch):
|
||||
def test_second_install_no_overwrite_first(install_mockery, mock_fetch, monkeypatch):
|
||||
spec = Spec('canfail').concretized()
|
||||
pkg = spack.repo.get(spec)
|
||||
remove_prefix = spack.package.Package.remove_prefix
|
||||
try:
|
||||
spack.package.Package.remove_prefix = mock_remove_prefix
|
||||
monkeypatch.setattr(spack.package.Package, 'remove_prefix', mock_remove_prefix)
|
||||
|
||||
pkg.succeed = True
|
||||
pkg.do_install()
|
||||
assert pkg.installed
|
||||
pkg.succeed = True
|
||||
pkg.do_install()
|
||||
assert pkg.installed
|
||||
|
||||
# If Package.install is called after this point, it will fail
|
||||
pkg.succeed = False
|
||||
pkg.do_install()
|
||||
|
||||
finally:
|
||||
spack.package.Package.remove_prefix = remove_prefix
|
||||
# If Package.install is called after this point, it will fail
|
||||
pkg.succeed = False
|
||||
pkg.do_install()
|
||||
|
||||
|
||||
def test_install_prefix_collision_fails(config, mock_fetch, mock_packages, tmpdir):
|
||||
|
||||
@@ -86,3 +86,15 @@ def test_namespace_hasattr(attr_name, exists, mutable_mock_repo):
|
||||
def test_all_package_names_is_cached_correctly():
|
||||
assert 'mpi' in spack.repo.all_package_names(include_virtuals=True)
|
||||
assert 'mpi' not in spack.repo.all_package_names(include_virtuals=False)
|
||||
|
||||
|
||||
@pytest.mark.regression('29203')
|
||||
def test_use_repositories_doesnt_change_class():
|
||||
"""Test that we don't create the same package module and class multiple times
|
||||
when swapping repositories.
|
||||
"""
|
||||
zlib_cls_outer = spack.repo.path.get_pkg_class('zlib')
|
||||
current_paths = [r.root for r in spack.repo.path.repos]
|
||||
with spack.repo.use_repositories(*current_paths):
|
||||
zlib_cls_inner = spack.repo.path.get_pkg_class('zlib')
|
||||
assert id(zlib_cls_inner) == id(zlib_cls_outer)
|
||||
|
||||
@@ -31,7 +31,7 @@ def saved_deps():
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def set_dependency(saved_deps):
|
||||
def set_dependency(saved_deps, monkeypatch):
|
||||
"""Returns a function that alters the dependency information
|
||||
for a package in the ``saved_deps`` fixture.
|
||||
"""
|
||||
@@ -48,7 +48,7 @@ def _mock(pkg_name, spec, deptypes=all_deptypes):
|
||||
|
||||
cond = Spec(pkg.name)
|
||||
dependency = Dependency(pkg, spec, type=deptypes)
|
||||
pkg.dependencies[spec.name] = {cond: dependency}
|
||||
monkeypatch.setitem(pkg.dependencies, spec.name, {cond: dependency})
|
||||
return _mock
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ def test_fetch(
|
||||
secure,
|
||||
mock_svn_repository,
|
||||
config,
|
||||
mutable_mock_repo
|
||||
mutable_mock_repo,
|
||||
monkeypatch
|
||||
):
|
||||
"""Tries to:
|
||||
|
||||
@@ -48,7 +49,7 @@ def test_fetch(
|
||||
spec = Spec('svn-test')
|
||||
spec.concretize()
|
||||
pkg = spack.repo.get(spec)
|
||||
pkg.versions[ver('svn')] = t.args
|
||||
monkeypatch.setitem(pkg.versions, ver('svn'), t.args)
|
||||
|
||||
# Enter the stage directory and check some properties
|
||||
with pkg.stage:
|
||||
|
||||
@@ -630,6 +630,14 @@ def test_version_wrong_idx_type():
|
||||
v['0:']
|
||||
|
||||
|
||||
@pytest.mark.regression('29170')
|
||||
def test_version_range_satisfies_means_nonempty_intersection():
|
||||
x = VersionRange('3.7.0', '3')
|
||||
y = VersionRange('3.6.0', '3.6.0')
|
||||
assert not x.satisfies(y)
|
||||
assert not y.satisfies(x)
|
||||
|
||||
|
||||
@pytest.mark.regression('26482')
|
||||
def test_version_list_with_range_included_in_concrete_version_interpreted_as_range():
|
||||
# Note: this test only tests whether we can construct a version list of a range
|
||||
|
||||
@@ -167,7 +167,7 @@ def __gt__(self, other):
|
||||
|
||||
class Version(object):
|
||||
"""Class to represent versions"""
|
||||
__slots__ = ['version', 'separators', 'string', 'commit_lookup']
|
||||
__slots__ = ['version', 'separators', 'string', 'is_commit', 'commit_lookup']
|
||||
|
||||
def __init__(self, string):
|
||||
if not isinstance(string, str):
|
||||
@@ -189,6 +189,8 @@ def __init__(self, string):
|
||||
)
|
||||
self.separators = tuple(m[2] for m in segments)
|
||||
|
||||
self.is_commit = len(self.string) == 40 and COMMIT_VERSION.match(self.string)
|
||||
|
||||
def _cmp(self, other_lookups=None):
|
||||
commit_lookup = self.commit_lookup or other_lookups
|
||||
|
||||
@@ -205,15 +207,6 @@ def _cmp(self, other_lookups=None):
|
||||
|
||||
return self.version
|
||||
|
||||
@property
|
||||
def is_commit(self):
|
||||
"""
|
||||
Determine if the original string is referencing a commit.
|
||||
"""
|
||||
if self.string in infinity_versions:
|
||||
return False
|
||||
return COMMIT_VERSION.match(self.string) is not None
|
||||
|
||||
@property
|
||||
def dotted(self):
|
||||
"""The dotted representation of the version.
|
||||
@@ -586,35 +579,23 @@ def __contains__(self, other):
|
||||
|
||||
@coerced
|
||||
def satisfies(self, other):
|
||||
"""A VersionRange satisfies another if some version in this range
|
||||
would satisfy some version in the other range. To do this it must
|
||||
either:
|
||||
|
||||
a) Overlap with the other range
|
||||
b) The start of this range satisfies the end of the other range.
|
||||
|
||||
This is essentially the same as overlaps(), but overlaps assumes
|
||||
that its arguments are specific. That is, 4.7 is interpreted as
|
||||
4.7.0.0.0.0... . This function assumes that 4.7 would be satisfied
|
||||
by 4.7.3.5, etc.
|
||||
|
||||
Rationale:
|
||||
|
||||
If a user asks for gcc@4.5:4.7, and a package is only compatible with
|
||||
gcc@4.7.3:4.8, then that package should be able to build under the
|
||||
constraints. Just using overlaps() would not work here.
|
||||
|
||||
Note that we don't need to check whether the end of this range
|
||||
would satisfy the start of the other range, because overlaps()
|
||||
already covers that case.
|
||||
|
||||
Note further that overlaps() is a symmetric operation, while
|
||||
satisfies() is not.
|
||||
"""
|
||||
return (self.overlaps(other) or
|
||||
# if either self.start or other.end are None, then this can't
|
||||
# satisfy, or overlaps() would've taken care of it.
|
||||
self.start and other.end and self.start.satisfies(other.end))
|
||||
x.satisfies(y) in general means that x and y have a
|
||||
non-zero intersection. For VersionRange this means they overlap.
|
||||
|
||||
`satisfies` is a commutative binary operator, meaning that
|
||||
x.satisfies(y) if and only if y.satisfies(x).
|
||||
|
||||
Note: in some cases we have the keyword x.satisfies(y, strict=True)
|
||||
to mean strict set inclusion, which is not commutative. However, this
|
||||
lacks in VersionRange for unknown reasons.
|
||||
|
||||
Examples
|
||||
- 1:3 satisfies 2:4, as their intersection is 2:3.
|
||||
- 1:2 does not satisfy 3:4, as their intersection is empty.
|
||||
- 4.5:4.7 satisfies 4.7.2:4.8, as their intersection is 4.7.2:4.7
|
||||
"""
|
||||
return self.overlaps(other)
|
||||
|
||||
@coerced
|
||||
def overlaps(self, other):
|
||||
|
||||
@@ -33,8 +33,6 @@ spack:
|
||||
variants: +bzip2 ~nls +xz
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
version:
|
||||
- 1.10.7
|
||||
libfabric:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
|
||||
@@ -12,7 +12,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
|
||||
mesh refinement (AMR) applications."""
|
||||
|
||||
homepage = "https://amrex-codes.github.io/amrex/"
|
||||
url = "https://github.com/AMReX-Codes/amrex/releases/download/22.02/amrex-22.02.tar.gz"
|
||||
url = "https://github.com/AMReX-Codes/amrex/releases/download/22.03/amrex-22.03.tar.gz"
|
||||
git = "https://github.com/AMReX-Codes/amrex.git"
|
||||
|
||||
test_requires_compiler = True
|
||||
@@ -22,6 +22,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
|
||||
maintainers = ['WeiqunZhang', 'asalmgren', 'etpalmer63']
|
||||
|
||||
version('develop', branch='development')
|
||||
version('22.03', sha256='2a67233e55f20b937e2da97f1ed3ab0666e12ef283b4d14c9456ebf21f36b77c')
|
||||
version('22.02', sha256='5d8dd3fa3c416b04e70188e06b7e8fc2838d78b43a2cf33a285184c77f0c1e1e')
|
||||
version('22.01', sha256='857df5b2fa8e3010b8856b81879a5be32ba7cc2e575474256eae7ef815b8354d')
|
||||
version('21.12', sha256='439f9ebf2b440fc739a7976f3ade188ec3e1de5f51a0b151e6b8dda36fa67278')
|
||||
|
||||
@@ -20,7 +20,7 @@ class Apfel(AutotoolsPackage):
|
||||
version('3.0.4', sha256='c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224')
|
||||
|
||||
depends_on('swig', when='+python')
|
||||
depends_on('python', when='+python', type=('build', 'run'))
|
||||
depends_on('python', type=('build', 'run'))
|
||||
depends_on('lhapdf', when='+lhapdf', type=('build', 'run'))
|
||||
|
||||
variant('python', description='Build python wrapper', default=False)
|
||||
|
||||
@@ -13,12 +13,13 @@ class AwsParallelcluster(PythonPackage):
|
||||
tool to deploy and manage HPC clusters in the AWS cloud."""
|
||||
|
||||
homepage = "https://github.com/aws/aws-parallelcluster"
|
||||
pypi = "aws-parallelcluster/aws-parallelcluster-2.11.4.tar.gz"
|
||||
pypi = "aws-parallelcluster/aws-parallelcluster-2.11.5.tar.gz"
|
||||
|
||||
maintainers = [
|
||||
'demartinofra', 'enrico-usai', 'lukeseawalker',
|
||||
]
|
||||
|
||||
version('2.11.5', sha256='7499f88387cbe2cb73f9fddeee3363117f7ef1524d6a73e77bb07900040baebb')
|
||||
version('2.11.4', sha256='449537ccda57f91f4ec6ae0c94a8e2b1a789f08f80245fadb28f44a4351d5da4')
|
||||
version('2.11.3', sha256='7c1d74123f2f670846aed8fe1fcca5908bb46ec014e2dfc7d3ec8994447a37a0')
|
||||
version('2.11.2', sha256='60d96a5ea4dca4816ceffc4546549743abd1f6207c62f016c9c348adc64b2ec0')
|
||||
|
||||
@@ -98,9 +98,6 @@ class Axom(CachedCMakePackage, CudaPackage):
|
||||
depends_on("conduit+hdf5", when="+hdf5")
|
||||
depends_on("conduit~hdf5", when="~hdf5")
|
||||
|
||||
# HDF5 needs to be the same as Conduit's
|
||||
depends_on("hdf5@1.8.19:1.8~cxx~fortran", when="+hdf5")
|
||||
|
||||
depends_on("lua", when="+lua")
|
||||
|
||||
depends_on("scr", when="+scr")
|
||||
|
||||
@@ -23,6 +23,7 @@ class Blt(Package):
|
||||
# if you export targets this could cause problems in downstream
|
||||
# projects if not handled properly. More info here:
|
||||
# https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html
|
||||
version('0.5.0', sha256='5f680ef922d0e0a7ff1b1a5fc8aa107cd4f543ad888cbc9b12639bea72a6ab1f')
|
||||
version('0.4.1', sha256='16cc3e067ddcf48b99358107e5035a17549f52dcc701a35cd18a9d9f536826c1')
|
||||
version('0.4.0', sha256='f3bc45d28b9b2eb6df43b75d4f6f89a1557d73d012da7b75bac1be0574767193')
|
||||
version('0.3.6', sha256='6276317c29e7ff8524fbea47d9288ddb40ac06e9f9da5e878bf9011e2c99bf71')
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
import os
|
||||
|
||||
from llnl.util import tty
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
@@ -57,19 +59,19 @@ def run_sample_nested_example(self):
|
||||
"""Run stand alone test: sample_nested"""
|
||||
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, 'examples')
|
||||
exe = 'sample_nested'
|
||||
source_file = 'sample_nested.c'
|
||||
|
||||
if not os.path.exists(test_dir):
|
||||
print('Skipping bolt test')
|
||||
if not os.path.isfile(join_path(test_dir, source_file)):
|
||||
tty.warn('Skipping bolt test:'
|
||||
'{0} does not exist'.format(source_file))
|
||||
return
|
||||
|
||||
exe = 'sample_nested'
|
||||
|
||||
# TODO: Either change to use self.compiler.cc (so using the build-time compiler)
|
||||
# or add test parts that compile with the different supported compilers.
|
||||
self.run_test('gcc',
|
||||
options=['-lomp', '-o', exe,
|
||||
'-L{0}'.format(join_path(self.prefix, 'lib')),
|
||||
'{0}'.format(join_path(test_dir, 'sample_nested.c'))],
|
||||
self.run_test(exe=os.environ['CXX'],
|
||||
options=['-L{0}'.format(self.prefix.lib),
|
||||
'-I{0}'.format(self.prefix.include),
|
||||
'{0}'.format(join_path(test_dir, source_file)),
|
||||
'-o', exe, '-lomp', '-lbolt'],
|
||||
purpose='test: compile {0} example'.format(exe),
|
||||
work_dir=test_dir)
|
||||
|
||||
@@ -78,5 +80,4 @@ def run_sample_nested_example(self):
|
||||
work_dir=test_dir)
|
||||
|
||||
def test(self):
|
||||
print("Running bolt test")
|
||||
self.run_sample_nested_example()
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- spack-src/tools/build/src/tools/clang-linux.jam.orig 2022-02-22 09:51:17.000000000 +0900
|
||||
+++ spack-src/tools/build/src/tools/clang-linux.jam 2022-02-22 11:22:58.000000000 +0900
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
rule get-full-version ( command-string )
|
||||
{
|
||||
- return [ common.match-command-output version : "version ([0-9.]+)"
|
||||
+ return [ common.match-command-output version : "LLVM ([0-9.]+)"
|
||||
: "$(command-string) --version" ] ;
|
||||
}
|
||||
|
||||
@@ -261,7 +261,8 @@ def libs(self):
|
||||
working_dir='libs/system', level=1)
|
||||
|
||||
# Change the method for version analysis when using Fujitsu compiler.
|
||||
patch('fujitsu_version_analysis.patch', when='@1.67.0:%fj')
|
||||
patch('fujitsu_version_analysis.patch', when='@1.67.0:1.76.0%fj')
|
||||
patch('fujitsu_version_analysis-1.77.patch', when='@1.77.0:%fj')
|
||||
|
||||
# Add option to C/C++ compile commands in clang-linux.jam
|
||||
patch('clang-linux_add_option.patch', when='@1.56.0:1.63.0')
|
||||
|
||||
@@ -22,10 +22,11 @@ class Butterflypack(CMakePackage):
|
||||
|
||||
homepage = "https://github.com/liuyangzhuan/ButterflyPACK"
|
||||
git = "https://github.com/liuyangzhuan/ButterflyPACK.git"
|
||||
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.1.0.tar.gz"
|
||||
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.1.1.tar.gz"
|
||||
maintainers = ['liuyangzhuan']
|
||||
|
||||
version('master', branch='master')
|
||||
version('2.1.1', sha256='0d4a1ce540c84de37e4398f72ecf685ea0c4eabceba13015add5b445a4ca3a15')
|
||||
version('2.1.0', sha256='ac76cc8d431797c1a3641b23124e3de5eb8c3a3afb71c336e7ba69c6cdf150ef')
|
||||
version('2.0.0', sha256='84f0e5ac40997409f3c80324238a07f9c700a1263b84140ed97275d67b577b80')
|
||||
version('1.2.1', sha256='cd61b0e033f55a932f13d9902e28a7abbf029c279cec9ab1b2a063525d036fa2')
|
||||
|
||||
@@ -94,9 +94,7 @@ class Charmpp(Package):
|
||||
# Other options
|
||||
variant("papi", default=False, description="Enable PAPI integration")
|
||||
variant("syncft", default=False, description="Compile with Charm++ fault tolerance support")
|
||||
variant("smp", default=True,
|
||||
description=(
|
||||
"Enable SMP parallelism (does not work with +multicore)"))
|
||||
variant("smp", default=True, description="Enable SMP parallelism")
|
||||
variant("tcp", default=False,
|
||||
description="Use TCP as transport mechanism (requires +net)")
|
||||
variant("omp", default=False, description="Support for the integrated LLVM OpenMP runtime")
|
||||
@@ -134,7 +132,8 @@ class Charmpp(Package):
|
||||
|
||||
conflicts("~tracing", "+papi")
|
||||
|
||||
conflicts("backend=multicore", "+smp")
|
||||
conflicts("backend=multicore", when="~smp",
|
||||
msg="The 'multicore' backend always uses SMP")
|
||||
conflicts("backend=ucx", when="@:6.9")
|
||||
|
||||
# Shared-lib builds with GCC are broken on macOS:
|
||||
@@ -299,7 +298,11 @@ def install(self, spec, prefix):
|
||||
options.extend(["--basedir=%s" % spec["ucx"].prefix])
|
||||
if "+papi" in spec:
|
||||
options.extend(["papi", "--basedir=%s" % spec["papi"].prefix])
|
||||
if "+smp" in spec:
|
||||
if "+smp" in spec and 'backend=multicore' not in spec:
|
||||
# The 'multicore' backend always uses SMP, so we don't have to
|
||||
# append the 'smp' option when the 'multicore' backend is active. As
|
||||
# of Charm++ v7.0.0 it is actually a build error to append 'smp'
|
||||
# with the 'multicore' backend.
|
||||
options.append("smp")
|
||||
if "+tcp" in spec:
|
||||
if 'backend=netlrts' not in spec:
|
||||
|
||||
@@ -77,6 +77,8 @@ class Conduit(CMakePackage):
|
||||
# set to false for systems that implicitly link mpi
|
||||
variant('blt_find_mpi', default=True, description='Use BLT CMake Find MPI logic')
|
||||
variant("hdf5", default=True, description="Build Conduit HDF5 support")
|
||||
# TODO: remove 'compat' variant when VisIt starts distributing HDF5
|
||||
# binaries
|
||||
variant("hdf5_compat", default=True, when='+hdf5',
|
||||
description="Build Conduit with HDF5 1.8.x (compatibility mode)")
|
||||
variant("silo", default=False, description="Build Conduit Silo support")
|
||||
@@ -117,26 +119,18 @@ class Conduit(CMakePackage):
|
||||
###############
|
||||
# HDF5
|
||||
###############
|
||||
# Note: cxx variant is disabled due to build issue Cyrus
|
||||
# experienced on BGQ. When on, the static build tries
|
||||
# to link against shared libs.
|
||||
#
|
||||
# Use HDF5 1.8, for wider output compatibly
|
||||
# variants reflect we are not using hdf5's mpi or fortran features.
|
||||
depends_on("hdf5~cxx", when="+hdf5")
|
||||
depends_on("hdf5~shared", when="+hdf5~shared")
|
||||
depends_on("hdf5@1.8.19:1.8", when="+hdf5+hdf5_compat")
|
||||
|
||||
# we need to hand this to conduit so it can properly
|
||||
# handle downstream linking of zlib reqed by hdf5
|
||||
depends_on("zlib", when="+hdf5")
|
||||
depends_on("hdf5", when="+hdf5")
|
||||
depends_on("hdf5~shared", when="+hdf5~shared")
|
||||
# Require older HDF5 to ensure compatibility with VisIt: see #29132
|
||||
depends_on("hdf5@1.8.0:1.8", when="+hdf5+hdf5_compat")
|
||||
|
||||
###############
|
||||
# Silo
|
||||
###############
|
||||
# we are not using silo's fortran features
|
||||
depends_on("silo~fortran", when="+silo+shared")
|
||||
depends_on("silo~shared~fortran", when="+silo~shared")
|
||||
depends_on("silo+shared", when="+silo+shared")
|
||||
depends_on("silo~shared", when="+silo~shared")
|
||||
|
||||
###############
|
||||
# ADIOS
|
||||
@@ -528,7 +522,9 @@ def hostconfig(self, spec, prefix):
|
||||
|
||||
if "+hdf5" in spec:
|
||||
cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix))
|
||||
cfg.write(cmake_cache_entry("ZLIB_DIR", spec['zlib'].prefix))
|
||||
if 'zlib' in spec:
|
||||
# HDF5 depends on zlib
|
||||
cfg.write(cmake_cache_entry("ZLIB_DIR", spec['zlib'].prefix))
|
||||
else:
|
||||
cfg.write("# hdf5 not built by spack \n")
|
||||
|
||||
|
||||
@@ -83,7 +83,12 @@ class Cp2k(MakefilePackage, CudaPackage):
|
||||
with when('+openmp'):
|
||||
depends_on('fftw+openmp', when='^fftw')
|
||||
depends_on('amdfftw+openmp', when='^amdfftw')
|
||||
depends_on('cray-fftw+openmp', when='^cray-fftw')
|
||||
depends_on('openblas threads=openmp', when='^openblas')
|
||||
# The Cray compiler wrappers will automatically add libsci_mp with
|
||||
# -fopenmp. Since CP2K unconditionally links blas/lapack/scalapack
|
||||
# we have to be consistent.
|
||||
depends_on('cray-libsci+openmp', when='^cray-libsci')
|
||||
|
||||
with when('smm=libxsmm'):
|
||||
depends_on('libxsmm@1.17:~header-only', when='@9.1:')
|
||||
|
||||
@@ -30,7 +30,7 @@ class CrayLibsci(Package):
|
||||
|
||||
provides("blas")
|
||||
provides("lapack")
|
||||
provides("scalapack")
|
||||
provides("scalapack", when="+mpi")
|
||||
|
||||
canonical_names = {
|
||||
'gcc': 'GNU',
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import re
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
@@ -19,6 +21,8 @@ class Dos2unix(MakefilePackage):
|
||||
|
||||
depends_on('gettext')
|
||||
|
||||
executables = [r'^dos2unix$']
|
||||
|
||||
@property
|
||||
def build_targets(self):
|
||||
targets = [
|
||||
@@ -29,3 +33,9 @@ def build_targets(self):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('prefix={0}'.format(prefix), 'install')
|
||||
|
||||
@classmethod
|
||||
def determine_version(cls, exe):
|
||||
output = Executable(exe)('--version', output=str, error=str)
|
||||
match = re.search(r'^dos2unix\s+([\d\.]+)', output)
|
||||
return match.group(1) if match else None
|
||||
|
||||
@@ -35,6 +35,8 @@ class Edm4hep(CMakePackage):
|
||||
depends_on('root@6.08:')
|
||||
depends_on('podio@0.14:', when='@0.4:')
|
||||
depends_on('podio@0.13.0:0.13', when='@:0.3')
|
||||
depends_on('py-jinja2', type='build')
|
||||
depends_on('py-pyyaml', type='build')
|
||||
|
||||
depends_on('hepmc@:2', type='test', when='@:0.4.0')
|
||||
depends_on('hepmc3', type='test', when='@0.4.1:')
|
||||
|
||||
@@ -39,6 +39,10 @@ class Eigen(CMakePackage):
|
||||
patch('https://gitlab.com/libeigen/eigen/-/commit/6d822a1052fc665f06dc51b4729f6a38e0da0546.diff', when='@3.3.8',
|
||||
sha256='62590e9b33a8f72b608a72b87147a306e7cb20766ea53c6b8e0a183fa6cb7635')
|
||||
|
||||
# there is a bug in 3.3.4 that provokes a compile error with the xl compiler
|
||||
# See https://gitlab.com/libeigen/eigen/-/issues/1555
|
||||
patch('xlc-compilation-3.3.4.patch', when='@3.3.4%xl_r')
|
||||
|
||||
# From http://eigen.tuxfamily.org/index.php?title=Main_Page#Requirements
|
||||
# "Eigen doesn't have any dependencies other than the C++ standard
|
||||
# library."
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -up /Eigen/src/Core/arch/AltiVec/PacketMath.h /Eigen/src/Core/arch/AltiVec/PacketMath.h
|
||||
--- /Eigen/src/Core/arch/AltiVec/PacketMath.h
|
||||
+++ /Eigen/src/Core/arch/AltiVec/PacketMath.h
|
||||
@@ -1022,7 +1022,7 @@ ptranspose(PacketBlock<Packet2d,2>& kern
|
||||
|
||||
template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket, const Packet2d& elsePacket) {
|
||||
Packet2l select = { ifPacket.select[0], ifPacket.select[1] };
|
||||
- Packet2bl mask = vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE));
|
||||
+ Packet2bl mask = reinterpret_cast<Packet2bl>( vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE)) );
|
||||
return vec_sel(elsePacket, thenPacket, mask);
|
||||
}
|
||||
#endif // __VSX__
|
||||
@@ -18,6 +18,8 @@ class Esmf(MakefilePackage):
|
||||
homepage = "https://www.earthsystemcog.org/projects/esmf/"
|
||||
url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz'
|
||||
|
||||
maintainers = ['climbfuji']
|
||||
|
||||
version('8.2.0', sha256='3693987aba2c8ae8af67a0e222bea4099a48afe09b8d3d334106f9d7fc311485')
|
||||
version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75')
|
||||
version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84')
|
||||
@@ -126,10 +128,14 @@ def edit(self, spec, prefix):
|
||||
# C++ compilers are being used to build the ESMF library.
|
||||
if self.compiler.name == 'gcc':
|
||||
os.environ['ESMF_COMPILER'] = 'gfortran'
|
||||
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
|
||||
self.compiler.fc, '-dumpversion').split('.')[0])
|
||||
elif self.compiler.name == 'intel':
|
||||
os.environ['ESMF_COMPILER'] = 'intel'
|
||||
elif self.compiler.name == 'clang':
|
||||
elif self.compiler.name in ['clang', 'apple-clang']:
|
||||
os.environ['ESMF_COMPILER'] = 'gfortranclang'
|
||||
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
|
||||
self.compiler.fc, '-dumpversion').split('.')[0])
|
||||
elif self.compiler.name == 'nag':
|
||||
os.environ['ESMF_COMPILER'] = 'nag'
|
||||
elif self.compiler.name == 'pgi':
|
||||
@@ -154,9 +160,18 @@ def edit(self, spec, prefix):
|
||||
# Build an optimized version of the library.
|
||||
os.environ['ESMF_BOPT'] = 'O'
|
||||
|
||||
if self.spec.satisfies('%gcc@10:'):
|
||||
if self.compiler.name in ['gcc', 'clang', 'apple-clang'] and \
|
||||
gfortran_major_version >= 10:
|
||||
os.environ['ESMF_F90COMPILEOPTS'] = '-fallow-argument-mismatch'
|
||||
|
||||
#######
|
||||
# OS #
|
||||
#######
|
||||
|
||||
# ESMF_OS must be set for Cray systems
|
||||
if 'platform=cray' in self.spec:
|
||||
os.environ['ESMF_OS'] = 'Unicos'
|
||||
|
||||
#######
|
||||
# MPI #
|
||||
#######
|
||||
@@ -276,3 +291,9 @@ def edit(self, spec, prefix):
|
||||
|
||||
def check(self):
|
||||
make('check', parallel=False)
|
||||
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))
|
||||
|
||||
@@ -37,7 +37,7 @@ def patch(self):
|
||||
def configure_args(self):
|
||||
args = ['--with-boost={0}'.format(self.spec['boost'].prefix)]
|
||||
|
||||
if self.spec.satisfies('polatform=darwin'):
|
||||
if self.spec.satisfies('platform=darwin'):
|
||||
args += ['--with-darwinports', '--with-fink']
|
||||
|
||||
return args
|
||||
|
||||
@@ -14,6 +14,8 @@ class Fmt(CMakePackage):
|
||||
homepage = "https://fmt.dev/"
|
||||
url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip"
|
||||
|
||||
version('8.1.1', sha256='23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d')
|
||||
version('8.1.0', sha256='d8e9f093b2241c3a9fc3895e23231ef9de00c762cfa0a9c65e4748755bc352ae')
|
||||
version('8.0.1', sha256='a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf')
|
||||
version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f')
|
||||
version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7')
|
||||
|
||||
@@ -20,6 +20,11 @@ class GitLfs(MakefilePackage):
|
||||
|
||||
executables = ['^git-lfs$']
|
||||
|
||||
maintainers = ['sethrj']
|
||||
|
||||
version('3.1.2', sha256='5c9bc449068d0104ea124c25f596af16da85e7b5bf256bc544d8ce5f4fe231f2')
|
||||
version('2.13.3', sha256='f8bd7a06e61e47417eb54c3a0db809ea864a9322629b5544b78661edab17b950')
|
||||
version('2.12.1', sha256='2b2e70f1233f7efe9a010771510391a07527ec7c0af721ecf8edabac5d60f62b')
|
||||
version('2.11.0', sha256='8183c4cbef8cf9c2e86b0c0a9822451e2df272f89ceb357c498bfdf0ff1b36c7')
|
||||
version('2.10.0', sha256='07fd5c57a1039d5717dc192affbe3268ec2fd03accdca462cb504c0b4194cd23')
|
||||
version('2.9.0', sha256='f1963ad88747577ffeeb854649aeacaa741c59be74683da4d46b129a72d111b7')
|
||||
@@ -29,11 +34,16 @@ class GitLfs(MakefilePackage):
|
||||
version('2.7.0', sha256='1c829ddd163be2206a44edb366bd7f6d84c5afae3496687405ca9d2a5f3af07b')
|
||||
version('2.6.1', sha256='e17cd9d4e66d1116be32f7ddc7e660c7f8fabbf510bc01b01ec15a22dd934ead')
|
||||
|
||||
depends_on('go@1.5:', type='build')
|
||||
depends_on('go@1.17:', type='build', when='@2.13:')
|
||||
depends_on('go@1.5:', type='build', when='@:2.12')
|
||||
depends_on('git@1.8.2:', type='run')
|
||||
|
||||
patch('patches/issue-10702.patch', when='@2.7.0:2.7.1')
|
||||
|
||||
# Mysterious syscall failures of old versions on new systems
|
||||
conflicts('os=bigsur', when='@:2.11')
|
||||
conflicts('os=monterey', when='@:2.11')
|
||||
|
||||
parallel = False
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -14,6 +14,7 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage):
|
||||
gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2"
|
||||
|
||||
version('6.2.1', sha256='eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c')
|
||||
version('6.2.0', sha256='f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea')
|
||||
version('6.1.2', sha256='5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2')
|
||||
version('6.1.1', sha256='a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6')
|
||||
version('6.1.0', sha256='498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8')
|
||||
|
||||
@@ -42,10 +42,11 @@ class Go(Package):
|
||||
|
||||
maintainers = ['alecbcs']
|
||||
|
||||
version('1.17.3', sha256='705c64251e5b25d5d55ede1039c6aa22bea40a7a931d14c370339853643c3df0')
|
||||
version('1.17.2', sha256='2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431')
|
||||
version('1.17.1', sha256='49dc08339770acd5613312db8c141eaf61779995577b89d93b541ef83067e5b1')
|
||||
version('1.17', sha256='3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d')
|
||||
version('1.17.7', sha256='c108cd33b73b1911a02b697741df3dea43e01a5c4e08e409e8b3a0e3745d2b4d')
|
||||
version('1.17.3', sha256='705c64251e5b25d5d55ede1039c6aa22bea40a7a931d14c370339853643c3df0', deprecated=True)
|
||||
version('1.17.2', sha256='2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431', deprecated=True)
|
||||
version('1.17.1', sha256='49dc08339770acd5613312db8c141eaf61779995577b89d93b541ef83067e5b1', deprecated=True)
|
||||
version('1.17', sha256='3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d', deprecated=True)
|
||||
version('1.16.10', sha256='a905472011585e403d00d2a41de7ced29b8884309d73482a307f689fd0f320b5')
|
||||
version('1.16.9', sha256='0a1cc7fd7bd20448f71ebed64d846138850d5099b18cf5cc10a4fc45160d8c3d')
|
||||
version('1.16.6', sha256='a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d')
|
||||
|
||||
@@ -27,7 +27,7 @@ class Groff(AutotoolsPackage, GNUMirrorPackage):
|
||||
# See brew scripts for groff for guidance:
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/groff.rb
|
||||
# Seems troublesome...netpbm requires groff?
|
||||
variant('pdf', default=True, description='Build the `gropdf` executable.')
|
||||
variant('pdf', default=False, description='Build the `gropdf` executable.')
|
||||
variant('x', default=False, description='Enable set of graphical options')
|
||||
variant('uchardet', default=True,
|
||||
description='Builds preconv with uchardet library for '
|
||||
|
||||
@@ -20,11 +20,12 @@ class Gurobi(Package):
|
||||
# to set up a mirror, see
|
||||
# https://spack.readthedocs.io/en/latest/mirrors.html
|
||||
|
||||
homepage = "https://www.gurobi.com/index"
|
||||
homepage = "https://www.gurobi.com"
|
||||
manual_download = True
|
||||
|
||||
maintainers = ['glennpj']
|
||||
|
||||
version('9.5.1', sha256='fa82859d33f08fb8aeb9da66b0fbd91718ed573c534f571aa52372c9deb891da')
|
||||
version('9.1.2', sha256='7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b')
|
||||
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
|
||||
|
||||
@@ -35,9 +36,7 @@ class Gurobi(Package):
|
||||
license_url = 'http://www.gurobi.com/downloads/download-center'
|
||||
|
||||
extends('python')
|
||||
depends_on('python@2.7,3.6:', type=('build', 'run'))
|
||||
depends_on('py-pip', type='build')
|
||||
depends_on('py-wheel', type='build')
|
||||
depends_on('python@2.7,3.6:')
|
||||
|
||||
def url_for_version(self, version):
|
||||
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
|
||||
@@ -58,5 +57,5 @@ def install(self, spec, prefix):
|
||||
@run_after('install')
|
||||
def gurobipy(self):
|
||||
with working_dir('linux64'):
|
||||
args = std_pip_args + ['--prefix=' + self.prefix, '.']
|
||||
pip(*args)
|
||||
python = which('python')
|
||||
python('setup.py', 'install', '--prefix={0}'.format(self.prefix))
|
||||
|
||||
@@ -108,6 +108,8 @@ class Hdf5(CMakePackage):
|
||||
conflicts('+java', when='@:1.9')
|
||||
# The Java wrappers cannot be built without shared libs.
|
||||
conflicts('+java', when='~shared')
|
||||
# Fortran cannot be built with shared
|
||||
conflicts('+fortran', when='+shared@:1.8')
|
||||
|
||||
# There are several officially unsupported combinations of the features:
|
||||
# 1. Thread safety is not guaranteed via high-level C-API but in some cases
|
||||
|
||||
@@ -18,6 +18,7 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
|
||||
maintainers = ['ashermancinelli', 'CameronRutherford']
|
||||
|
||||
# Most recent tagged snapshot is the preferred version when profiling.
|
||||
version('0.5.4', commit='a37a7a677884e95d1c0ad37936aef3778fc91c3e')
|
||||
version('0.5.3', commit='698e8d0fdc0ff9975d8714339ff8c782b70d85f9')
|
||||
version('0.5.2', commit='662ad76dee1f501f648a8bec9a490cb5881789e9')
|
||||
version('0.5.1', commit='6789bbb55824e68e428c2df1009d647af81f9cf1')
|
||||
@@ -64,10 +65,16 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
depends_on('magma+cuda', when='+cuda')
|
||||
depends_on('magma+rocm', when='+rocm')
|
||||
depends_on('magma@2.5.4:', when='@0.4:+cuda')
|
||||
depends_on('magma@2.6.1:', when='@0.4.6:+cuda')
|
||||
depends_on('magma@2.5.4:', when='@0.4:+rocm')
|
||||
depends_on('magma@2.6.1:', when='@0.4.6:+rocm')
|
||||
|
||||
# Depends on Magma when +rocm or +cuda
|
||||
magma_ver_constraints = (
|
||||
('2.5.4', '0.4'),
|
||||
('2.6.1', '0.4.6'),
|
||||
('2.6.2', '0.5.4'),
|
||||
)
|
||||
for (magma_v, hiop_v) in magma_ver_constraints:
|
||||
depends_on('magma@{0}:'.format(magma_v), when='@{0}:+cuda'.format(hiop_v))
|
||||
depends_on('magma@{0}:'.format(magma_v), when='@{0}:+rocm'.format(hiop_v))
|
||||
|
||||
depends_on('raja+openmp', when='+raja')
|
||||
depends_on('raja@0.14.0:', when='@0.5.0:+raja')
|
||||
|
||||
36
var/spack/repos/builtin/packages/hztool/package.py
Normal file
36
var/spack/repos/builtin/packages/hztool/package.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# Copyright 2013-2022 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 Hztool(AutotoolsPackage):
|
||||
"""HZTool is a library of routines which will allow you to reproduce an
|
||||
experimental result using the four-vector final state from Monte Carlo
|
||||
generators."""
|
||||
|
||||
homepage = "https://hztool.hepforge.org"
|
||||
url = "https://hztool.hepforge.org/downloads/?f=hztool-4.3.2.tar.gz"
|
||||
list_url = "https://hztool.hepforge.org/downloads/"
|
||||
|
||||
maintainers = ['wdconinc']
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('4.3.2', sha256='2a8d334abd96a7a9f70d53cfbb46f35902ccd1108861333a87542f8357152fd4')
|
||||
version('4.3', sha256='af1a302c16e9f0bfbfdd77a486a5f47553d81d1d049bc83cc72321ba285af264')
|
||||
version('4.2', sha256='87b74b2e424a1e6bd990cc12a0bfcba15854a6451ffa20aff8dc4bdfed559160')
|
||||
version('4.1', sha256='a24b5d483d1dacaa991958956e838601a426133c74885b3aa2fc27c98b42d22a')
|
||||
version('4.0', sha256='e6f6955159da46156bf9182f61754a59dd14e407d40c2448e3f821d55bf963a0')
|
||||
|
||||
def patch(self):
|
||||
filter_file('-fno-automatic',
|
||||
'-fno-automatic -fallow-argument-mismatch',
|
||||
'configure.ac')
|
||||
|
||||
def configure_args(self):
|
||||
args = []
|
||||
args.append('--disable-docs')
|
||||
return args
|
||||
26
var/spack/repos/builtin/packages/kakoune/package.py
Normal file
26
var/spack/repos/builtin/packages/kakoune/package.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright 2013-2021 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 Kakoune(MakefilePackage):
|
||||
"""mawww's experiment for a better code editor."""
|
||||
|
||||
homepage = "https://www.kakoune.org"
|
||||
url = "https://github.com/mawww/kakoune/releases/download/v2021.11.08/kakoune-2021.11.08.tar.bz2"
|
||||
|
||||
maintainers = ['Bambi']
|
||||
|
||||
version('2021.11.08', sha256='aa30889d9da11331a243a8f40fe4f6a8619321b19217debac8f565e06eddb5f4')
|
||||
|
||||
depends_on('ncurses')
|
||||
|
||||
conflicts('%gcc@:8', when='@2021.11.08', msg='GCC version must be at least 9.0!')
|
||||
|
||||
build_targets = ['all', 'man']
|
||||
|
||||
def edit(self, spec, prefix):
|
||||
env['PREFIX'] = prefix
|
||||
@@ -136,6 +136,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
|
||||
"72": 'volta72',
|
||||
"75": 'turing75',
|
||||
"80": 'ampere80',
|
||||
"86": 'ampere86',
|
||||
}
|
||||
cuda_arches = spack_cuda_arch_map.values()
|
||||
conflicts("+cuda", when="cuda_arch=none")
|
||||
|
||||
@@ -27,3 +27,9 @@ def setup_run_environment(self, env):
|
||||
env.set('LANDSFCUTIL_LIB' + suffix, lib[0])
|
||||
env.set('LANDSFCUTIL_INC' + suffix,
|
||||
join_path(self.prefix, 'include_' + suffix))
|
||||
|
||||
def flag_handler(self, name, flags):
|
||||
if self.spec.satisfies('%fj'):
|
||||
if name == 'fflags':
|
||||
flags.append('-Free')
|
||||
return (None, None, flags)
|
||||
|
||||
@@ -197,9 +197,12 @@ class Lbann(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on('cnpy', when='+numpy')
|
||||
depends_on('nccl', when='@0.94:0.98.2 +cuda')
|
||||
|
||||
depends_on('conduit@0.4.0: +hdf5~hdf5_compat ~python', when='@0.94:0 +conduit')
|
||||
depends_on('conduit@0.5.0:0.6 +hdf5~hdf5_compat ~python', when='@0.100:0.101 +conduit')
|
||||
depends_on('conduit@0.6.0: +hdf5~hdf5_compat~fortran~parmetis ~python', when='@:0.90,0.99:')
|
||||
# Note that conduit defaults to +fortran +parmetis +python, none of which are
|
||||
# necessary by LBANN: you may want to disable those options in your
|
||||
# packages.yaml
|
||||
depends_on('conduit@0.4.0: +hdf5', when='@0.94:0 +conduit')
|
||||
depends_on('conduit@0.5.0:0.6 +hdf5', when='@0.100:0.101 +conduit')
|
||||
depends_on('conduit@0.6.0: +hdf5', when='@:0.90,0.99:')
|
||||
|
||||
# LBANN can use Python in two modes 1) as part of an extensible framework
|
||||
# and 2) to drive the front end model creation and launch
|
||||
|
||||
@@ -11,24 +11,30 @@ class Lhapdf(AutotoolsPackage):
|
||||
used for evaluating PDFs from discretised data files. """
|
||||
|
||||
homepage = "https://lhapdf.hepforge.org/"
|
||||
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
|
||||
git = "https://gitlab.com/hepcedar/lhapdf"
|
||||
# the tarballs from hepforge include bundled cython sources
|
||||
# that may break the build when using incompatible python versions
|
||||
# thus use the release tarball from gitlab that does not include lhapdf.cxx
|
||||
url = "https://gitlab.com/hepcedar/lhapdf/-/archive/lhapdf-6.4.0/lhapdf-lhapdf-6.4.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
|
||||
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')
|
||||
version('6.4.0', sha256='155702c36df46de30c5f7fa249193a9a0eea614191de1606301e06cd8062fc29')
|
||||
version('6.3.0', sha256='864468439c7662bbceed6c61c7132682ec83381a23c9c9920502fdd7329dd816')
|
||||
version('6.2.3', sha256='37200a1ab70247250a141dfed7419d178f9a83bd23a4f8a38e203d4e27b41308')
|
||||
|
||||
variant('python', default=True, description="Build python bindings")
|
||||
|
||||
depends_on('autoconf', type='build')
|
||||
depends_on('automake', type='build')
|
||||
depends_on('libtool', type='build')
|
||||
depends_on('m4', type='build')
|
||||
|
||||
depends_on('python', type=('build', 'run'))
|
||||
depends_on('py-cython', type='build')
|
||||
depends_on('py-setuptools', type='build')
|
||||
|
||||
extends('python')
|
||||
extends('python', when='+python')
|
||||
depends_on('py-cython', type='build', when='+python')
|
||||
depends_on('py-setuptools', type='build', when='+python')
|
||||
|
||||
def configure_args(self):
|
||||
args = ['FCFLAGS=-O3', 'CFLAGS=-O3', 'CXXFLAGS=-O3']
|
||||
args.extend(self.enable_or_disable('python'))
|
||||
return args
|
||||
|
||||
@@ -32,6 +32,7 @@ class Libdrm(Package):
|
||||
depends_on('docbook-xsl', type='build')
|
||||
depends_on('libpciaccess@0.10:')
|
||||
depends_on('libpthread-stubs')
|
||||
depends_on('meson', type='build', when='@2.4.101:')
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version <= Version('2.4.100'):
|
||||
|
||||
@@ -11,9 +11,11 @@ class Libpipeline(AutotoolsPackage):
|
||||
in a flexible and convenient way."""
|
||||
|
||||
homepage = "http://libpipeline.nongnu.org/"
|
||||
url = "https://git.savannah.nongnu.org/cgit/libpipeline.git/snapshot/libpipeline-1.4.2.tar.gz"
|
||||
git = "https://gitlab.com/cjwatson/libpipeline"
|
||||
url = "https://download.savannah.nongnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz"
|
||||
|
||||
version('1.4.2', sha256='ac8b103b281ff63129c4fa6a8cc40bb5863e3a4266343d6e3bb5788de1ede488')
|
||||
version('1.5.5', sha256='0c8367f8b82bb721b50647a647115b6e62a37e3b2e954a9685e4d933f30c00cc')
|
||||
version('1.4.2', sha256='fef1fc9aa40ce8796f18cd1aecd888a9484a9556c8b0f8d07c863578277679be')
|
||||
|
||||
depends_on('pkgconfig', type='build')
|
||||
depends_on('check', type='test')
|
||||
|
||||
@@ -15,6 +15,7 @@ class Libtree(MakefilePackage):
|
||||
maintainers = ['haampie']
|
||||
|
||||
version('master', branch='master')
|
||||
version('3.1.0', sha256='8057edb2dd77b0acf6ceab6868741993979dccd41fc41a58bde743f11666d781')
|
||||
version('3.0.3', sha256='7e4589b617775cb3a2b4b8fe03f80b81e43ef16046d680f1517ce52d7be9893f')
|
||||
version('3.0.2', sha256='f07c9cf3394cacd1eab15d42b97b9b6787d8bd3b7f6746fe0f39e7d951eebaac')
|
||||
version('3.0.1', sha256='20d3cd66f5c74058de9dd594af8ffd639c795d27ab435c588a3cd43911c1604f')
|
||||
|
||||
@@ -34,7 +34,7 @@ class Libzmq(AutotoolsPackage):
|
||||
variant("drafts", default=False,
|
||||
description="Build and install draft classes and methods")
|
||||
|
||||
variant("docs", default=True,
|
||||
variant("docs", default=False,
|
||||
description="Build documentation")
|
||||
|
||||
variant("libbsd", when='@4.3.3:', default=(sys.platform != 'darwin'),
|
||||
|
||||
31
var/spack/repos/builtin/packages/llvm/llvm12-thread.patch
Normal file
31
var/spack/repos/builtin/packages/llvm/llvm12-thread.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
|
||||
index e3c2a580396e..5f76992d193e 100644
|
||||
--- a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
|
||||
+++ b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
|
||||
@@ -249,3 +249,6 @@ if (NOT LIBOMPTARGET_CUDA_TOOLKIT_ROOT_DIR_PRESET AND
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
+
|
||||
+find_package(Threads REQUIRED)
|
||||
+set(OPENMP_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
|
||||
diff --git a/openmp/libomptarget/src/CMakeLists.txt b/openmp/libomptarget/src/CMakeLists.txt
|
||||
index 15e6c3bbaf1f..3e5a73504a08 100644
|
||||
--- a/openmp/libomptarget/src/CMakeLists.txt
|
||||
+++ b/openmp/libomptarget/src/CMakeLists.txt
|
||||
@@ -30,6 +30,7 @@ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMPTARGET_PROFILING))
|
||||
add_library(omptarget SHARED ${LIBOMPTARGET_SRC_FILES})
|
||||
target_link_libraries(omptarget
|
||||
${CMAKE_DL_LIBS}
|
||||
+ ${OPENMP_PTHREAD_LIB}
|
||||
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports")
|
||||
else()
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
@@ -37,6 +38,7 @@ else()
|
||||
)
|
||||
add_llvm_library(omptarget SHARED ${LIBOMPTARGET_SRC_FILES}
|
||||
LINK_LIBS ${CMAKE_DL_LIBS}
|
||||
+ ${OPENMP_PTHREAD_LIB}
|
||||
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports"
|
||||
)
|
||||
target_compile_definitions(omptarget PUBLIC OMPTARGET_PROFILE_ENABLED)
|
||||
15
var/spack/repos/builtin/packages/llvm/llvm13-fujitsu.patch
Normal file
15
var/spack/repos/builtin/packages/llvm/llvm13-fujitsu.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
--- spack-src/libcxx/include/__config.org 2022-02-03 14:36:11.000000000 +0900
|
||||
+++ spack-src/libcxx/include/__config 2022-02-04 08:39:59.000000000 +0900
|
||||
@@ -52,7 +52,11 @@
|
||||
# elif __cplusplus <= 201703L
|
||||
# define _LIBCPP_STD_VER 17
|
||||
# elif __cplusplus <= 202002L
|
||||
-# define _LIBCPP_STD_VER 20
|
||||
+# if defined(__FUJITSU) || defined(__CLANG_FUJITSU)
|
||||
+# define _LIBCPP_STD_VER 17
|
||||
+# else
|
||||
+# define _LIBCPP_STD_VER 20
|
||||
+# endif
|
||||
# else
|
||||
# define _LIBCPP_STD_VER 21 // current year, or date of c++2b ratification
|
||||
# endif
|
||||
19
var/spack/repos/builtin/packages/llvm/llvm13-thread.patch
Normal file
19
var/spack/repos/builtin/packages/llvm/llvm13-thread.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
--- spack-src/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake.org 2022-02-08 14:58:13.000000000 +0900
|
||||
+++ spack-src/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake 2022-02-08 13:58:53.000000000 +0900
|
||||
@@ -276,4 +276,5 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-set(OPENMP_PTHREAD_LIB ${LLVM_PTHREAD_LIB})
|
||||
+find_package(Threads REQUIRED)
|
||||
+set(OPENMP_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
|
||||
--- spack-src/openmp/libomptarget/src/CMakeLists.txt.org 2022-02-09 08:49:35.000000000 +0900
|
||||
+++ spack-src/openmp/libomptarget/src/CMakeLists.txt 2022-02-09 08:50:18.000000000 +0900
|
||||
@@ -36,6 +36,7 @@
|
||||
endif()
|
||||
target_link_libraries(omptarget PRIVATE
|
||||
${CMAKE_DL_LIBS}
|
||||
+ ${OPENMP_PTHREAD_LIB}
|
||||
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports")
|
||||
|
||||
# Install libomptarget under the lib destination folder.
|
||||
@@ -238,6 +238,8 @@ class Llvm(CMakePackage, CudaPackage):
|
||||
conflicts("%gcc@:5.0", when="@8:")
|
||||
# clang/lib: a lambda parameter cannot shadow an explicitly captured entity
|
||||
conflicts("%clang@8:", when="@:4")
|
||||
# Internal compiler error on gcc 8.4 on aarch64 https://bugzilla.redhat.com/show_bug.cgi?id=1958295
|
||||
conflicts('%gcc@8.4:8.4.9', when='@12: target=aarch64:')
|
||||
|
||||
# When these versions are concretized, but not explicitly with +libcxx, these
|
||||
# conflicts will enable clingo to set ~libcxx, making the build successful:
|
||||
@@ -347,6 +349,13 @@ class Llvm(CMakePackage, CudaPackage):
|
||||
|
||||
patch('llvm-gcc11.patch', when='@9:11%gcc@11:')
|
||||
|
||||
# add -lpthread to build OpenMP libraries with Fujitsu compiler
|
||||
patch('llvm12-thread.patch', when='@12 %fj')
|
||||
patch('llvm13-thread.patch', when='@13 %fj')
|
||||
|
||||
# avoid build failed with Fujitsu compiler
|
||||
patch('llvm13-fujitsu.patch', when='@13 %fj')
|
||||
|
||||
# The functions and attributes below implement external package
|
||||
# detection for LLVM. See:
|
||||
#
|
||||
|
||||
44
var/spack/repos/builtin/packages/madx/package.py
Normal file
44
var/spack/repos/builtin/packages/madx/package.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# Copyright 2013-2021 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 Madx(CMakePackage):
|
||||
"""MAD-X (Methodical Accelerator Design) is an application
|
||||
for designing particle accelerators."""
|
||||
|
||||
homepage = "https://github.com/MethodicalAcceleratorDesign/MAD-X"
|
||||
url = "https://github.com/MethodicalAcceleratorDesign/MAD-X/archive/refs/tags/5.07.00.tar.gz"
|
||||
git = "https://github.com/MethodicalAcceleratorDesign/MAD-X.git"
|
||||
|
||||
maintainers = ['wdconinc']
|
||||
|
||||
# Supported MAD-X versions
|
||||
version('5.08.01', sha256='89c943fcb474344a4f7d28de98e8eae0aec40f779bf908daff79043bf3520555')
|
||||
version('5.08.00', sha256='0b3fe2aca8899289ef7bfb98d745f13b8c4082e239f54f2662c9cad8d1e63a53')
|
||||
version('5.07.00', sha256='77c0ec591dc3ea76cf57c60a5d7c73b6c0d66cca1fa7c4eb25a9071e8fc67e60')
|
||||
|
||||
variant('x11', default=True, description='Turn on plotting using X11')
|
||||
|
||||
# patch for gcc-11 to avoid error due to variable shadowing
|
||||
patch('https://github.com/MethodicalAcceleratorDesign/MAD-X/commit/e7a434290df675b894f70026ce0c7c217330cce5.patch',
|
||||
sha256='ba9d00692250ab1eeeb7235a4ba7d899ecbbb4588f3ec08afc22d228dc1ea437',
|
||||
when='@:5.07.00')
|
||||
|
||||
depends_on('cmake@2.8:', type='build')
|
||||
|
||||
depends_on("libx11")
|
||||
depends_on("zlib")
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define('MADX_STATIC', False), # Turn on for static linking
|
||||
self.define('MADX_LAPACK', True), # Use system blas/lapack installation
|
||||
self.define('MADX_NTPSA', True), # Build with NTPSA
|
||||
self.define('MADX_ONLINE', False), # Build with Online model
|
||||
self.define_from_variant('MADX_X11', 'x11'), # Turn on plotting using X11
|
||||
]
|
||||
return args
|
||||
@@ -23,7 +23,8 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
|
||||
test_requires_compiler = True
|
||||
|
||||
version('master', branch='master')
|
||||
version('2.6.1', sha256='6cd83808c6e8bc7a44028e05112b3ab4e579bcc73202ed14733f66661127e213')
|
||||
version('2.6.2rc1', commit='5959b8783e45f1809812ed96ae762f38ee701972')
|
||||
version('2.6.1', sha256='6cd83808c6e8bc7a44028e05112b3ab4e579bcc73202ed14733f66661127e213', preferred=True)
|
||||
version('2.6.0', sha256='50cdd384f44f06a34469e7125f8b2ffae13c1975d373c3f1510d91be2b7638ec')
|
||||
version('2.5.4', sha256='7734fb417ae0c367b418dea15096aef2e278a423e527c615aab47f0683683b67')
|
||||
version('2.5.3', sha256='c602d269a9f9a3df28f6a4f593be819abb12ed3fa413bba1ff8183de721c5ef6')
|
||||
@@ -76,19 +77,31 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
|
||||
patch('cmake-W.patch', when='@2.5.0:%nvhpc')
|
||||
|
||||
@run_before('cmake')
|
||||
def generate_cuda(self):
|
||||
if '@master' in self.spec:
|
||||
backend = 'cuda'
|
||||
cuda_arch = self.spec.variants['cuda_arch'].value
|
||||
gpu_target = ' '.join('sm_{0}'.format(i) for i in cuda_arch)
|
||||
if '+rocm' in self.spec:
|
||||
backend = 'hip'
|
||||
gpu_target = self.spec.variants['amdgpu_target'].value
|
||||
with open('make.inc', 'w') as inc:
|
||||
inc.write('FORT = true\n')
|
||||
inc.write('GPU_TARGET = %s\n' % gpu_target)
|
||||
inc.write('BACKEND = %s\n' % backend)
|
||||
make('generate')
|
||||
def generate_gpu_config(self):
|
||||
"""If not an official release, a generation step is required to build"""
|
||||
spec = self.spec
|
||||
|
||||
# 2.6.2rc1 is not an official release
|
||||
should_generate = ('@master' in spec) or ('@2.6.2rc1' in spec)
|
||||
|
||||
if not should_generate:
|
||||
return
|
||||
|
||||
backend = 'cuda' if '+cuda' in spec else 'hip'
|
||||
|
||||
gpu_target = ''
|
||||
if '+cuda' in spec:
|
||||
cuda_archs = spec.variants['cuda_arch'].value
|
||||
gpu_target = ' '.join('sm_{0}'.format(i) for i in cuda_archs)
|
||||
else:
|
||||
gpu_target = spec.variants['amdgpu_target'].value
|
||||
|
||||
with open('make.inc', 'w') as inc:
|
||||
inc.write('FORT = true\n')
|
||||
inc.write('GPU_TARGET = {0}\n'.format(gpu_target))
|
||||
inc.write('BACKEND = {0}\n'.format(backend))
|
||||
|
||||
make('generate')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
@@ -13,14 +13,18 @@ class ManDb(AutotoolsPackage):
|
||||
flat-text whatis databases."""
|
||||
|
||||
homepage = "https://www.nongnu.org/man-db/"
|
||||
url = "https://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz"
|
||||
git = "https://gitlab.com/cjwatson/man-db"
|
||||
url = "https://download.savannah.nongnu.org/releases/man-db/man-db-2.10.1.tar.xz"
|
||||
|
||||
version('2.7.6.1', sha256='dd913662e341fc01e6721878b6cbe1001886cc3bfa6632b095937bba3238c779')
|
||||
version('2.10.1', sha256='2ffd8f2e80122fe72e60c740c851e6a3e15c9a7921185eb4752c1c672824bed6')
|
||||
version('2.7.6.1', sha256='08edbc52f24aca3eebac429b5444efd48b9b90b9b84ca0ed5507e5c13ed10f3f')
|
||||
|
||||
depends_on('autoconf')
|
||||
depends_on('automake')
|
||||
depends_on('pkgconf', type='build')
|
||||
depends_on('gettext')
|
||||
depends_on('libpipeline')
|
||||
depends_on('libpipeline@1.5.0:', when='@2.8.0:')
|
||||
depends_on('libpipeline@1.4.0:', when='@2.7.1:')
|
||||
depends_on('libpipeline@1.3.0:', when='@2.6.7:')
|
||||
depends_on('libpipeline@1.1.0:', when='@2.6.0:')
|
||||
depends_on('flex')
|
||||
depends_on('gdbm')
|
||||
depends_on('groff', type=('build', 'link', 'run'))
|
||||
@@ -38,3 +42,6 @@ def configure_args(self):
|
||||
'--with-systemdtmpfilesdir={0}/tmp'.format(self.prefix)
|
||||
]
|
||||
return args
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('install', 'DESTDIR=%s' % prefix)
|
||||
|
||||
@@ -44,7 +44,7 @@ class Mesa(MesonPackage):
|
||||
depends_on('zlib@1.2.3:')
|
||||
|
||||
# Internal options
|
||||
variant('llvm', default=True, description="Enable LLVM.")
|
||||
variant('llvm', default=False, description="Enable LLVM.")
|
||||
_SWR_AUTO_VALUE = 'auto'
|
||||
_SWR_ENABLED_VALUES = (_SWR_AUTO_VALUE, 'avx', 'avx2', 'knl', 'skx')
|
||||
_SWR_DISABLED_VALUES = ('none',)
|
||||
|
||||
@@ -41,7 +41,7 @@ class Mesa18(AutotoolsPackage):
|
||||
depends_on('ncurses+termlib')
|
||||
|
||||
# Internal options
|
||||
variant('llvm', default=True, description="Enable LLVM.")
|
||||
variant('llvm', default=False, description="Enable LLVM.")
|
||||
_SWR_ENABLED_VALUES = ('avx', 'avx2', 'knl', 'skx')
|
||||
variant('swr', values=any_combination_of(*_SWR_ENABLED_VALUES),
|
||||
description="Enable the SWR driver.")
|
||||
|
||||
@@ -16,6 +16,7 @@ class Meshtool(MakefilePackage):
|
||||
|
||||
version('master', branch='master')
|
||||
# Version to use with openCARP releases
|
||||
version('oc9.0', commit='6c5cfbd067120901f15a04bf63beec409bda6dc9')
|
||||
version('oc8.2', commit='6c5cfbd067120901f15a04bf63beec409bda6dc9')
|
||||
version('oc8.1', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9")
|
||||
version('oc7.0', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9")
|
||||
|
||||
@@ -13,6 +13,7 @@ class Mumps(Package):
|
||||
homepage = "http://mumps.enseeiht.fr"
|
||||
url = "http://mumps.enseeiht.fr/MUMPS_5.3.5.tar.gz"
|
||||
|
||||
version('5.4.1', sha256='93034a1a9fe0876307136dcde7e98e9086e199de76f1c47da822e7d4de987fa8')
|
||||
version('5.4.0', sha256='c613414683e462da7c152c131cebf34f937e79b30571424060dd673368bbf627')
|
||||
version('5.3.5', sha256='e5d665fdb7043043f0799ae3dbe3b37e5b200d1ab7a6f7b2a4e463fd89507fa4')
|
||||
version('5.3.3', sha256='27e7749ac05006bf8e81a457c865402bb72a42bf3bc673da49de1020f0f32011')
|
||||
|
||||
@@ -14,7 +14,7 @@ class Mvapich2(AutotoolsPackage):
|
||||
platforms (x86 (Intel and AMD), ARM and OpenPOWER)"""
|
||||
|
||||
homepage = "https://mvapich.cse.ohio-state.edu/userguide/userguide_spack/"
|
||||
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.6.tar.gz"
|
||||
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.7.tar.gz"
|
||||
list_url = "https://mvapich.cse.ohio-state.edu/downloads/"
|
||||
|
||||
maintainers = ['natshineman', 'harisubramoni', 'ndcontini']
|
||||
@@ -22,6 +22,7 @@ class Mvapich2(AutotoolsPackage):
|
||||
executables = ['^mpiname$']
|
||||
|
||||
# Prefer the latest stable release
|
||||
version('2.3.7', sha256='4b6ad2c8c270e1fabcd073c49edb6bf95af93780f4a487bc48404a8ca384f34e')
|
||||
version('2.3.6', sha256='b3a62f2a05407191b856485f99da05f5e769d6381cd63e2fcb83ee98fc46a249')
|
||||
version('2.3.5', sha256='f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c')
|
||||
version('2.3.4', sha256='7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a')
|
||||
|
||||
@@ -16,6 +16,7 @@ class Nss(MakefilePackage):
|
||||
homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
|
||||
url = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_67_RTM/src/nss-3.67.tar.gz"
|
||||
|
||||
version('3.75', sha256='fd571507827284644f4dd522a032acda2286835f6683ed22a1c2d3878cc58582')
|
||||
version('3.73', sha256='566d3a68da9b10d7da9ef84eb4fe182f8f04e20d85c55d1bf360bb2c0096d8e5')
|
||||
# Everything before 3.73 is vulnerable (CVE-2021-43527)
|
||||
version('3.67', sha256='f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f', deprecated=True)
|
||||
|
||||
@@ -18,7 +18,8 @@ class Opencarp(CMakePackage):
|
||||
|
||||
maintainers = ['MarieHouillon']
|
||||
|
||||
version('8.2', commit='dbfd16fd', submodules=False, no_cache=True, preferred=True)
|
||||
version('9.0', commit='c0167599', submodules=False, no_cache=True, preferred=True)
|
||||
version('8.2', commit='dbfd16fd', submodules=False, no_cache=True)
|
||||
version('8.1', commit='28eb2e97', submodules=False, no_cache=True)
|
||||
version('7.0', commit='78da9195', submodules=False, no_cache=True)
|
||||
version('master', branch='master', submodules=False, no_cache=True)
|
||||
@@ -34,14 +35,14 @@ class Opencarp(CMakePackage):
|
||||
depends_on('binutils')
|
||||
depends_on('gengetopt')
|
||||
depends_on('pkgconfig')
|
||||
depends_on('python@:3.8')
|
||||
depends_on('python')
|
||||
depends_on('zlib')
|
||||
depends_on('perl')
|
||||
|
||||
depends_on('py-carputils')
|
||||
depends_on('meshtool')
|
||||
# Use specific versions of carputils and meshtool for releases
|
||||
for ver in ['8.2', '7.0', '8.1']:
|
||||
for ver in ['9.0', '8.2', '7.0', '8.1']:
|
||||
depends_on('py-carputils@oc' + ver, when='@' + ver + ' +carputils')
|
||||
depends_on('meshtool@oc' + ver, when='@' + ver + ' +meshtool')
|
||||
|
||||
|
||||
@@ -92,6 +92,9 @@ class Paraview(CMakePackage, CudaPackage):
|
||||
conflicts('build_edition=core', when='@:5.7')
|
||||
# before 5.3.0, ParaView didn't have VTK-m
|
||||
conflicts('use_vtkm=on', when='@:5.3')
|
||||
# paraview@5.9.0 is recommended when using the xl compiler
|
||||
# See https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4433
|
||||
conflicts('paraview@:5.8', when='%xl_r', msg='Use paraview@5.9.0 with %xl_r. Earlier versions are not able to build with xl.')
|
||||
|
||||
# We only support one single Architecture
|
||||
for _arch, _other_arch in itertools.permutations(CudaPackage.cuda_arch_values, 2):
|
||||
@@ -219,6 +222,10 @@ class Paraview(CMakePackage, CudaPackage):
|
||||
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653
|
||||
patch('vtk-adios2-module-no-kit.patch', when='@5.8:5.10')
|
||||
|
||||
# Patch for paraview 5.9.0%xl_r
|
||||
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7591
|
||||
patch('xlc-compilation-pv590.patch', when='@5.9.0%xl_r')
|
||||
|
||||
@property
|
||||
def generator(self):
|
||||
# https://gitlab.kitware.com/paraview/paraview/-/issues/21223
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
diff --git a/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx b/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
|
||||
index 514c0ee..66edca2 100644
|
||||
--- a/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
|
||||
+++ b/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
|
||||
@@ -356,7 +356,7 @@ void vtkStaticCellLinksTemplate<TIds>::ThreadedBuildLinks(
|
||||
|
||||
// Create an array of atomics with initial count=0. This will keep
|
||||
// track of point uses. Count them in parallel.
|
||||
- std::atomic<TIds>* counts = new std::atomic<TIds>[numPts] {};
|
||||
+ std::atomic<TIds>* counts = new std::atomic<TIds>[numPts] ();
|
||||
CountUses<TIds> count(cellArray, counts);
|
||||
vtkSMPTools::For(0, numCells, count);
|
||||
|
||||
diff --git a/VTK/Filters/Core/vtkBinnedDecimation.cxx b/VTK/Filters/Core/vtkBinnedDecimation.cxx
|
||||
index 0736c56..8403908 100644
|
||||
--- a/VTK/Filters/Core/vtkBinnedDecimation.cxx
|
||||
+++ b/VTK/Filters/Core/vtkBinnedDecimation.cxx
|
||||
@@ -632,7 +632,7 @@ void BinPointsDecimate(int genMode, vtkIdType numPts, PointsT* pts, vtkPointData
|
||||
// is a problem because a ptId can == zero; as a workaround, we'll
|
||||
// initially use negative ids, and convert to positive ids in the
|
||||
// final composition.
|
||||
- std::atomic<TIds>* ptMap = new std::atomic<TIds>[numBins] {};
|
||||
+ std::atomic<TIds>* ptMap = new std::atomic<TIds>[numBins] ();
|
||||
|
||||
// Is the triangle output? And eventually the offset into the output cell array.
|
||||
TIds* triMap = new TIds[numTris + 1];
|
||||
diff --git a/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx b/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
|
||||
index 15e47a1..7baef33 100644
|
||||
--- a/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
|
||||
+++ b/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
|
||||
@@ -348,7 +348,7 @@ struct PointConnectivity : PointConnectivityBase
|
||||
// accommodate more smoothing edges (although after a certain point,
|
||||
// additional edges make little difference, especially at the cost of
|
||||
// memory and speed).
|
||||
- this->Offsets = new std::atomic<TIds>[this->NumPts + 1] {}; // Initialized to zero
|
||||
+ this->Offsets = new std::atomic<TIds>[this->NumPts + 1] (); // Initialized to zero
|
||||
this->Edges = nullptr; // initially until constructed
|
||||
this->EdgeCounts = new EDGE_COUNT_TYPE[this->NumPts]; // values set later
|
||||
}
|
||||
@@ -16,16 +16,16 @@ class Parsec(CMakePackage, CudaPackage):
|
||||
"""
|
||||
|
||||
homepage = "https://icl.utk.edu/dte"
|
||||
git = "https://bitbucket.org/icldistcomp/parsec.git"
|
||||
url = "https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2012.tar.bz2"
|
||||
list_url = "https://bitbucket.org/icldistcomp/parsec/downloads/?tab=tags"
|
||||
git = "https://github.com/icldisco/parsec.git"
|
||||
url = "https://github.com/ICLDisco/parsec/archive/refs/tags/parsec-3.0.2012.tar.gz"
|
||||
list_url = "https://github.com/ICLDisco/parsec/tags"
|
||||
maintainers = ['abouteiller', 'bosilca', 'herault']
|
||||
tags = ['e4s']
|
||||
tags = ['e4s']
|
||||
|
||||
test_requires_compiler = True
|
||||
|
||||
version('master', branch='master')
|
||||
version('3.0.2012', sha256='f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc')
|
||||
version('3.0.2012', sha256='f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc', url='https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2012.tar.bz2')
|
||||
version('1.1.0', sha256='d2928033c121000ae0a554f1e7f757c1f22274a8b74457ecd52744ae1f70b95a', url='https://bitbucket.org/icldistcomp/parsec/get/v1.1.0.tar.bz2')
|
||||
|
||||
variant('build_type', default='RelWithDebInfo', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo'))
|
||||
@@ -38,7 +38,7 @@ class Parsec(CMakePackage, CudaPackage):
|
||||
# TODO: Spack does not handle cross-compilation atm
|
||||
# variant('xcompile', default=False, description='Cross compile')
|
||||
|
||||
depends_on('cmake@3.16:', type='build')
|
||||
depends_on('cmake@3.18:', type='build')
|
||||
depends_on('python', type='build')
|
||||
depends_on('flex', type='build')
|
||||
depends_on('bison', type='build')
|
||||
|
||||
@@ -16,6 +16,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
|
||||
url = "https://github.com/pika-org/pika/archive/0.0.0.tar.gz"
|
||||
maintainers = ['msimberg', 'albestro', 'teonnik']
|
||||
|
||||
version('0.2.0', sha256='712bb519f22bdc9d5ee4ac374d251a54a0af4c9e4e7f62760b8ab9a177613d12')
|
||||
version('0.1.0', sha256='aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327')
|
||||
version('main', git='https://github.com/pika-org/pika.git', branch='main')
|
||||
|
||||
@@ -44,6 +45,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
variant('examples', default=False, description='Build and install examples')
|
||||
variant('mpi', default=False, description='Enable MPI support')
|
||||
variant('apex', default=False, description='Enable APEX support', when='@0.2.0:')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('git', type='build')
|
||||
@@ -63,6 +65,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('cuda@11:', when='+cuda')
|
||||
depends_on('apex', when='+apex')
|
||||
|
||||
for cxxstd in cxxstds:
|
||||
depends_on(
|
||||
@@ -89,6 +92,7 @@ def cmake_args(self):
|
||||
self.define_from_variant('PIKA_WITH_CUDA', 'cuda'),
|
||||
self.define_from_variant('PIKA_WITH_HIP', 'rocm'),
|
||||
self.define_from_variant('PIKA_WITH_MPI', 'mpi'),
|
||||
self.define_from_variant('PIKA_WITH_APEX', 'apex'),
|
||||
self.define('PIKA_WITH_TESTS', self.run_tests),
|
||||
self.define_from_variant(
|
||||
'PIKA_WITH_GENERIC_CONTEXT_COROUTINES', 'generic_coroutines'),
|
||||
|
||||
@@ -11,6 +11,7 @@ class PyBilliard(PythonPackage):
|
||||
|
||||
pypi = "billiard/billiard-3.5.0.5.tar.gz"
|
||||
|
||||
version('3.6.4.0', sha256='299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547')
|
||||
version('3.6.3.0', sha256='d91725ce6425f33a97dfa72fb6bfef0e47d4652acd98a032bd1a7fbf06d5fa6a')
|
||||
version('3.6.1.0', sha256='b8809c74f648dfe69b973c8e660bcec00603758c9db8ba89d7719f88d5f01f26')
|
||||
version('3.6.0.0', sha256='756bf323f250db8bf88462cd042c992ba60d8f5e07fc5636c24ba7d6f4261d84')
|
||||
|
||||
@@ -14,20 +14,21 @@ class PyCarputils(PythonPackage):
|
||||
|
||||
version('master', branch='master')
|
||||
# Version to use with openCARP releases
|
||||
version('oc9.0', commit='e79e66b25c7bfaf405fad595019594ab9aa83392')
|
||||
version('oc8.2', commit='e60f639c0f39ad71c8ae11814de1f3aa726e8352')
|
||||
version('oc8.1', commit='a4210fcb0fe17226a1744ee9629f85b629decba3')
|
||||
version('oc7.0', commit='4c04db61744f2fb7665594d7c810699c5c55c77c')
|
||||
|
||||
depends_on('git')
|
||||
|
||||
depends_on('python@:3.8', type=('build', 'run'))
|
||||
depends_on('python', type=('build', 'run'))
|
||||
depends_on('py-pip', type='build')
|
||||
depends_on('py-numpy@1.14.5:', type=('build', 'run'))
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-python-dateutil', type='run')
|
||||
depends_on('py-scipy@:1.5.4', type='run')
|
||||
depends_on('py-matplotlib@:3.3.3', type='run')
|
||||
depends_on('py-pandas@:1.1.4', type='run')
|
||||
depends_on('py-tables@3.6.1', type='run')
|
||||
depends_on('py-six@:1.14.0', type='run')
|
||||
depends_on('py-scipy@1.5.0:', type='run')
|
||||
depends_on('py-matplotlib@3.0.0:', type='run')
|
||||
depends_on('py-pandas', type='run')
|
||||
depends_on('py-tables@3.6.1:', type='run')
|
||||
depends_on('py-six@1.12.0:', type='run')
|
||||
depends_on('py-ruamel-yaml', type='run')
|
||||
|
||||
@@ -65,8 +65,8 @@ class PyCelery(PythonPackage):
|
||||
depends_on('py-click-repl@0.2.0:', when="@5.2.0:", type=('build', 'run'))
|
||||
depends_on('py-pytz@2019.3:', type=('build', 'run'))
|
||||
depends_on('py-pytz@2021.3:', type=('build', 'run'), when="@5.2.3")
|
||||
depends_on('py-billiard@3.6.3:3', type=('build', 'run'))
|
||||
depends_on('py-billiard@3.6.4:3', type=('build', 'run'), when="@5.2.3")
|
||||
depends_on('py-billiard@3.6.3.0:3', type=('build', 'run'))
|
||||
depends_on('py-billiard@3.6.4.0:3', type=('build', 'run'), when="@5.2.3")
|
||||
depends_on('py-kombu@4.6.11', when="@4.3.0:4", type=('build', 'run'))
|
||||
depends_on('py-kombu@5.0.0:', when="@5.0.0:5.0", type=('build', 'run'))
|
||||
depends_on('py-kombu@5.2.3:5', when="@5.2.0:5.2", type=('build', 'run'))
|
||||
|
||||
21
var/spack/repos/builtin/packages/py-colorio/package.py
Normal file
21
var/spack/repos/builtin/packages/py-colorio/package.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Copyright 2013-2022 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 PyColorio(PythonPackage):
|
||||
"""Tools for color research"""
|
||||
|
||||
homepage = "https://github.com/nschloe/colorio"
|
||||
pypi = "colorio/colorio-0.11.2.tar.gz"
|
||||
|
||||
version('0.11.2', sha256='aa45d8e0a2e506c4019d4fb488d34a107d7f803c8e8ff355e2e57c01f6f1cd81')
|
||||
|
||||
depends_on('python@3.7:', type=('build', 'run'))
|
||||
depends_on('py-flit-core@3.2:3.6', type='build')
|
||||
depends_on('py-numpy@1.20:', type=('build', 'run'))
|
||||
depends_on('py-matplotlib', type=('build', 'run'))
|
||||
depends_on('py-npx', type=('build', 'run'))
|
||||
23
var/spack/repos/builtin/packages/py-control/package.py
Normal file
23
var/spack/repos/builtin/packages/py-control/package.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# Copyright 2013-2022 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 PyControl(PythonPackage):
|
||||
"""The Python Control Systems Library is a Python module that implements
|
||||
basic operations for analysis and design of feedback control systems."""
|
||||
|
||||
homepage = "https://python-control.org/"
|
||||
pypi = "control/control-0.9.1.tar.gz"
|
||||
|
||||
maintainers = ['haralmha']
|
||||
|
||||
version('0.9.1', sha256='8c9084bf386eafcf5d74008f780fae6dec68d243d18a380c866ac10a3549f8d3')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-numpy', type=('build', 'run'))
|
||||
depends_on('py-scipy', type=('build', 'run'))
|
||||
depends_on('py-matplotlib', type=('build', 'run'))
|
||||
@@ -11,6 +11,7 @@ class PyFutures(PythonPackage):
|
||||
|
||||
pypi = "futures/futures-3.0.5.tar.gz"
|
||||
|
||||
version('3.3.0', sha256='7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794')
|
||||
version('3.2.0', sha256='9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265')
|
||||
version('3.0.5', sha256='0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df')
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ class PyGoogleapisCommonProtos(PythonPackage):
|
||||
homepage = "https://github.com/googleapis/googleapis"
|
||||
pypi = "googleapis-common-protos/googleapis-common-protos-1.6.0.tar.gz"
|
||||
|
||||
version('1.55.0', sha256='53eb313064738f45d5ac634155ae208e121c963659627b90dfcb61ef514c03e1')
|
||||
version('1.6.0', sha256='e61b8ed5e36b976b487c6e7b15f31bb10c7a0ca7bd5c0e837f4afab64b53a0c6')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-protobuf@3.6.0:', type=('build', 'run'))
|
||||
depends_on('py-protobuf@3.6.0:3', type=('build', 'run'))
|
||||
depends_on('py-protobuf@3.12.0:3', type=('build', 'run'), when='@1.55.0:')
|
||||
|
||||
@@ -36,38 +36,39 @@ class PyH5py(PythonPackage):
|
||||
variant('mpi', default=True, description='Build with MPI support')
|
||||
|
||||
# Python versions
|
||||
depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:3.1')
|
||||
depends_on('python@3.7:', type=('build', 'run'), when='@3.2.0:')
|
||||
depends_on('python@3.6:', type=('build', 'run'), when='@3:3.1')
|
||||
depends_on('python@3.7:', type=('build', 'run'), when='@3.2:')
|
||||
|
||||
# Build dependencies
|
||||
depends_on('py-cython@0.23:', type='build', when='@:2')
|
||||
depends_on('py-cython@0.29:', type=('build'), when='@3.0.0:^python@:3.7')
|
||||
depends_on('py-cython@0.29.14:', type=('build'), when='@3.0.0:^python@3.8.0:3.8')
|
||||
depends_on('py-cython@0.29.15:', type=('build'), when='@3.0.0:^python@3.9.0:')
|
||||
depends_on('py-cython@0.29:', type=('build'), when='@3: ^python@:3.7')
|
||||
depends_on('py-cython@0.29.14:', type=('build'), when='@3: ^python@3.8.0:3.8')
|
||||
depends_on('py-cython@0.29.15:', type=('build'), when='@3: ^python@3.9.0:')
|
||||
depends_on('py-pkgconfig', type='build')
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-wheel', type='build', when='@3.0.0:')
|
||||
depends_on('py-wheel', type='build', when='@3:')
|
||||
|
||||
# Build and runtime dependencies
|
||||
depends_on('py-cached-property@1.5:', type=('build', 'run'), when='^python@:3.7')
|
||||
depends_on('py-numpy@1.7:', type=('build', 'run'), when='@:2')
|
||||
depends_on('py-numpy@1.12:', type=('build', 'run'), when='@3.0.0:^python@3.6.0:3.6')
|
||||
depends_on('py-numpy@1.14.5:', type=('build', 'run'), when='@3.0.0:^python@3.7.0:3.7')
|
||||
depends_on('py-numpy@1.17.5:', type=('build', 'run'), when='@3.0.0:^python@3.8.0:3.8')
|
||||
depends_on('py-numpy@1.19.3:', type=('build', 'run'), when='@3.0.0:^python@3.9.0:')
|
||||
depends_on('py-numpy@1.12:', type=('build', 'run'), when='@3: ^python@3.6.0:3.6')
|
||||
depends_on('py-numpy@1.14.5:', type=('build', 'run'), when='@3: ^python@3.7.0:3.7')
|
||||
depends_on('py-numpy@1.17.5:', type=('build', 'run'), when='@3: ^python@3.8.0:3.8')
|
||||
depends_on('py-numpy@1.19.3:', type=('build', 'run'), when='@3: ^python@3.9.0:')
|
||||
depends_on('py-six', type=('build', 'run'), when='@:2')
|
||||
|
||||
# Link dependencies
|
||||
depends_on('hdf5@1.8.4:1.11+hl', when='@:2')
|
||||
depends_on('hdf5@1.8.4:+hl', when='@3.0.0:')
|
||||
# Link dependencies (py-h5py v2 cannot build against HDF5 1.12 regardless
|
||||
# of API setting)
|
||||
depends_on('hdf5@1.8.4:1.11 +hl', when='@:2')
|
||||
depends_on('hdf5@1.8.4: +hl', when='@3:')
|
||||
|
||||
# MPI dependencies
|
||||
depends_on('hdf5+mpi', when='+mpi')
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('py-mpi4py', when='@:2 +mpi', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3.0.0:', when='@3.0.0:3.2+mpi^python@3.0.0:3.7', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3.0.2:', when='@3.3.0:+mpi^python@3.0.0:3.7', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3.0.3:', when='@3.0.0:+mpi^python@3.8.0:', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3:', when='@3:3.2+mpi^python@3:3.7', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3.0.2:', when='@3.3.0:+mpi^python@3:3.7', type=('build', 'run'))
|
||||
depends_on('py-mpi4py@3.0.3:', when='@3:+mpi^python@3.8.0:', type=('build', 'run'))
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set('HDF5_DIR', self.spec['hdf5'].prefix)
|
||||
|
||||
@@ -19,6 +19,7 @@ class PyImportlibMetadata(PythonPackage):
|
||||
version('3.10.1', sha256='c9356b657de65c53744046fa8f7358afe0714a1af7d570c00c3835c2d724a7c1')
|
||||
version('3.10.0', sha256='c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a')
|
||||
version('2.0.0', sha256='77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da')
|
||||
version('1.7.0', sha256='90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83')
|
||||
version('1.2.0', sha256='41e688146d000891f32b1669e8573c57e39e5060e7f5f647aa617cd9a9568278')
|
||||
version('0.23', sha256='aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26')
|
||||
version('0.19', sha256='23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8')
|
||||
|
||||
@@ -16,11 +16,19 @@ class PyJupytext(PythonPackage):
|
||||
|
||||
maintainers = ['vvolkl']
|
||||
|
||||
version('1.13.6', sha256='c6c25918ddb6403d0d8504e08d35f6efc447baf0dbeb6a28b73adf39e866a0c4')
|
||||
version('1.13.0', sha256='fb220af65d2bd32d01c779b0e935c4c2b71e3f5f2f01bf1bab10d5f23fe121d4')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('python@3.6:3', type=('build', 'run'))
|
||||
depends_on('py-setuptools@40.8.0:', type='build')
|
||||
depends_on('py-nbformat', type=('build', 'run'))
|
||||
depends_on('py-pyyaml', type=('build', 'run'))
|
||||
depends_on('py-toml', type=('build', 'run'))
|
||||
depends_on('py-mdit-py-plugins', type=('build', 'run'))
|
||||
depends_on('py-markdown-it-py@1.0:1', type=('build', 'run'))
|
||||
# todo: in order to use jupytext as a jupyterlab extension,
|
||||
# some additional dependencies need to be added (and checked):
|
||||
depends_on('py-jupyterlab@3', type=('build', 'run'))
|
||||
# TODO: replace this after concretizer learns how to concretize separate build deps
|
||||
depends_on('py-jupyter-packaging7', type='build')
|
||||
# depends_on('py-jupyter-packaging@0.7.9:0.7', type='build')```
|
||||
|
||||
@@ -10,13 +10,16 @@ class PyMako(PythonPackage):
|
||||
"""A super-fast templating language that borrows the best
|
||||
ideas from the existing templating languages."""
|
||||
|
||||
homepage = "https://www.makotemplates.org/"
|
||||
pypi = "Mako/Mako-1.0.1.tar.gz"
|
||||
git = "https://github.com/sqlalchemy/mako"
|
||||
|
||||
version('1.1.6', sha256='4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2')
|
||||
version('1.1.5', sha256='169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3')
|
||||
version('1.1.4', sha256='17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab')
|
||||
version('1.0.4', sha256='fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059')
|
||||
version('1.0.1', sha256='45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c')
|
||||
|
||||
depends_on('python@2.7:2,3.4:', when='@1.1.0:', type=('build', 'run'))
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-markupsafe@0.9.2:', type=('build', 'run'))
|
||||
depends_on('python@2.7:2,3.4:', when='@1.1.0:')
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
class PyMatplotlibInline(PythonPackage):
|
||||
"""Inline Matplotlib backend for Jupyter."""
|
||||
|
||||
homepage = "https://github.com/martinRenou/matplotlib-inline"
|
||||
homepage = "https://github.com/ipython/matplotlib-inline"
|
||||
pypi = "matplotlib-inline/matplotlib-inline-0.1.2.tar.gz"
|
||||
|
||||
version('0.1.3', sha256='a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee')
|
||||
version('0.1.2', sha256='f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e')
|
||||
|
||||
depends_on('python@3.5:', type=('build', 'run'))
|
||||
|
||||
@@ -7,24 +7,24 @@
|
||||
|
||||
|
||||
class PyMistune(PythonPackage):
|
||||
"""
|
||||
Python markdown parser
|
||||
"""
|
||||
homepage = "https://mistune.readthedocs.org/en/latest/"
|
||||
url = "https://github.com/lepture/mistune/archive/v0.7.1.tar.gz"
|
||||
"""A sane Markdown parser with useful plugins and renderers."""
|
||||
|
||||
version('0.8.4', sha256='a1443771ea9ed7268a0cb3cf31462604ae148938ba32070bd5c54545f8f36a5d')
|
||||
version('0.8.3', sha256='666c93fc10cb0aa924a373898a709eba4d43f4e453264a4c7396878ec8145a4a')
|
||||
version('0.8.2', sha256='997c6d723350093760ccd48b722344b3330a5f947dec264e129160b85037784e')
|
||||
version('0.8.1', sha256='77ae24a5accfd62d23f945d7e6598392194f8ca6ef1bd70ddc81e151ac3eb1fe')
|
||||
version('0.8', sha256='f479dc2ceac7d593231e77448cb5cf7194fdbebad1d88fcdb78eacac1c042f6e')
|
||||
version('0.7.4', sha256='5030d5e3e0ec90fbdaed0f52d3c756ffb30e4ab46c3de159c97482c09569abcb')
|
||||
version('0.7.3', sha256='c4f391e61d3b5e8fbb112669a5c6960fb04b71b61d35f0f09a201809545b1676')
|
||||
version('0.7.2', sha256='a3fe17dfad99bd353485879a5c05827dd2932219da8b078212a21797f6cdbf0b')
|
||||
version('0.7.1', sha256='d6684534174caa30e0169e106a7152aee14507796a610b76be9fe9b335b18410')
|
||||
version('0.7', sha256='9b2cac8053d21dde5f2b3edb01948dac8ee5c3a85eeeeb6913c3ddf2f773c7b6')
|
||||
version('0.6', sha256='c2d976c06c099edb525b8ac3745f3d3b5c49af6189edb6de390ddf9c248913cf')
|
||||
version('0.5.1', sha256='c4ecfbb99acbb034c4f4580496502bde6b33f3dfc47873c59ee7e509c05dc822')
|
||||
version('0.5', sha256='3320b7fd80e44a1ac27658e19e67215f464c080b02c8af9fce57050d411560d2')
|
||||
homepage = "https://github.com/lepture/mistune"
|
||||
pypi = "mistune/mistune-2.0.2.tar.gz"
|
||||
|
||||
version('2.0.2', sha256='6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1')
|
||||
version('0.8.4', sha256='59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e')
|
||||
version('0.8.3', sha256='bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619')
|
||||
version('0.8.2', sha256='c50f2fb3a058120c5696f08af9d57877a9c76e879f19af5835fb2c6a4e56a67b')
|
||||
version('0.8.1', sha256='4c0f66924ce28f03b95b210ea57e57bd0b59f479edd91c2fa4fe59331eae4a82')
|
||||
version('0.8', sha256='dc3f43e7cf0abb95cdfecbf82d85c419108d5f13e1844b2a8a2fc0abf24c7a47')
|
||||
version('0.7.4', sha256='8517af9f5cd1857bb83f9a23da75aa516d7538c32a2c5d5c56f3789a9e4cd22f')
|
||||
version('0.7.3', sha256='21d0e869df3b9189f248e022f1c9763cf9069e1a2f00676f1f1852bd7f98b713')
|
||||
version('0.7.2', sha256='626f2516adcde4af608eaf83635ff20ff7e577c1898ad4d0f0fcd8c094399840')
|
||||
version('0.7.1', sha256='6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7')
|
||||
version('0.7', sha256='1daa2e55f5de63ecde7c446c4677c0447006752f78ad2c9c1c3c3452d395f89f')
|
||||
version('0.6', sha256='d54a69365d01bc97412a39c11674a8aae3f333586e91f38895cc1ad818e13dc5')
|
||||
version('0.5.1', sha256='cc66489a28845c0e1848ae290af5b555074eb76185136ca058e8eed1faa89692')
|
||||
version('0.5', sha256='d53d868cfd10cf757160e88adb5760fce95f7026a243f15a02b7c604238e5869')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Copyright 2013-2022 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 PyMlCollections(PythonPackage):
|
||||
"""ML Collections is a library of Python collections designed for ML usecases."""
|
||||
|
||||
homepage = "https://https://github.com/google/ml_collections"
|
||||
pypi = "ml_collections/ml_collections-0.1.0.tar.gz"
|
||||
|
||||
version('0.1.1', sha256='3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc')
|
||||
|
||||
depends_on('python@2.6:', type=('build', 'run'))
|
||||
depends_on('py-setuptools', type=('build', 'run'))
|
||||
depends_on('py-pyyaml', type=('build', 'run'))
|
||||
depends_on('py-absl-py', type=('build', 'run'))
|
||||
depends_on('py-six', type=('build', 'run'))
|
||||
depends_on('py-contextlib2', type=('build', 'run'))
|
||||
depends_on('py-dataclasses', type=('build', 'run'), when='python@:3.6')
|
||||
depends_on('py-typing', type=('build', 'run'), when='python@:3.5')
|
||||
@@ -3,19 +3,23 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class PyMultidict(PythonPackage):
|
||||
"""Multidict is dict-like collection of key-value pairs where key
|
||||
might be occurred more than once in the container."""
|
||||
|
||||
homepage = "https://github.com/aio-libs/multidict"
|
||||
url = "https://github.com/aio-libs/multidict/archive/v4.7.6.tar.gz"
|
||||
pypi = "multidict/multidict-6.0.2.tar.gz"
|
||||
|
||||
version('5.2.0', sha256='70039c8d0f4883816de230619c9d4ee1b8527b3628a42783e8bc26de4fee1154')
|
||||
version('5.1.0', sha256='1798708288851b808d2d03ea6046ca51bc44c228aaea12c9643a0a481ee41d8c')
|
||||
version('4.7.6', sha256='449035f89a12f189579ff83811424c71e4a39e335bcb8045145ad084b7bde2dc')
|
||||
version('6.0.2', sha256='5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013')
|
||||
version('5.2.0', sha256='0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce')
|
||||
version('5.1.0', sha256='25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5')
|
||||
version('4.7.6', sha256='fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-setuptools@40:', type='build', when='@5.1.0:')
|
||||
depends_on('python@3.7:', when='@6:', type=('build', 'run'))
|
||||
depends_on('python@3.6:', when='@5.1:', type=('build', 'run'))
|
||||
depends_on('python@3.5:', type=('build', 'run'))
|
||||
depends_on('python@3.6:', type=('build', 'run'), when='@5.1.0:')
|
||||
depends_on('py-pip@18:', when='@:4', type='build')
|
||||
depends_on('py-setuptools@40:', type='build')
|
||||
|
||||
19
var/spack/repos/builtin/packages/py-npx/package.py
Normal file
19
var/spack/repos/builtin/packages/py-npx/package.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# Copyright 2013-2022 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 PyNpx(PythonPackage):
|
||||
"""Some useful extensions for NumPy"""
|
||||
|
||||
homepage = "https://github.com/nschloe/npx"
|
||||
pypi = "npx/npx-0.1.0.tar.gz"
|
||||
|
||||
version('0.1.0', sha256='3edec9508326b6724d7c176dbcba2098508788241b8a671aab583d0c72b2f05b')
|
||||
|
||||
depends_on('python@3.7:', type=('build', 'run'))
|
||||
depends_on('py-flit-core@3.2:3', type='build')
|
||||
depends_on('py-numpy@1.20.0:', type=('build', 'run'))
|
||||
23
var/spack/repos/builtin/packages/py-param/package.py
Normal file
23
var/spack/repos/builtin/packages/py-param/package.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# Copyright 2013-2022 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 PyParam(PythonPackage):
|
||||
"""Param is a library providing Parameters: Python attributes extended to have
|
||||
features such as type and range checking, dynamically generated values,
|
||||
documentation strings, default values, etc., each of which is inherited from
|
||||
parent classes if not specified in a subclass."""
|
||||
|
||||
homepage = "https://param.holoviz.org/"
|
||||
pypi = "param/param-1.12.0.tar.gz"
|
||||
|
||||
maintainers = ['haralmha']
|
||||
|
||||
version('1.12.0', sha256='35d0281c8e3beb6dd469f46ff0b917752a54bed94d1b0c567346c76d0ff59c4a')
|
||||
|
||||
depends_on('python@2.7:', type=('build', 'run'))
|
||||
depends_on('py-setuptools', type='build')
|
||||
23
var/spack/repos/builtin/packages/py-priority/package.py
Normal file
23
var/spack/repos/builtin/packages/py-priority/package.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# Copyright 2013-2022 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 PyPriority(PythonPackage):
|
||||
"""Priority is a pure-Python implementation of the priority
|
||||
logic for HTTP/2, set out in RFC 7540 Section 5.3 (Stream
|
||||
Priority). This logic allows for clients to express a
|
||||
preference for how the server allocates its (limited)
|
||||
resources to the many outstanding HTTP requests that may be
|
||||
running over a single HTTP/2 connection."""
|
||||
|
||||
homepage = "https://github.com/python-hyper/priority/"
|
||||
pypi = "priority/priority-2.0.0.tar.gz"
|
||||
|
||||
version('2.0.0', sha256='c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0')
|
||||
|
||||
depends_on('python@3.6.1:', type=('build', 'run'))
|
||||
depends_on('py-setuptools', type='build')
|
||||
@@ -14,6 +14,7 @@ class PySetuptoolsScm(PythonPackage):
|
||||
|
||||
version('6.3.2', sha256='a49aa8081eeb3514eb9728fa5040f2eaa962d6c6f4ec9c32f6c1fba88f88a0f2')
|
||||
version('6.0.1', sha256='d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92')
|
||||
version('5.0.2', sha256='83a0cedd3449e3946307811a4c7b9d89c4b5fd464a2fb5eeccd0a5bb158ae5c8')
|
||||
version('4.1.2', sha256='a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8')
|
||||
version('3.5.0', sha256='5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87')
|
||||
version('3.3.3', sha256='bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5')
|
||||
@@ -27,6 +28,7 @@ class PySetuptoolsScm(PythonPackage):
|
||||
depends_on('python@3.6:', when='@6:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-setuptools@34.4:', type=('build', 'run'))
|
||||
depends_on('py-setuptools@42:', type=('build', 'run'), when='@5:')
|
||||
depends_on('py-setuptools@45:', type=('build', 'run'), when='@6:')
|
||||
|
||||
depends_on('py-toml', when='+toml @:6.1.0', type=('build', 'run'))
|
||||
|
||||
@@ -13,8 +13,10 @@ class PyTestpath(PythonPackage):
|
||||
homepage = "https://github.com/jupyter/testpath"
|
||||
pypi = "testpath/testpath-0.4.2.tar.gz"
|
||||
|
||||
version('0.6.0', sha256='2f1b97e6442c02681ebe01bd84f531028a7caea1af3825000f52345c30285e0f')
|
||||
version('0.5.0', sha256='1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417')
|
||||
version('0.4.2', sha256='b694b3d9288dbd81685c5d2e7140b81365d46c29f5db4bc659de5aa6b98780f8')
|
||||
|
||||
depends_on('python@3.5:', type=('build', 'run'), when='@0.5.0:')
|
||||
depends_on('py-flit-core@3.2.0:3.2', type='build')
|
||||
depends_on('py-flit-core@3.2.0:3.2', type='build', when='@:0.5.0')
|
||||
depends_on('py-flit-core@3.2.0:3', type='build', when='@0.6.0:')
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user