Compare commits
46 Commits
hs/fix/cca
...
features/r
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2cc0e533c0 | ||
![]() |
7a8eaa1657 | ||
![]() |
d8baa193b3 | ||
![]() |
2c3f2c5733 | ||
![]() |
302d74394b | ||
![]() |
cf94dc7823 | ||
![]() |
4411ee3382 | ||
![]() |
f790ce0f72 | ||
![]() |
64d53037db | ||
![]() |
4aef50739b | ||
![]() |
a6e966f6f2 | ||
![]() |
1f428c4188 | ||
![]() |
731e48b1bd | ||
![]() |
74ff9ad821 | ||
![]() |
16a4eff689 | ||
![]() |
d0b0d8db50 | ||
![]() |
54f591cce5 | ||
![]() |
8677bb4d43 | ||
![]() |
b66b80a96a | ||
![]() |
10e21f399c | ||
![]() |
56892f6140 | ||
![]() |
7eddc4b1f8 | ||
![]() |
3c7392bbcc | ||
![]() |
bb0517f4d9 | ||
![]() |
c8994ee50f | ||
![]() |
4b2f5638f2 | ||
![]() |
31312a379f | ||
![]() |
b0d5f272b0 | ||
![]() |
1c93fef160 | ||
![]() |
8bb5f4faf4 | ||
![]() |
f76ab5f72f | ||
![]() |
49c831edc3 | ||
![]() |
c943c8c1d2 | ||
![]() |
e0e6f29584 | ||
![]() |
72bc3bb803 | ||
![]() |
dba8fe2b96 | ||
![]() |
4487598d60 | ||
![]() |
495537cf56 | ||
![]() |
22c3b4099f | ||
![]() |
13978d11a0 | ||
![]() |
a22114b20b | ||
![]() |
c10624390f | ||
![]() |
fb3d9de80b | ||
![]() |
fbb688af07 | ||
![]() |
d34b709425 | ||
![]() |
cb0b188cf6 |
@@ -1,5 +1,5 @@
|
||||
config:
|
||||
locks: false
|
||||
build_stage::
|
||||
- '$spack/.staging'
|
||||
- '$user_cache_path/stage'
|
||||
stage_name: '{name}-{version}-{hash:7}'
|
||||
|
@@ -11,6 +11,7 @@
|
||||
from typing import Any, List, Optional, Tuple
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
from llnl.util import tty
|
||||
from llnl.util.lang import stable_partition
|
||||
|
||||
import spack.builder
|
||||
@@ -469,6 +470,11 @@ def cmake(
|
||||
configure_artifact = "ninja.build"
|
||||
|
||||
if os.path.isfile(os.path.join(self.build_directory, configure_artifact)):
|
||||
tty.msg(
|
||||
"Incremental build criteria satisfied."
|
||||
"Skipping CMake configure step. To force configuration run"
|
||||
f" `spack clean {pkg.name}`"
|
||||
)
|
||||
return
|
||||
|
||||
options = self.std_cmake_args
|
||||
|
@@ -31,6 +31,7 @@
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.lang import classproperty, memoized
|
||||
|
||||
import spack
|
||||
import spack.compilers
|
||||
import spack.config
|
||||
import spack.dependency
|
||||
@@ -60,6 +61,7 @@
|
||||
from spack.util.package_hash import package_hash
|
||||
from spack.util.typing import SupportsRichComparison
|
||||
from spack.version import GitVersion, StandardVersion
|
||||
from spack.version import ver as version_from_str
|
||||
|
||||
FLAG_HANDLER_RETURN_TYPE = Tuple[
|
||||
Optional[Iterable[str]], Optional[Iterable[str]], Optional[Iterable[str]]
|
||||
@@ -731,10 +733,22 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
|
||||
#: TestSuite instance used to manage stand-alone tests for 1+ specs.
|
||||
test_suite: Optional[Any] = None
|
||||
|
||||
#: compatibility requirements with Spack
|
||||
#: if value is ``None``, requirements from repo are still applied
|
||||
required_spack_version = None
|
||||
|
||||
def __init__(self, spec):
|
||||
# this determines how the package should be built.
|
||||
self.spec: spack.spec.Spec = spec
|
||||
|
||||
# is this package more restrictive in compatibility than the repo is
|
||||
if self.required_spack_version:
|
||||
spack_version = version_from_str(spack.spack_version)
|
||||
required_version = version_from_str(self.required_spack_version)
|
||||
if not spack_version.satisfies(required_version):
|
||||
msg = f"Package {self.name} requires Spack version {self.required_spack_version}."
|
||||
raise PackageError(msg)
|
||||
|
||||
# Allow custom staging paths for packages
|
||||
self.path = None
|
||||
|
||||
|
@@ -236,22 +236,15 @@ def relocate_elf_binaries(binaries: Iterable[str], prefix_to_prefix: Dict[str, s
|
||||
_set_elf_rpaths_and_interpreter(path, rpaths=rpaths, interpreter=interpreter)
|
||||
|
||||
|
||||
def _warn_if_link_cant_be_relocated(link: str, target: str):
|
||||
if not os.path.isabs(target):
|
||||
return
|
||||
tty.warn(f'Symbolic link at "{link}" to "{target}" cannot be relocated')
|
||||
|
||||
|
||||
def relocate_links(links: Iterable[str], prefix_to_prefix: Dict[str, str]) -> None:
|
||||
"""Relocate links to a new install prefix."""
|
||||
regex = re.compile("|".join(re.escape(p) for p in prefix_to_prefix.keys()))
|
||||
for link in links:
|
||||
old_target = readlink(link)
|
||||
if not os.path.isabs(old_target):
|
||||
continue
|
||||
match = regex.match(old_target)
|
||||
|
||||
# No match.
|
||||
if match is None:
|
||||
_warn_if_link_cant_be_relocated(link, old_target)
|
||||
continue
|
||||
|
||||
new_target = prefix_to_prefix[match.group()] + old_target[match.end() :]
|
||||
|
@@ -32,6 +32,7 @@
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.filesystem import working_dir
|
||||
|
||||
import spack
|
||||
import spack.caches
|
||||
import spack.config
|
||||
import spack.error
|
||||
@@ -40,6 +41,7 @@
|
||||
import spack.spec
|
||||
import spack.tag
|
||||
import spack.tengine
|
||||
import spack.version
|
||||
import spack.util.file_cache
|
||||
import spack.util.git
|
||||
import spack.util.naming as nm
|
||||
@@ -49,6 +51,11 @@
|
||||
#: Package modules are imported as spack.pkg.<repo-namespace>.<pkg-name>
|
||||
ROOT_PYTHON_NAMESPACE = "spack.pkg"
|
||||
|
||||
_required_repo_version = "0:"
|
||||
|
||||
#: Version of the repo interface that this version of Spack is compatible with
|
||||
required_repo_version = spack.version.ver(_required_repo_version)
|
||||
|
||||
|
||||
def python_package_for_repo(namespace):
|
||||
"""Returns the full namespace of a repository, given its relative one
|
||||
@@ -951,7 +958,7 @@ def check(condition, msg):
|
||||
self.config_file = os.path.join(self.root, repo_config_name)
|
||||
check(os.path.isfile(self.config_file), f"No {repo_config_name} found in '{root}'")
|
||||
|
||||
# Read configuration and validate namespace
|
||||
# Read configuration and validate
|
||||
config = self._read_config()
|
||||
check(
|
||||
"namespace" in config,
|
||||
@@ -965,6 +972,19 @@ def check(condition, msg):
|
||||
"Namespaces must be valid python identifiers separated by '.'",
|
||||
)
|
||||
|
||||
required_version = spack.version.ver(config.get("required_spack_version", ":"))
|
||||
spack_version = spack.version.ver(spack.spack_version)
|
||||
check(
|
||||
spack_version.satisfies(required_version),
|
||||
f"Repo {self.namespace} requires Spack version {required_version}",
|
||||
)
|
||||
|
||||
repo_version = spack.version.ver(config.get("version", "0"))
|
||||
check(
|
||||
repo_version.satisfies(required_repo_version),
|
||||
f"Spack requires repo version {required_repo_version}",
|
||||
)
|
||||
|
||||
# Set up 'full_namespace' to include the super-namespace
|
||||
self.full_namespace = python_package_for_repo(self.namespace)
|
||||
|
||||
|
@@ -1527,9 +1527,8 @@ def __init__(self, spec_like=None, *, external_path=None, external_modules=None)
|
||||
self._external_path = external_path
|
||||
self.external_modules = Spec._format_module_list(external_modules)
|
||||
|
||||
# This attribute is used to store custom information for
|
||||
# external specs. None signal that it was not set yet.
|
||||
self.extra_attributes = None
|
||||
# This attribute is used to store custom information for external specs.
|
||||
self.extra_attributes: dict = {}
|
||||
|
||||
# This attribute holds the original build copy of the spec if it is
|
||||
# deployed differently than it was built. None signals that the spec
|
||||
@@ -2351,15 +2350,10 @@ def to_node_dict(self, hash=ht.dag_hash):
|
||||
)
|
||||
|
||||
if self.external:
|
||||
if self.extra_attributes:
|
||||
extra_attributes = syaml.sorted_dict(self.extra_attributes)
|
||||
else:
|
||||
extra_attributes = None
|
||||
|
||||
d["external"] = {
|
||||
"path": self.external_path,
|
||||
"module": self.external_modules,
|
||||
"extra_attributes": extra_attributes,
|
||||
"module": self.external_modules or None,
|
||||
"extra_attributes": syaml.sorted_dict(self.extra_attributes),
|
||||
}
|
||||
|
||||
if not self._concrete:
|
||||
@@ -3861,6 +3855,13 @@ def _cmp_iter(self):
|
||||
for item in self._cmp_node():
|
||||
yield item
|
||||
|
||||
# If there is ever a breaking change to hash computation, whether accidental or purposeful,
|
||||
# two specs can be identical modulo DAG hash, depending on what time they were concretized
|
||||
# From the perspective of many operation in Spack (database, build cache, etc) a different
|
||||
# DAG hash means a different spec. Here we ensure that two otherwise identical specs, one
|
||||
# serialized before the hash change and one after, are considered different.
|
||||
yield self.dag_hash() if self.concrete else None
|
||||
|
||||
# This needs to be in _cmp_iter so that no specs with different process hashes
|
||||
# are considered the same by `__hash__` or `__eq__`.
|
||||
#
|
||||
@@ -4908,7 +4909,7 @@ def from_node_dict(cls, node):
|
||||
spec.external_modules = node["external"]["module"]
|
||||
if spec.external_modules is False:
|
||||
spec.external_modules = None
|
||||
spec.extra_attributes = node["external"].get("extra_attributes", {})
|
||||
spec.extra_attributes = node["external"].get("extra_attributes") or {}
|
||||
|
||||
# specs read in are concrete unless marked abstract
|
||||
if node.get("concrete", True):
|
||||
|
@@ -38,6 +38,27 @@ def extra_repo(tmp_path_factory, request):
|
||||
return spack.repo.Repo(str(repo_dir), cache=repo_cache), request.param
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def versioned_repo(tmp_path_factory, request):
|
||||
def _execute(spack_version, repo_version):
|
||||
repo_namespace = "extra_test_repo"
|
||||
repo_dir = tmp_path_factory.mktemp(repo_namespace)
|
||||
cache_dir = tmp_path_factory.mktemp("cache")
|
||||
(repo_dir / "packages").mkdir(parents=True, exist_ok=True)
|
||||
(repo_dir / "repo.yaml").write_text(
|
||||
f"""
|
||||
repo:
|
||||
namespace: extra_test_repo
|
||||
required_spack_version: '{spack_version}'
|
||||
version: '{repo_version}'
|
||||
"""
|
||||
)
|
||||
repo_cache = spack.util.file_cache.FileCache(str(cache_dir))
|
||||
return spack.repo.Repo(str(repo_dir), cache=repo_cache)
|
||||
|
||||
return _execute
|
||||
|
||||
|
||||
def test_repo_getpkg(mutable_mock_repo):
|
||||
mutable_mock_repo.get_pkg_class("pkg-a")
|
||||
mutable_mock_repo.get_pkg_class("builtin.mock.pkg-a")
|
||||
@@ -303,3 +324,24 @@ def test_get_repo(self, mock_test_cache):
|
||||
# foo is not there, raise
|
||||
with pytest.raises(spack.repo.UnknownNamespaceError):
|
||||
repo.get_repo("foo")
|
||||
|
||||
|
||||
def test_incompatible_repo(versioned_repo):
|
||||
with pytest.raises(spack.repo.BadRepoError, match="requires Spack version"):
|
||||
# test added after Spack passed version 0.22
|
||||
versioned_repo(":0.22", ":")
|
||||
|
||||
with pytest.raises(spack.repo.BadRepoError, match="requires repo version"):
|
||||
# ":a" < "0", and all Spack versions require at least "0:"
|
||||
versioned_repo(":", ":a")
|
||||
|
||||
|
||||
def test_incompatible_package_version(mock_packages, monkeypatch):
|
||||
spec = spack.concretize.concretize_one("pkg-a")
|
||||
package = spack.repo.PATH.get(spec)
|
||||
|
||||
pkg_class = spec.package_class
|
||||
monkeypatch.setattr(pkg_class, "required_spack_version", ":0.22")
|
||||
|
||||
with pytest.raises(spack.error.PackageError, match="requires Spack version"):
|
||||
_ = spack.repo.PATH.get(spec)
|
||||
|
@@ -1989,3 +1989,26 @@ def test_equality_discriminate_on_propagation(lhs, rhs):
|
||||
|
||||
def test_comparison_multivalued_variants():
|
||||
assert Spec("x=a") < Spec("x=a,b") < Spec("x==a,b") < Spec("x==a,b,c")
|
||||
|
||||
|
||||
def test_comparison_after_breaking_hash_change():
|
||||
# We simulate a breaking change in DAG hash computation in Spack. We have two specs that are
|
||||
# entirely equal modulo DAG hash. When deserializing these specs, we don't want them to compare
|
||||
# as equal, because DAG hash is used throughout in Spack to distinguish between specs
|
||||
# (e.g. database, build caches, install dir).
|
||||
s = Spec("example@=1.0")
|
||||
s._mark_concrete(True)
|
||||
|
||||
# compute the dag hash and a change to it
|
||||
dag_hash = s.dag_hash()
|
||||
new_dag_hash = f"{'b' if dag_hash[0] == 'a' else 'a'}{dag_hash[1:]}"
|
||||
|
||||
before_breakage = s.to_dict()
|
||||
after_breakage = s.to_dict()
|
||||
after_breakage["spec"]["nodes"][0]["hash"] = new_dag_hash
|
||||
assert before_breakage != after_breakage
|
||||
|
||||
x = Spec.from_dict(before_breakage)
|
||||
y = Spec.from_dict(after_breakage)
|
||||
assert x != y
|
||||
assert len({x, y}) == 2
|
||||
|
@@ -13,29 +13,41 @@ spack:
|
||||
mpi: [mpich]
|
||||
tbb: [intel-tbb]
|
||||
variants: +mpi
|
||||
acts:
|
||||
require: +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python ~svg +tgeo cxxstd=20
|
||||
celeritas:
|
||||
require: +geant4 +hepmc3 +root +shared cxxstd=20
|
||||
hip:
|
||||
require: '@5.7.1 +rocm'
|
||||
root:
|
||||
require: +davix +dcache +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +mysql +opengl +postgres +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +threads +tmva +tmva-cpu +unuran +vc +vdt +veccore +webgui +x +xml +xrootd # cxxstd=20
|
||||
# note: root cxxstd=20 not concretizable within sherpa
|
||||
vecgeom:
|
||||
require: +gdml +geant4 +root +shared cxxstd=20
|
||||
|
||||
# Mark geant4 data as external to prevent wasting bandwidth on GB-scale files
|
||||
geant4-data:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: geant4-data@11.3.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.2
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.1.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.0.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.3.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.2
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.1.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.0.0
|
||||
prefix: /usr
|
||||
|
||||
specs:
|
||||
# CPU
|
||||
- acts +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python +tgeo cxxstd=20
|
||||
- acts ~cuda
|
||||
#- agile # fails on c++>11 compiler
|
||||
- alpgen
|
||||
- ampt
|
||||
- apfel +lhapdf +python
|
||||
- celeritas +geant4 +hepmc3 +openmp +root +shared +vecgeom cxxstd=20
|
||||
- celeritas ~cuda +openmp ~rocm +vecgeom
|
||||
- cepgen
|
||||
- cernlib +shared
|
||||
- collier
|
||||
@@ -82,19 +94,28 @@ spack:
|
||||
- py-vector
|
||||
- pythia8 +evtgen +fastjet +hdf5 +hepmc +hepmc3 +lhapdf ~madgraph5amc +python +rivet ~root # pythia8 and root circularly depend
|
||||
- rivet hepmc=3
|
||||
- root +davix +dcache +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +mysql +opengl +postgres +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +threads +tmva +unuran +vc +vdt +veccore +webgui +x +xml +xrootd
|
||||
- root ~cuda
|
||||
- sherpa +analysis ~blackhat +gzip +hepmc3 +hepmc3root +lhapdf +lhole +openloops +pythia ~python ~recola ~rivet +root +ufo cxxstd=20
|
||||
- tauola +hepmc3 +lhapdf cxxstd=20
|
||||
- thepeg hepmc=3 ~rivet
|
||||
- vecgeom +gdml +geant4 +root
|
||||
- vecgeom ~cuda
|
||||
- whizard +fastjet +gosam hepmc=3 +lcio +lhapdf +openloops +openmp +pythia8
|
||||
- xrootd +davix +http +krb5 +python +readline +scitokens-cpp
|
||||
- yoda +root
|
||||
|
||||
# CUDA
|
||||
#- acts +cuda +traccc cuda_arch=80
|
||||
#- celeritas +cuda ~openmp +vecgeom cuda_arch=80
|
||||
- root +cuda +cudnn +tmva-gpu
|
||||
- vecgeom +cuda cuda_arch=80
|
||||
|
||||
# ROCm
|
||||
- celeritas +rocm amdgpu_target=gfx90a ~openmp ~vecgeom # only available with ORANGE
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01"
|
||||
image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: HEP
|
||||
|
@@ -1,2 +1,4 @@
|
||||
repo:
|
||||
namespace: builtin.mock
|
||||
version: 0
|
||||
required_spack_version: '0.23:1.0.0.dev0'
|
||||
|
@@ -40,6 +40,7 @@ class Acts(CMakePackage, CudaPackage):
|
||||
# Supported Acts versions
|
||||
version("main", branch="main")
|
||||
version("master", branch="main", deprecated=True) # For compatibility
|
||||
version("39.0.0", commit="b055202e2fbdd509bc186eb4782714bc46f38f3f", submodules=True)
|
||||
version("38.2.0", commit="9cb8f4494656553fd9b85955938b79b2fac4c9b0", submodules=True)
|
||||
version("38.1.0", commit="8a20c88808f10bf4fcdfd7c6e077f23614c3ab90", submodules=True)
|
||||
version("38.0.0", commit="0a6b5155e29e3b755bf351b8a76067fff9b4214b", submodules=True)
|
||||
|
@@ -4,7 +4,6 @@
|
||||
|
||||
import os
|
||||
|
||||
from spack.build_environment import optimization_flags
|
||||
from spack.package import *
|
||||
from spack.pkg.builtin.fftw import FftwBase
|
||||
|
||||
@@ -95,14 +94,14 @@ class Amdfftw(FftwBase):
|
||||
)
|
||||
variant(
|
||||
"amd-dynamic-dispatcher",
|
||||
default=True,
|
||||
default=False,
|
||||
when="@4.1: %aocc@4.1.0:",
|
||||
description="Single portable optimized library"
|
||||
" to execute on different x86 CPU architectures",
|
||||
)
|
||||
variant(
|
||||
"amd-dynamic-dispatcher",
|
||||
default=True,
|
||||
default=False,
|
||||
when="@3.2: %gcc",
|
||||
description="Single portable optimized library"
|
||||
" to execute on different x86 CPU architectures",
|
||||
@@ -203,11 +202,10 @@ def configure(self, spec, prefix):
|
||||
if not self.compiler.f77 or not self.compiler.fc:
|
||||
options.append("--disable-fortran")
|
||||
|
||||
# Cross compilation is supported in amd-fftw by making use of target
|
||||
# variable to set AMD_ARCH configure option.
|
||||
# Spack user can not directly use AMD_ARCH for this purpose but should
|
||||
# use target variable to set appropriate -march option in AMD_ARCH.
|
||||
options.append(f"AMD_ARCH={optimization_flags(self.compiler, spec.target)}")
|
||||
if "avx512" in spec.target:
|
||||
options.append("CFLAGS=-mprefer-vector-width=512")
|
||||
else:
|
||||
options.append("CFLAGS=-mprefer-vector-width=256")
|
||||
|
||||
# Specific SIMD support.
|
||||
# float and double precisions are supported
|
||||
|
@@ -23,6 +23,10 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("libtool", type="build")
|
||||
|
||||
depends_on("ncurses")
|
||||
depends_on("readline@8.2:", when="@5.2:")
|
||||
depends_on("readline@5.0:")
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.build_systems.cmake import CMakeBuilder
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -81,13 +82,22 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("py-breathe", type="build", when="+doc")
|
||||
depends_on("py-sphinx", type="build", when="+doc")
|
||||
|
||||
with when("+cuda"):
|
||||
depends_on("thrust")
|
||||
with when("+rocm"):
|
||||
depends_on("hiprand")
|
||||
depends_on("rocprim")
|
||||
depends_on("rocrand")
|
||||
depends_on("rocthrust")
|
||||
|
||||
for _std in _cxxstd_values:
|
||||
depends_on("geant4 cxxstd=" + _std, when="+geant4 cxxstd=" + _std)
|
||||
depends_on("root cxxstd=" + _std, when="+root cxxstd=" + _std)
|
||||
depends_on("vecgeom cxxstd=" + _std, when="+vecgeom cxxstd=" + _std)
|
||||
|
||||
depends_on("vecgeom +cuda cuda_arch=none", when="+vecgeom +cuda cuda_arch=none")
|
||||
for _arch in CudaPackage.cuda_arch_values:
|
||||
depends_on("vecgeom+cuda cuda_arch=" + _arch, when="+vecgeom +cuda cuda_arch=" + _arch)
|
||||
depends_on(f"vecgeom +cuda cuda_arch={_arch}", when=f"+vecgeom +cuda cuda_arch={_arch}")
|
||||
|
||||
conflicts("+rocm", when="+cuda", msg="AMD and NVIDIA accelerators are incompatible")
|
||||
conflicts("+rocm", when="+vecgeom", msg="HIP support is only available with ORANGE")
|
||||
@@ -111,7 +121,7 @@ def cmake_args(self):
|
||||
from_variant("CELERITAS_BUILD_DOCS", "doc"),
|
||||
define("CELERITAS_BUILD_DEMOS", False),
|
||||
define("CELERITAS_BUILD_TESTS", False),
|
||||
from_variant("Celeritas_USE_HIP", "rocm"),
|
||||
from_variant("CELERITAS_USE_HIP", "rocm"),
|
||||
define("CELERITAS_USE_MPI", False),
|
||||
define("CELERITAS_USE_Python", True),
|
||||
]
|
||||
@@ -119,6 +129,22 @@ def cmake_args(self):
|
||||
for pkg in ["CUDA", "Geant4", "HepMC3", "OpenMP", "ROOT", "SWIG", "VecGeom"]:
|
||||
args.append(from_variant("CELERITAS_USE_" + pkg, pkg.lower()))
|
||||
|
||||
if self.spec.satisfies("+cuda"):
|
||||
args.append(CMakeBuilder.define_cuda_architectures(self))
|
||||
if self.spec.satisfies("+rocm"):
|
||||
args.append(CMakeBuilder.define_hip_architectures(self))
|
||||
args.append(
|
||||
define(
|
||||
"CMAKE_HIP_FLAGS",
|
||||
" ".join(
|
||||
[
|
||||
f"-I{self.spec[p].prefix.include}"
|
||||
for p in ["hiprand", "rocprim", "rocrand", "rocthrust"]
|
||||
]
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
if self.version < Version("0.5"):
|
||||
# JSON is required for 0.5 and later
|
||||
args.append(define("CELERITAS_USE_JSON", True))
|
||||
|
@@ -12,58 +12,11 @@ class CodeServer(Package):
|
||||
homepage = "https://coder.com/docs/code-server/latest"
|
||||
url = "https://github.com/coder/code-server/releases/download/v4.4.0/code-server-4.4.0-linux-amd64.tar.gz"
|
||||
|
||||
version("4.12.0", sha256="d50ee947c4144a6ff2656e664ecbb3f70b75168b8a6e8c3eef47787f3c240c26")
|
||||
version("4.11.0", sha256="4eb233054941ec298caec6fc84dfba0a72c1bc5fadc0fe4896b10f3f4a291d51")
|
||||
version("4.10.1", sha256="f34ce611a9c058982a5e9d200fdf009788e3a564e970b053f4145574bce21b09")
|
||||
version("4.4.0", sha256="e3dd265acb18c2230c72d19bbce619ac5c1bd800ebb26e5e169c4d613069500d")
|
||||
version("4.3.0", sha256="42c71e98de85270b164b023ef8eb0692cf7700c03081ba5a44eaca014a92eb57")
|
||||
version("4.2.0", sha256="98be5bc43ac604c49ae11da259e318b581757a59a25edeee5cf55317ca589ec6")
|
||||
version("4.1.0", sha256="f720b20d1f615b78f3a1be9b1614f3d99ed722b8da3047a4143dbe5835e52ce3")
|
||||
version("4.0.2", sha256="68c11afa3288707a6880920013d8bac7404cd590eb4f63cac92979d0b0bf4fd1")
|
||||
version("4.0.1", sha256="5fe6d26e9d19e685946f0f392d9c822e5303a800cac3ac54a6a2c26104d239fd")
|
||||
version("3.12.0", sha256="d3ca41a55e36d73d80300702af2687e25d440cff6b613bb58a2c88d9b8a0a38f")
|
||||
version("3.11.1", sha256="d34b0b79582196d59d44ac971aabb7f15cb05d837318b94f62470dc8475665e9")
|
||||
version("3.11.0", sha256="dddb97f044ed615a4b8a526328fca6ad703b9c671a28a6090d84668a18755589")
|
||||
version("3.10.2", sha256="47154a6b9e61a0313ba499dd5d948613a17841c2f580612f9721c31964622bf5")
|
||||
version("3.10.1", sha256="18175624df78976488dbcc2a26f2582a71cef5ca0a419e691b1b70da0b27c7ef")
|
||||
version("3.10.0", sha256="5dfce848747f3dd5074cba435cca6730ac99d6d3aa3f50e0a9bf222ad12d3e97")
|
||||
version("3.9.3", sha256="eba42eaf868c2144795b1ac54929e3b252ae35403bf8553b3412a5ac4f365a41")
|
||||
version("3.9.2", sha256="5dbda5ac598223006f72bcb700b133a752aabe4468ed8105806d1d69b5364408")
|
||||
version("3.9.1", sha256="f2648a4387c5a5be8666fb82a7b8a58274c45b91942251ab337e202e078ae8a5")
|
||||
version("3.9.0", sha256="229b0fb95d78a7f7ff0dd55bc151a7521fcd699af50151faf67f6c7ce51110f4")
|
||||
version("3.8.1", sha256="130cf94e3921d0e2adfa33e875bf1aa81fd28548aac94fd31fbc589baa68d45f")
|
||||
version("3.8.0", sha256="70b069f26b30c38cca5fa07b5f25db4d15976de80af3a644b9105d1b5e23e7d5")
|
||||
version("3.7.4", sha256="01ca0e48df44df70cdf702644b013102024a5b30edf6c1fbb2e10b0310056382")
|
||||
version("3.7.3", sha256="7a90f3171c9bc6f65266066e35cc34d48a032910c136ea21116d28f3d7214547")
|
||||
version("3.7.2", sha256="c3054f214392b1b2eb4c77c57cb950ac5d733d349a426975e8bf32028e65a226")
|
||||
version("3.7.1", sha256="bebd9e0c46e0fd4b4f295fd91fc2db135a694614db972095e9842bf7969f4cee")
|
||||
version("3.7.0", sha256="5f8df8ed3924e8e594674d73fb50b00a06efa529f96a0495a5ee8c39c68f3ce1")
|
||||
version("3.6.2", sha256="fd4ac7d61f3e1b2a5034f1706e409c77fad299adef0ede204828d8ecfe317e45")
|
||||
version("3.6.1", sha256="bbe4ef9585e093b3521deb34a0820d2136172271862d6396df21c2e9a26c6374")
|
||||
version("3.6.0", sha256="d1ae4f7263741e0551358d3ed77dad587b33b352d827623d4df25e98f9e21019")
|
||||
version("3.5.0", sha256="90c19c84611becac4af1fb0bd5324ab30f9200769fa7914cd10ccb6b88c657bb")
|
||||
version("3.4.1", sha256="afdb89f4dc7201c03cb35d4f8dc1ccb6060bd0da324a6789089de264d3406817")
|
||||
version("3.4.0", sha256="918c28696b73b96dc9361977f93e788d5c8884b5d4a088d206f05d5b8bccb738")
|
||||
version("3.3.1", sha256="57b9855b20f511e22776ee8a53d1ff30f864498814c4c0b0af3510f71d7a2969")
|
||||
version("3.3.0", sha256="6ca5148a447b41753d5151c5a49a8af24122c7b0808609782aec454e66be4f2c")
|
||||
version("3.2.0", sha256="a8157e8766d6a0e255c72db25e8677a57adb8d889d653e78750b4d26a6ff7400")
|
||||
version("3.1.1", sha256="5dd922d28b2e351c146081849d987fb1e439ee7d53b941434b2eecb2a194da71")
|
||||
version("3.1.0", sha256="5ef85c8f280ce781a176a8b77386b333efe892755a5c325a1782e4eac6016e59")
|
||||
version("3.0.2", sha256="04367cfeb23991f3dc3f1ef8e3dfe5e9d683bb50c9e1fa69e3c21757facfd7ee")
|
||||
version("4.96.4", sha256="b3f9025d00f2cdf61caf83945ef7225d4a3eb576c4c007e45868f45713e39c8e")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version <= Version("3.2.0"):
|
||||
return "https://github.com/coder/code-server/releases/download/{0}/code-server-{0}-linux-x86_64.tar.gz".format(
|
||||
version
|
||||
)
|
||||
else:
|
||||
return "https://github.com/coder/code-server/releases/download/v{0}/code-server-{0}-linux-amd64.tar.gz".format(
|
||||
version
|
||||
)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree(".", prefix)
|
||||
|
||||
|
@@ -18,7 +18,8 @@ class Cpuinfo(CMakePackage):
|
||||
license("BSD-2-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1:
|
||||
version("2024-09-26", commit="1e83a2fdd3102f65c6f1fb602c1b320486218a99") # py-torch@2.6:
|
||||
version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1
|
||||
version("2024-08-30", commit="fa1c679da8d19e1d87f20175ae1ec10995cd3dd3") # py-torch@2.5.0
|
||||
version("2023-11-04", commit="d6860c477c99f1fce9e28eb206891af3c0e1a1d7") # py-torch@2.3:2.4
|
||||
version("2023-01-13", commit="6481e8bef08f606ddd627e4d3be89f64d62e1b8a") # py-torch@2.1:2.2
|
||||
|
@@ -25,6 +25,7 @@ class Dcap(AutotoolsPackage):
|
||||
depends_on("m4", type="build")
|
||||
|
||||
depends_on("openssl")
|
||||
depends_on("libxcrypt")
|
||||
depends_on("zlib-api")
|
||||
|
||||
variant("plugins", default=True, description="Build plugins")
|
||||
|
@@ -20,6 +20,7 @@ class DlaFutureFortran(CMakePackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.3.0", sha256="404ce0d2d3df9317764450158901fd6cb2198b37f5687e9616519100ad6e9ece")
|
||||
version("0.2.0", sha256="7fd3e1779c111b35f0d2701a024398b4f6e8dea4af523b6c8617d28c0b7ae61a")
|
||||
version("0.1.0", sha256="9fd8a105cbb2f3e1daf8a49910f98fce68ca0b954773dba98a91464cf2e7c1da")
|
||||
|
||||
@@ -36,6 +37,7 @@ class DlaFutureFortran(CMakePackage):
|
||||
|
||||
depends_on("dla-future@0.4.1:0.5 +scalapack", when="@0.1.0")
|
||||
depends_on("dla-future@0.6.0: +scalapack", when="@0.2.0:")
|
||||
depends_on("dla-future@0.7.3: +scalapack", when="@0.3:")
|
||||
depends_on("dla-future +shared", when="+shared")
|
||||
|
||||
depends_on("mpi", when="+test")
|
||||
|
@@ -33,60 +33,30 @@ class Dyninst(CMakePackage):
|
||||
version("10.2.1", sha256="8077c6c7a12577d2ffdcd07521c1eb1b7367da94d9a7ef10bf14053aeaae7ba1")
|
||||
version("10.2.0", sha256="4212b93bef4563c7de7dce4258e899bcde52315a571087e87fde9f8040123b43")
|
||||
version("10.1.0", sha256="4a121d70c1bb020408a7a697d74602e18250c3c85800f230566fcccd593c0129")
|
||||
version("10.0.0", sha256="542fccf5c57c4fe784b1a9a9e3db01d40b16ad04e7174dc6f7eb23440485ba06")
|
||||
version(
|
||||
"9.3.2", tag="v9.3.2", commit="5d2ddacb273682daa014ae22f17f3575e05b411e", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.3.0", tag="v9.3.0", commit="9b8e9c1f16d4616b827d2d36955604a8e3fb915c", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.2.0", tag="v9.2.0", commit="3a6ad66df7294417cf61618acdcfcc0fecccb045", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.1.0", tag="v9.1.0", commit="df6d090061bae7ff2ba5a6bd57bb2ecbf538ef7a", deprecated=True
|
||||
)
|
||||
version(
|
||||
"8.2.1", tag="v8.2.1", commit="939afcbad1a8273636a3686a31b51dae4f1f0c11", deprecated=True
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant(
|
||||
"openmp",
|
||||
default=True,
|
||||
description="Enable OpenMP support for ParseAPI " "(version 10.0.0 or later)",
|
||||
)
|
||||
variant("openmp", default=True, description="Enable OpenMP support for ParseAPI ")
|
||||
|
||||
variant("static", default=False, description="Build static libraries")
|
||||
|
||||
variant("stat_dysect", default=False, description="Patch for STAT's DySectAPI")
|
||||
|
||||
boost_libs = (
|
||||
"+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
|
||||
depends_on(
|
||||
"boost+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
|
||||
)
|
||||
|
||||
depends_on("boost@1.61.0:" + boost_libs, when="@10.1.0:")
|
||||
depends_on("boost@1.61.0:1.69" + boost_libs, when="@:10.0")
|
||||
depends_on("boost@1.67.0:" + boost_libs, when="@11.0.0:")
|
||||
depends_on("boost@1.70.0:" + boost_libs, when="@12:12.3.0")
|
||||
depends_on("boost@1.71.0:" + boost_libs, when="@13:")
|
||||
depends_on("boost@1.61.0:", when="@10.1.0:")
|
||||
depends_on("boost@1.67.0:", when="@11.0.0:")
|
||||
depends_on("boost@1.70.0:", when="@12:12.3.0")
|
||||
depends_on("boost@1.71.0:", when="@13:")
|
||||
|
||||
depends_on("libiberty+pic")
|
||||
|
||||
# Dyninst uses elfutils starting with 9.3.0, and used libelf
|
||||
# before that.
|
||||
# NB: Parallel DWARF parsing in Dyninst 10.2.0 requires a thread-
|
||||
# safe libdw
|
||||
# Parallel DWARF parsing requires a thread-safe libdw
|
||||
depends_on("elfutils", type="link")
|
||||
depends_on("elfutils@0.186:", type="link", when="@12.0.1:")
|
||||
depends_on("elfutils@0.178:", type="link", when="@10.2.0:")
|
||||
depends_on("elfutils", type="link", when="@9.3.0:10.1")
|
||||
depends_on("libelf", type="link", when="@:9.2")
|
||||
|
||||
# Dyninst uses libdw from elfutils starting with 10.0, and used
|
||||
# libdwarf before that.
|
||||
depends_on("libdwarf", when="@:9")
|
||||
|
||||
with when("@:12.3.0"):
|
||||
# findtbb.cmake in the dynist repo does not work with recent tbb
|
||||
@@ -95,21 +65,16 @@ class Dyninst(CMakePackage):
|
||||
conflicts("^intel-oneapi-tbb@2021.1:")
|
||||
conflicts("^intel-parallel-studio")
|
||||
|
||||
depends_on("intel-tbb@2019.9:", when="@13.0.0:")
|
||||
depends_on("tbb@2018.6.0:", when="@10.0.0:12.3.0")
|
||||
depends_on("tbb")
|
||||
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")
|
||||
|
||||
with when("@13.0.0:"):
|
||||
depends_on("cmake@3.14.0:", type="build")
|
||||
conflicts("cmake@3.19.0")
|
||||
|
||||
depends_on("cmake@3.4.0:", type="build", when="@10.1.0:")
|
||||
depends_on("cmake@3.0.0:", type="build", when="@10.0.0:10.0")
|
||||
depends_on("cmake@2.8:", type="build", when="@:9")
|
||||
|
||||
patch("stat_dysect.patch", when="+stat_dysect")
|
||||
patch("stackanalysis_h.patch", when="@9.2.0")
|
||||
patch("v9.3.2-auto.patch", when="@9.3.2 %gcc@:4.7")
|
||||
patch("tribool.patch", when="@9.3.0:10.0.0 ^boost@1.69:")
|
||||
patch(
|
||||
"missing_include_deque.patch",
|
||||
when="@10.0.0:12.2.0",
|
||||
@@ -124,92 +89,21 @@ class Dyninst(CMakePackage):
|
||||
# Version 11.0 requires a C++11-compliant ABI
|
||||
conflicts("%gcc@:5", when="@11.0.0:")
|
||||
|
||||
# Versions 9.3.x used cotire, but have no knob to turn it off.
|
||||
# Cotire has no real use for one-time builds and can break
|
||||
# parallel builds with both static and shared libs.
|
||||
@when("@9.3.0:9.3")
|
||||
def patch(self):
|
||||
filter_file("USE_COTIRE true", "USE_COTIRE false", "cmake/shared.cmake")
|
||||
|
||||
# New style cmake args, starting with 10.1.
|
||||
@when("@10.1.0:")
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
args = [
|
||||
"-DBoost_ROOT_DIR=%s" % spec["boost"].prefix,
|
||||
"-DElfUtils_ROOT_DIR=%s" % spec["elf"].prefix,
|
||||
"-DLibIberty_ROOT_DIR=%s" % spec["libiberty"].prefix,
|
||||
"-DTBB_ROOT_DIR=%s" % spec["tbb"].prefix,
|
||||
self.define("Boost_ROOT_DIR", spec["boost"].prefix),
|
||||
self.define("ElfUtils_ROOT_DIR", spec["elfutils"].prefix),
|
||||
self.define("LibIberty_ROOT_DIR", spec["libiberty"].prefix),
|
||||
self.define("TBB_ROOT_DIR", spec["tbb"].prefix),
|
||||
self.define("LibIberty_LIBRARIES", spec["libiberty"].libs),
|
||||
self.define_from_variant("USE_OpenMP", "openmp"),
|
||||
self.define_from_variant("ENABLE_STATIC_LIBS", "static"),
|
||||
]
|
||||
|
||||
if spec.satisfies("+openmp"):
|
||||
args.append("-DUSE_OpenMP=ON")
|
||||
else:
|
||||
args.append("-DUSE_OpenMP=OFF")
|
||||
|
||||
if spec.satisfies("+static"):
|
||||
args.append("-DENABLE_STATIC_LIBS=YES")
|
||||
else:
|
||||
args.append("-DENABLE_STATIC_LIBS=NO")
|
||||
|
||||
# Make sure Dyninst doesn't try to build its own dependencies
|
||||
# outside of Spack
|
||||
# Make sure Dyninst doesn't try to build its own dependencies outside of Spack
|
||||
if spec.satisfies("@10.2.0:12.3.0"):
|
||||
args.append("-DSTERILE_BUILD=ON")
|
||||
|
||||
return args
|
||||
|
||||
# Old style cmake args, up through 10.0.
|
||||
@when("@:10.0")
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
# Elf -- the directory containing libelf.h.
|
||||
elf = spec["elf"].prefix
|
||||
elf_include = os.path.dirname(find_headers("libelf", elf.include, recursive=True)[0])
|
||||
|
||||
# Dwarf -- the directory containing elfutils/libdw.h or
|
||||
# libdwarf.h, and the path to libdw.so or libdwarf.so.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
dwarf_include = elf.include
|
||||
dwarf_lib = find_libraries("libdw", elf, recursive=True)
|
||||
else:
|
||||
dwarf_include = spec["libdwarf"].prefix.include
|
||||
dwarf_lib = spec["libdwarf"].libs
|
||||
|
||||
args = [
|
||||
"-DPATH_BOOST=%s" % spec["boost"].prefix,
|
||||
"-DIBERTY_LIBRARIES=%s" % spec["libiberty"].libs,
|
||||
"-DLIBELF_INCLUDE_DIR=%s" % elf_include,
|
||||
"-DLIBELF_LIBRARIES=%s" % spec["elf"].libs,
|
||||
"-DLIBDWARF_INCLUDE_DIR=%s" % dwarf_include,
|
||||
"-DLIBDWARF_LIBRARIES=%s" % dwarf_lib,
|
||||
]
|
||||
|
||||
# TBB include and lib directories, version 10.x or later.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
args.extend(
|
||||
[
|
||||
"-DTBB_INCLUDE_DIRS=%s" % spec["tbb"].prefix.include,
|
||||
"-DTBB_LIBRARY=%s" % spec["tbb"].prefix.lib,
|
||||
]
|
||||
)
|
||||
|
||||
# Openmp applies to version 10.x or later.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
if spec.satisfies("+openmp"):
|
||||
args.append("-DUSE_OpenMP=ON")
|
||||
else:
|
||||
args.append("-DUSE_OpenMP=OFF")
|
||||
|
||||
# Static libs started with version 9.1.0.
|
||||
if spec.satisfies("@9.1.0:"):
|
||||
if spec.satisfies("+static"):
|
||||
args.append("-DENABLE_STATIC_LIBS=1")
|
||||
else:
|
||||
args.append("-DENABLE_STATIC_LIBS=NO")
|
||||
args.append(self.define("STERILE_BUILD", True))
|
||||
|
||||
return args
|
||||
|
||||
|
@@ -1,11 +0,0 @@
|
||||
--- a/dataflowAPI/h/stackanalysis.h 2016-06-29 14:54:14.000000000 -0700
|
||||
+++ b/dataflowAPI/h/stackanalysis.h 2016-08-02 09:50:13.619079000 -0700
|
||||
@@ -331,7 +331,7 @@
|
||||
|
||||
// To build intervals, we must replay the effect of each instruction.
|
||||
// To avoid sucking enormous time, we keep those transfer functions around...
|
||||
- typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs>>
|
||||
+ typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs> >
|
||||
InstructionEffects;
|
||||
|
||||
DATAFLOW_EXPORT StackAnalysis();
|
@@ -1,34 +0,0 @@
|
||||
Add explicit casts from boost::tribool to bool. Starting with 1.69,
|
||||
tribool added 'explicit' to the conversion operator to bool, and this
|
||||
was breaking the build when using boost >= 1.69.
|
||||
|
||||
Patch is from: https://github.com/dyninst/dyninst/commit/54a2debd9
|
||||
|
||||
|
||||
diff --git a/dataflowAPI/rose/util/Message.C b/dataflowAPI/rose/util/Message.C
|
||||
index a8a66ad4c..5e276f97d 100644
|
||||
--- a/dataflowAPI/rose/util/Message.C
|
||||
+++ b/dataflowAPI/rose/util/Message.C
|
||||
@@ -1123,7 +1123,7 @@ StreamBuf::bake() {
|
||||
destination_->bakeDestinations(message_.properties(), baked_/*out*/);
|
||||
anyUnbuffered_ = false;
|
||||
for (BakedDestinations::const_iterator bi=baked_.begin(); bi!=baked_.end() && !anyUnbuffered_; ++bi)
|
||||
- anyUnbuffered_ = !bi->second.isBuffered;
|
||||
+ anyUnbuffered_ = static_cast<bool>(!bi->second.isBuffered);
|
||||
isBaked_ = true;
|
||||
}
|
||||
}
|
||||
diff --git a/dataflowAPI/rose/util/Message.h b/dataflowAPI/rose/util/Message.h
|
||||
index 816f68d2e..03592cb97 100644
|
||||
--- a/dataflowAPI/rose/util/Message.h
|
||||
+++ b/dataflowAPI/rose/util/Message.h
|
||||
@@ -386,7 +386,8 @@ struct SAWYER_EXPORT ColorSpec {
|
||||
ColorSpec(AnsiColor fg, AnsiColor bg, bool bold): foreground(fg), background(bg), bold(bold) {}
|
||||
|
||||
/** Returns true if this object is in its default-constructed state. */
|
||||
- bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background && !bold; }
|
||||
+ bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background
|
||||
+ && static_cast<bool>(!bold); }
|
||||
};
|
||||
|
||||
/** Colors to use for each message importance.
|
@@ -1,73 +0,0 @@
|
||||
Change some 'for (const auto& t: type)' usage to the older but
|
||||
equivalent 'for (auto t = type.begin(); ...)'. This patch allows
|
||||
dyninst 9.3.2 to build with gcc 4.4 which doesn't support the newer
|
||||
syntax.
|
||||
|
||||
|
||||
diff --git a/dyninstAPI/src/BPatch.C b/dyninstAPI/src/BPatch.C
|
||||
index ebf7db0c4..49fe69f9a 100644
|
||||
--- a/dyninstAPI/src/BPatch.C
|
||||
+++ b/dyninstAPI/src/BPatch.C
|
||||
@@ -166,16 +166,16 @@ BPatch::BPatch()
|
||||
stdTypes = BPatch_typeCollection::getGlobalTypeCollection();
|
||||
vector<Type *> *sTypes = Symtab::getAllstdTypes();
|
||||
BPatch_type* type = NULL;
|
||||
- for(const auto& t: *sTypes) {
|
||||
- stdTypes->addType(type = new BPatch_type(t));
|
||||
+ for(auto t = sTypes->begin(); t != sTypes->end(); ++t) {
|
||||
+ stdTypes->addType(type = new BPatch_type(*t));
|
||||
type->decrRefCount();
|
||||
}
|
||||
delete sTypes;
|
||||
|
||||
builtInTypes = new BPatch_builtInTypeCollection;
|
||||
sTypes = Symtab::getAllbuiltInTypes();
|
||||
- for(const auto& t: *sTypes) {
|
||||
- builtInTypes->addBuiltInType(type = new BPatch_type(t));
|
||||
+ for(auto t = sTypes->begin(); t != sTypes->end(); ++t) {
|
||||
+ builtInTypes->addBuiltInType(type = new BPatch_type(*t));
|
||||
type->decrRefCount();
|
||||
}
|
||||
delete sTypes;
|
||||
diff --git a/dyninstAPI/src/BPatch_collections.C b/dyninstAPI/src/BPatch_collections.C
|
||||
index f4e2986a3..129f8b74a 100644
|
||||
--- a/dyninstAPI/src/BPatch_collections.C
|
||||
+++ b/dyninstAPI/src/BPatch_collections.C
|
||||
@@ -172,12 +172,12 @@ BPatch_typeCollection::~BPatch_typeCollection()
|
||||
assert(refcount == 0 ||
|
||||
refcount == 1);
|
||||
|
||||
- for(const auto& t: typesByName) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByName.begin(); t != typesByName.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
|
||||
- for(const auto& t: typesByID) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByID.begin(); t != typesByID.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/symtabAPI/src/Collections.C b/symtabAPI/src/Collections.C
|
||||
index 7431dd6bf..43c339f45 100644
|
||||
--- a/symtabAPI/src/Collections.C
|
||||
+++ b/symtabAPI/src/Collections.C
|
||||
@@ -318,12 +318,12 @@ typeCollection::typeCollection() :
|
||||
typeCollection::~typeCollection()
|
||||
{
|
||||
// delete all of the types
|
||||
- for(const auto& t: typesByName) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByName.begin(); t != typesByName.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
|
||||
- for(const auto& t: typesByID) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByID.begin(); t != typesByID.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ class Enzyme(CMakePackage):
|
||||
"""
|
||||
|
||||
homepage = "https://enzyme.mit.edu"
|
||||
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.15.tar.gz"
|
||||
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.172.tar.gz"
|
||||
list_url = "https://github.com/wsmoses/Enzyme/releases"
|
||||
git = "https://github.com/wsmoses/Enzyme"
|
||||
|
||||
@@ -23,6 +23,7 @@ class Enzyme(CMakePackage):
|
||||
root_cmakelists_dir = "enzyme"
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.0.172", sha256="688200164787d543641cb446cff20f6a8e8b5c92bb7032ebe7f867efa67ceafb")
|
||||
version("0.0.135", sha256="49c798534faec7ba524a3ed053dd4352d690a44d3cad5a14915c9398dc9b175b")
|
||||
version("0.0.100", sha256="fbc53ec02adc0303ff200d7699afface2d9fbc7350664e6c6d4c527ef11c2e82")
|
||||
version("0.0.81", sha256="4c17d0c28f0572a3ab97a60f1e56bbc045ed5dd64c2daac53ae34371ca5e8b34")
|
||||
@@ -42,7 +43,8 @@ class Enzyme(CMakePackage):
|
||||
depends_on("llvm@7:14", when="@0.0.48:0.0.68")
|
||||
depends_on("llvm@9:16", when="@0.0.69:0.0.79")
|
||||
depends_on("llvm@11:16", when="@0.0.80:0.0.99")
|
||||
depends_on("llvm@11:19", when="@0.0.100:")
|
||||
depends_on("llvm@11:19", when="@0.0.100:0.0.148")
|
||||
depends_on("llvm@15:19", when="@0.0.149:")
|
||||
depends_on("cmake@3.13:", type="build")
|
||||
|
||||
def cmake_args(self):
|
||||
|
@@ -20,12 +20,16 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
version("develop", branch="develop", deprecated=True)
|
||||
version("2.3.1", tag="v2.3.1", commit="6c04b9b21790533e457764bd7f8f26757db1552f")
|
||||
version("2.3.0", tag="v2.3.0", commit="90bc8267fceb02060e54646f73b45d4252aef491")
|
||||
version("2.2.1", tag="v2.2.1", commit="84b5b232aebab40610f57387778db80f6c8c84c5")
|
||||
version("2.2.0", tag="v2.2.0", commit="dd531ac16c5df124d76e385c6ebe9b9589c2d3ad")
|
||||
version("2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0")
|
||||
version("2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22")
|
||||
version(
|
||||
"2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0", deprecated=True
|
||||
)
|
||||
version(
|
||||
"2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22", deprecated=True
|
||||
)
|
||||
|
||||
variant(
|
||||
"backend",
|
||||
@@ -46,8 +50,8 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
description="Set Caliper Profiling Detail",
|
||||
multi=False,
|
||||
)
|
||||
variant("kokkos", default=False, description="Enable Kokkos Support")
|
||||
variant("openmp", default=False, description="Enable OpenMP Support")
|
||||
variant("kokkos", default=False, description="Enable Kokkos Support", when="@:2.3.1")
|
||||
variant("openmp", default=False, description="Enable OpenMP Support", when="@:2.3.1")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
@@ -69,18 +73,22 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("boost@1.79.0:", when="@2.2:")
|
||||
depends_on("kokkos@3.2.00:", when="+kokkos")
|
||||
depends_on("kokkos@3.7:", when="+kokkos @2.3:")
|
||||
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda")
|
||||
depends_on("kokkos@3.7:", when="@2.4:")
|
||||
depends_on("kokkos +cuda", when="+kokkos +cuda")
|
||||
requires("^kokkos +cuda_constexpr +cuda_lambda", when="^kokkos +cuda")
|
||||
depends_on("kokkos +rocm", when="+kokkos +rocm")
|
||||
depends_on("kokkos +openmp", when="+kokkos +openmp")
|
||||
depends_on("legion@cr-20210122", when="backend=legion @2.0:2.2.1")
|
||||
requires("+openmp", when="@:2.3.1 ^kokkos +openmp")
|
||||
depends_on("legion@cr-20210122", when="backend=legion @2.0:2.1.0")
|
||||
depends_on("legion@cr-20230307", when="backend=legion @2.2.0:2.2.1")
|
||||
depends_on("legion@24.03.0:", when="backend=legion @2.2.2:")
|
||||
depends_on("legion@24.09.0:", when="backend=legion @2.3.1:")
|
||||
depends_on("legion+shared", when="backend=legion +shared")
|
||||
depends_on("legion+hdf5", when="backend=legion +hdf5")
|
||||
depends_on("legion+kokkos", when="backend=legion +kokkos")
|
||||
depends_on("legion+openmp", when="backend=legion +openmp")
|
||||
depends_on("legion+cuda", when="backend=legion +cuda")
|
||||
depends_on("legion+rocm", when="backend=legion +rocm")
|
||||
depends_on("legion+kokkos", when="backend=legion ^kokkos")
|
||||
depends_on("legion+openmp", when="backend=legion ^kokkos+openmp")
|
||||
depends_on("legion+cuda", when="backend=legion ^kokkos+cuda")
|
||||
depends_on("legion+rocm", when="backend=legion ^kokkos+rocm")
|
||||
depends_on("hdf5@1.10.7:", when="backend=legion +hdf5")
|
||||
depends_on("hpx@1.10.0: cxxstd=17 malloc=system", when="backend=hpx")
|
||||
depends_on("mpi")
|
||||
@@ -97,11 +105,13 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
# Propagate cuda_arch requirement to dependencies
|
||||
for _flag in CudaPackage.cuda_arch_values:
|
||||
requires(f"+cuda cuda_arch={_flag}", when=f"^kokkos +cuda cuda_arch={_flag}")
|
||||
depends_on(f"kokkos cuda_arch={_flag}", when=f"+cuda+kokkos cuda_arch={_flag}")
|
||||
depends_on(f"legion cuda_arch={_flag}", when=f"backend=legion +cuda cuda_arch={_flag}")
|
||||
|
||||
# Propagate amdgpu_target requirement to dependencies
|
||||
for _flag in ROCmPackage.amdgpu_targets:
|
||||
requires(f"+rocm amdgpu_target={_flag}", when=f"^kokkos +rocm amdgpu_target={_flag}")
|
||||
depends_on(f"kokkos amdgpu_target={_flag}", when=f"+kokkos +rocm amdgpu_target={_flag}")
|
||||
depends_on(
|
||||
f"legion amdgpu_target={_flag}", when=f"backend=legion +rocm amdgpu_target={_flag}"
|
||||
@@ -130,13 +140,13 @@ def cmake_args(self):
|
||||
self.define_from_variant("ENABLE_DOCUMENTATION", "doc"),
|
||||
]
|
||||
|
||||
if self.spec.satisfies("+rocm"):
|
||||
if self.spec.satisfies("^kokkos +rocm"):
|
||||
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
|
||||
options.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc))
|
||||
if self.spec.satisfies("backend=legion"):
|
||||
# CMake pulled in via find_package(Legion) won't work without this
|
||||
options.append(self.define("HIP_PATH", "{0}/hip".format(spec["hip"].prefix)))
|
||||
elif self.spec.satisfies("+kokkos"):
|
||||
elif self.spec.satisfies("^kokkos"):
|
||||
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx))
|
||||
else:
|
||||
# kept for supporing version prior to 2.2
|
||||
|
@@ -18,6 +18,8 @@ class Fms(CMakePackage):
|
||||
license("LGPL-3.0-or-later")
|
||||
|
||||
maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett", "rem1776", "climbfuji")
|
||||
version("2025.01", sha256="19997ef5468a06c60c1e7af3a56ab7f8a33da814a30827293ca34df5bd888d6f")
|
||||
version("2024.03", sha256="4c1e6bdfafcfec19a4a1c08770c313ab3135d47ec8319f6b07f24d2589caf44d")
|
||||
version("2024.02", sha256="47e5740bb066f5eb032e1de163eb762c7258880a2932f4cc4e34e769e0cc2b0e")
|
||||
version(
|
||||
"2024.01.01", sha256="41c8686bad2b1aed76275e35cbe1af855f7dfce9b6d8907744ea2e8174758f6a"
|
||||
@@ -64,6 +66,13 @@ class Fms(CMakePackage):
|
||||
when="@2023.03",
|
||||
)
|
||||
|
||||
variant(
|
||||
"portable_kinds",
|
||||
description="Use iso_c_binding variable kinds",
|
||||
when="@2025.01:",
|
||||
default=False,
|
||||
)
|
||||
|
||||
variant("shared", description="Build shared libraries", when="@2024.02:", default=False)
|
||||
# What the following patch is providing is available in version 2024.03
|
||||
# and newer so it is only needed to 2024.02
|
||||
@@ -131,6 +140,7 @@ def cmake_args(self):
|
||||
self.define_from_variant("OPENMP"),
|
||||
self.define_from_variant("ENABLE_QUAD_PRECISION", "quad_precision"),
|
||||
self.define_from_variant("SHARED_LIBS", "shared"),
|
||||
self.define_from_variant("PORTABLE_KINDS", "portable_kinds"),
|
||||
self.define_from_variant("WITH_YAML", "yaml"),
|
||||
self.define_from_variant("CONSTANTS"),
|
||||
self.define_from_variant("LARGEFILE", "large_file"),
|
||||
|
@@ -23,6 +23,7 @@ class Harfbuzz(MesonPackage, AutotoolsPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("10.2.0", sha256="620e3468faec2ea8685d32c46a58469b850ef63040b3565cde05959825b48227")
|
||||
version("10.1.0", sha256="6ce3520f2d089a33cef0fc48321334b8e0b72141f6a763719aaaecd2779ecb82")
|
||||
version("10.0.1", sha256="b2cb13bd351904cb9038f907dc0dee0ae07127061242fe3556b2795c4e9748fc")
|
||||
version("10.0.0", sha256="c2dfe016ad833a5043ecc6579043f04e8e6d50064e02ad449bb466e6431e3e04")
|
||||
|
177
var/spack/repos/builtin/packages/hip-tests/package.py
Normal file
177
var/spack/repos/builtin/packages/hip-tests/package.py
Normal file
@@ -0,0 +1,177 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
import os
|
||||
|
||||
import spack.build_systems.cmake
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class HipTests(CMakePackage):
|
||||
"""This repository provides unit tests for HIP implementation."""
|
||||
|
||||
homepage = "https://github.com/ROCm/hip-tests"
|
||||
url = "https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-6.1.2.tar.gz"
|
||||
git = "https://github.com/ROCm/hip-tests.git"
|
||||
tags = ["rocm"]
|
||||
|
||||
maintainers("srekolam", "renjithravindrankannath", "afzpatel")
|
||||
|
||||
version("6.3.1", sha256="0fc1cf4f46f2bbef377d65803d86c2489b01b598c468070c79c5114a661f07c6")
|
||||
version("6.3.0", sha256="8081d4ab1a43ffa1cebd646668d83008b799ab98c14daf7b455922355a439c8a")
|
||||
version("6.2.4", sha256="1478b49583d09cb3a96e26ec3bf8dc5ff3e3ec72fa133bb6d7768595d825051e")
|
||||
version("6.2.1", sha256="90fcf0169889533b882d289f9cb8a7baf9bd46a3ce36752b915083931dc839f1")
|
||||
version("6.2.0", sha256="314837dbac78be71844ceb959476470c484fdcd4fb622ff8de9277783e0fcf1c")
|
||||
version("6.1.2", sha256="5b14e4a30d8d8fb56c43e262009646ba9188eac1c8ff882d9a606a4bec69b56b")
|
||||
version("6.1.1", sha256="10c96ee72adf4580056292ab17cfd858a2fd7bc07abeb41c6780bd147b47f7af")
|
||||
version("6.1.0", sha256="cf3a6a7c43116032d933cc3bc88bfc4b17a4ee1513c978e751755ca11a5ed381")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("cmake", type="run")
|
||||
|
||||
for ver in ["6.1.0", "6.1.1", "6.1.2", "6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1"]:
|
||||
depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}")
|
||||
depends_on(f"hip@{ver}", when=f"@{ver}")
|
||||
depends_on(f"rocm-core@{ver}", when=f"@{ver}")
|
||||
depends_on(f"rocminfo@{ver}", when=f"@{ver}")
|
||||
depends_on(f"hipify-clang@{ver}", when=f"@{ver}")
|
||||
depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}")
|
||||
|
||||
root_cmakelists_dir = "catch"
|
||||
|
||||
def patch(self):
|
||||
filter_file(
|
||||
"${ROCM_PATH}/bin/rocm_agent_enumerator",
|
||||
f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator",
|
||||
"catch/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"/opt/rocm/bin/rocm_agent_enumerator",
|
||||
f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator",
|
||||
"catch/hipTestMain/hip_test_context.cc",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${HIP_PATH}/llvm",
|
||||
self.spec["llvm-amdgpu"].prefix,
|
||||
"samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${ROCM_PATH}/llvm",
|
||||
self.spec["llvm-amdgpu"].prefix,
|
||||
"catch/CMakeLists.txt",
|
||||
"samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/21_cmake_hip_cxx_clang/CMakeLists.txt",
|
||||
"samples/2_Cookbook/18_cmake_hip_device/CMakeLists.txt",
|
||||
"samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/23_cmake_hiprtc/CMakeLists.txt",
|
||||
"samples/2_Cookbook/22_cmake_hip_lang/CMakeLists.txt",
|
||||
"samples/2_Cookbook/19_cmake_lang/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${CMAKE_PREFIX_PATH}/bin/hipify-perl",
|
||||
f"{self.spec['hipify-clang'].prefix.bin}/hipify-perl",
|
||||
"samples/0_Intro/square/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("CXX", self.spec["hip"].hipcc)
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define("HIP_PLATFORM", "amd"),
|
||||
self.define("HIP_PATH", self.spec["hip"].prefix),
|
||||
self.define("ROCM_PATH", self.spec["hip"].prefix),
|
||||
]
|
||||
if self.spec.satisfies("^cmake@3.21.0:3.21.2"):
|
||||
args.append(self.define("__skip_rocmclang", "ON"))
|
||||
return args
|
||||
|
||||
def build(self, spec, prefix):
|
||||
with working_dir(self.build_directory):
|
||||
make("build_tests")
|
||||
|
||||
@run_after("install")
|
||||
def cache_test_sources(self):
|
||||
"""Copy the tests source files after the package is installed to an
|
||||
install test subdirectory for use during `spack test run`."""
|
||||
cache_extra_test_sources(self, "samples")
|
||||
|
||||
def test_samples(self):
|
||||
"""build and run all hip samples"""
|
||||
sample_test_binaries = [
|
||||
"0_Intro/bit_extract/bit_extract",
|
||||
"0_Intro/module_api/launchKernelHcc.hip.out",
|
||||
"0_Intro/module_api/runKernel.hip.out",
|
||||
"0_Intro/module_api/defaultDriver.hip.out",
|
||||
"0_Intro/module_api_global/runKernel1.hip.out",
|
||||
"0_Intro/square/square",
|
||||
"1_Utils/hipDispatchLatency/hipDispatchEnqueueRateMT",
|
||||
"1_Utils/hipDispatchLatency/hipDispatchLatency",
|
||||
"1_Utils/hipInfo/hipInfo",
|
||||
"2_Cookbook/0_MatrixTranspose/MatrixTranspose",
|
||||
"2_Cookbook/1_hipEvent/hipEvent",
|
||||
"2_Cookbook/3_shared_memory/sharedMemory",
|
||||
"2_Cookbook/4_shfl/shfl",
|
||||
"2_Cookbook/5_2dshfl/2dshfl",
|
||||
"2_Cookbook/6_dynamic_shared/dynamic_shared",
|
||||
"2_Cookbook/8_peer2peer/peer2peer",
|
||||
"2_Cookbook/9_unroll/unroll",
|
||||
"2_Cookbook/10_inline_asm/inline_asm",
|
||||
"2_Cookbook/11_texture_driver/texture2dDrv",
|
||||
"2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose1",
|
||||
"2_Cookbook/13_occupancy/occupancy",
|
||||
"2_Cookbook/14_gpu_arch/gpuarch",
|
||||
"2_Cookbook/15_static_library/device_functions/test_device_static",
|
||||
"2_Cookbook/15_static_library/host_functions/test_opt_static",
|
||||
"2_Cookbook/16_assembly_to_executable/square_asm.out",
|
||||
"2_Cookbook/17_llvm_ir_to_executable/square_ir.out",
|
||||
"2_Cookbook/18_cmake_hip_device/test_cpp",
|
||||
"2_Cookbook/19_cmake_lang/test_cpp1",
|
||||
"2_Cookbook/19_cmake_lang/test_fortran",
|
||||
"2_Cookbook/21_cmake_hip_cxx_clang/square1",
|
||||
"2_Cookbook/22_cmake_hip_lang/square2",
|
||||
"2_Cookbook/23_cmake_hiprtc/test",
|
||||
]
|
||||
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, "samples")
|
||||
prefix_paths = ";".join(spack.build_systems.cmake.get_cmake_prefix_path(self))
|
||||
clang_cpp_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang++")
|
||||
clang_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang")
|
||||
cc_options = [
|
||||
f"-DCMAKE_MODULE_PATH={self.spec['hip'].prefix.lib.cmake.hip}",
|
||||
f"-DCMAKE_PREFIX_PATH={prefix_paths}",
|
||||
f"-DCMAKE_CXX_COMPILER={clang_cpp_path}",
|
||||
f"-DCMAKE_C_COMPILER={clang_path}",
|
||||
f"-DHIP_HIPCC_EXECUTABLE={self.spec['hip'].prefix.bin}/hipcc",
|
||||
f"-DCMAKE_HIP_COMPILER_ROCM={clang_cpp_path}",
|
||||
".",
|
||||
]
|
||||
|
||||
cmake = which(self.spec["cmake"].prefix.bin.cmake)
|
||||
with working_dir(test_dir, create=True):
|
||||
cmake(*cc_options)
|
||||
make("build_samples")
|
||||
for binary_path in sample_test_binaries:
|
||||
# binaries need to run in their directories
|
||||
bin_dir, binary = os.path.split(binary_path)
|
||||
with working_dir(bin_dir, create=True):
|
||||
with test_part(
|
||||
self,
|
||||
"test_sample_{0}".format(binary),
|
||||
purpose="configure, build and run test: {0}".format(binary),
|
||||
):
|
||||
exe = Executable(binary)
|
||||
if binary == "hipDispatchEnqueueRateMT":
|
||||
options = ["16", "0"]
|
||||
else:
|
||||
options = []
|
||||
exe(*options)
|
@@ -5,7 +5,6 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
import spack.build_environment
|
||||
from spack.hooks.sbang import filter_shebang
|
||||
from spack.package import *
|
||||
|
||||
@@ -325,33 +324,6 @@ class Hip(CMakePackage):
|
||||
when=f"@{d_version} +cuda",
|
||||
)
|
||||
|
||||
# Add hiptests sources thru the below
|
||||
for d_version, d_shasum in [
|
||||
("6.3.1", "0fc1cf4f46f2bbef377d65803d86c2489b01b598c468070c79c5114a661f07c6"),
|
||||
("6.3.0", "8081d4ab1a43ffa1cebd646668d83008b799ab98c14daf7b455922355a439c8a"),
|
||||
("6.2.4", "1478b49583d09cb3a96e26ec3bf8dc5ff3e3ec72fa133bb6d7768595d825051e"),
|
||||
("6.2.1", "90fcf0169889533b882d289f9cb8a7baf9bd46a3ce36752b915083931dc839f1"),
|
||||
("6.2.0", "314837dbac78be71844ceb959476470c484fdcd4fb622ff8de9277783e0fcf1c"),
|
||||
("6.1.2", "5b14e4a30d8d8fb56c43e262009646ba9188eac1c8ff882d9a606a4bec69b56b"),
|
||||
("6.1.1", "10c96ee72adf4580056292ab17cfd858a2fd7bc07abeb41c6780bd147b47f7af"),
|
||||
("6.1.0", "cf3a6a7c43116032d933cc3bc88bfc4b17a4ee1513c978e751755ca11a5ed381"),
|
||||
("6.0.2", "740ca064f4909c20d83226a63c2f164f7555783ec5f5f70be5bc23d3587ad829"),
|
||||
("6.0.0", "e8f92a0f5d1f6093ca1fb24ff1b7140128900fcdc6e9f01f153d6907e5c2d807"),
|
||||
("5.7.1", "28fbdf49f405adfee903bc0f05a43ac392c55b34c514c3582dfb7d6d67e79985"),
|
||||
("5.7.0", "b1dae3cfc715e71dce92ac1da94265a9398944c76cee85ffab8f0c93665a48d6"),
|
||||
("5.6.1", "5b3002ddfafda162329e4d9e6ac1200eeb48ff08e666b342aa8aeca30750f48b"),
|
||||
("5.6.0", "8cf4509bf9c0747dab8ed8fec1365a9156792034b517207a0b2d63270429fd2e"),
|
||||
]:
|
||||
resource(
|
||||
name="hip-tests",
|
||||
url=f"https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-{d_version}.tar.gz",
|
||||
sha256=d_shasum,
|
||||
expand=True,
|
||||
destination="",
|
||||
placement="hip-tests",
|
||||
when=f"@{d_version}",
|
||||
)
|
||||
|
||||
# Improve compilation without git repo and remove compiler rt linkage
|
||||
# for host and correction in CMake target path variable and
|
||||
# correcting the CMake path variable.
|
||||
@@ -673,69 +645,3 @@ def cmake_args(self):
|
||||
if self.spec.satisfies("@6.0:"):
|
||||
args.append(self.define("HIPCC_BIN_DIR", self.spec["hipcc"].prefix.bin))
|
||||
return args
|
||||
|
||||
test_src_dir_old = "samples"
|
||||
test_src_dir = "hip-tests/samples"
|
||||
|
||||
@run_after("install")
|
||||
def install_samples(self):
|
||||
if self.spec.satisfies("@5.6.0:"):
|
||||
install_tree(self.test_src_dir, self.spec.prefix.share.samples)
|
||||
|
||||
@run_after("install")
|
||||
def cache_test_sources(self):
|
||||
"""Copy the tests source files after the package is installed to an
|
||||
install test subdirectory for use during `spack test run`."""
|
||||
if self.spec.satisfies("@5.1:5.5"):
|
||||
cache_extra_test_sources(self, [self.test_src_dir_old])
|
||||
elif self.spec.satisfies("@5.6:"):
|
||||
cache_extra_test_sources(self, [self.test_src_dir])
|
||||
|
||||
def test_samples(self):
|
||||
"""build and run all hip samples"""
|
||||
if self.spec.satisfies("@5.1:5.5"):
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir_old)
|
||||
elif self.spec.satisfies("@5.6:"):
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir)
|
||||
prefixes = ";".join(spack.build_environment.get_cmake_prefix_path(self))
|
||||
cc_options = ["-DCMAKE_PREFIX_PATH=" + prefixes, ".."]
|
||||
|
||||
amdclang_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "amdclang++")
|
||||
os.environ["CXX"] = amdclang_path
|
||||
os.environ["FC"] = "/usr/bin/gfortran"
|
||||
|
||||
cmake = which(self.spec["cmake"].prefix.bin.cmake)
|
||||
|
||||
for root, dirs, files in os.walk(test_dir):
|
||||
dirs.sort()
|
||||
if "CMakeLists.txt" in files or "Makefile" in files:
|
||||
with working_dir(root, create=True):
|
||||
head, test_name = os.path.split(root)
|
||||
with test_part(
|
||||
self,
|
||||
"test_sample_{0}".format(test_name),
|
||||
purpose="configure, build and run test: {0}".format(test_name),
|
||||
):
|
||||
if "CMakeLists.txt" in files:
|
||||
print("Configuring test " + test_name)
|
||||
os.mkdir("build")
|
||||
os.chdir("build")
|
||||
cmake(*cc_options)
|
||||
|
||||
print("Building test " + test_name)
|
||||
make(parallel=False)
|
||||
# iterate through the files in dir to find the newly built binary
|
||||
for file in os.listdir("."):
|
||||
if (
|
||||
file not in files
|
||||
and os.path.isfile(file)
|
||||
and os.access(file, os.X_OK)
|
||||
and not file.endswith(".o")
|
||||
):
|
||||
print("Executing test binary: " + file)
|
||||
exe = which(file)
|
||||
if file == "hipDispatchEnqueueRateMT":
|
||||
options = ["16", "0"]
|
||||
else:
|
||||
options = []
|
||||
exe(*options)
|
||||
|
@@ -72,7 +72,7 @@ def url_for_version(self, version):
|
||||
return url.format(version.dashed, version.underscored)
|
||||
|
||||
def flag_handler(self, name, flags):
|
||||
if name == "cxxflags":
|
||||
if name == "cxxflags" and not self.spec.platform == "windows":
|
||||
# Control of the C++ Standard is via adding the required "-std"
|
||||
# flag to CXXFLAGS in env
|
||||
flags.append(getattr(self.compiler, f"cxx{self.spec.variants['cxxstd'].value}_flag"))
|
||||
@@ -125,7 +125,7 @@ def msbuild_args(self):
|
||||
@property
|
||||
def build_directory(self):
|
||||
solution_path = pathlib.Path(self.pkg.stage.source_path)
|
||||
if self.spec.satsifies("@:67"):
|
||||
if self.spec.satisfies("@:67"):
|
||||
solution_path = solution_path / "icu"
|
||||
solution_path = solution_path / "source" / "allinone"
|
||||
return str(solution_path)
|
||||
|
@@ -23,6 +23,7 @@ class Justbuild(Package):
|
||||
license("Apache-2.0")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.4.3", tag="v1.4.3", commit="dfbfdc230805a7c92baa7e49d82edc2816e00511")
|
||||
version("1.4.2", tag="v1.4.2", commit="7fd5d41bc219acf0d15da5dfc75d8dd4a6c53ba3")
|
||||
version("1.4.1", tag="v1.4.1", commit="2dc306f510c7ba0661d95bd75305f7deb5eb54b2")
|
||||
version("1.4.0", tag="v1.4.0", commit="562bddf70175a602f896397f41ee5f5e07e834eb")
|
||||
|
@@ -20,6 +20,7 @@ class Lcio(CMakePackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.22.4", sha256="5d60eeb4df8611059f4bc839ac098f5d7e3608a662591e9cbae48aed07995514")
|
||||
version("2.22.3", sha256="5b9715786c5e953f8854881c5d0c4a48030a5491f1701232b82e960ac7980162")
|
||||
version("2.22.2", sha256="e5ad9690af85160ef52dd407fc0995451b4293f3aee415a8ea8a950de63d87a1")
|
||||
version("2.22.1", sha256="4bc3d2c83af7b1c65d6736dd14ee82f41af7ce9bfc7cfe779c5f47417e8dc326")
|
||||
|
@@ -15,6 +15,7 @@ class Libice(AutotoolsPackage, XorgPackage):
|
||||
|
||||
maintainers("wdconinc")
|
||||
|
||||
version("1.1.2", sha256="1da62f732f8679c20045708a29372b82dff9e7eceee543ed488b845002b3b0ff")
|
||||
version("1.1.1", sha256="04fbd34a11ba08b9df2e3cdb2055c2e3c1c51b3257f683d7fcf42dabcf8e1210")
|
||||
version("1.1.0", sha256="7a735ec530d7a437955747eabac06bbc0b695da77fd1b4d1df3b0a483d823875")
|
||||
version("1.0.10", sha256="1116bc64c772fd127a0d0c0ffa2833479905e3d3d8197740b3abd5f292f22d2d")
|
||||
|
@@ -730,6 +730,19 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
|
||||
|
||||
patch("sanitizer-platform-limits-posix-xdr-macos.patch", when="@10:14 platform=darwin")
|
||||
|
||||
# https://github.com/spack/spack/issues/48865
|
||||
patch(
|
||||
"https://github.com/llvm/llvm-project/commit/f4be5ed6a3fef0b2b0c60b29e1c0638926638d28.patch?full_index=1",
|
||||
sha256="51740996bbc01a5049fa859134ad44ffc9514da212cc7d9a445c8d16d6cc867e",
|
||||
when="@15",
|
||||
)
|
||||
# https://github.com/spack/spack/issues/48865
|
||||
patch(
|
||||
"https://github.com/llvm/llvm-project/commit/73e15b5edb4fa4a77e68c299a6e3b21e610d351f.patch?full_index=1",
|
||||
sha256="b540ef6e3728d7881d95775a163314fac6e2f9207f5d5e8b79c8c73c73ba4dc3",
|
||||
when="@15:16",
|
||||
)
|
||||
|
||||
@when("@14:17")
|
||||
def patch(self):
|
||||
# https://github.com/llvm/llvm-project/pull/69458
|
||||
|
10
var/spack/repos/builtin/packages/mummer4/48bit_index.patch
Normal file
10
var/spack/repos/builtin/packages/mummer4/48bit_index.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- include/mummer/48bit_index.hpp 2020-10-01 01:47:50.000000000 +0100
|
||||
+++ include/mummer/48bit_index.hpp.patched 2023-06-09 12:07:09.949856479 +0100
|
||||
@@ -6,6 +6,7 @@
|
||||
#endif
|
||||
|
||||
+#include <cstdint>
|
||||
#include "48bit_iterator.hpp"
|
||||
|
||||
template<typename IDX>
|
||||
struct fortyeight_index {
|
@@ -25,3 +25,6 @@ class Mummer4(AutotoolsPackage):
|
||||
depends_on("perl@5.6.0:", type=("build", "run"))
|
||||
depends_on("awk", type="run")
|
||||
depends_on("sed", type="run")
|
||||
|
||||
# Adds missing inclusion of <cstdint>
|
||||
patch("48bit_index.patch", level=0, when="%gcc@13:")
|
||||
|
97
var/spack/repos/builtin/packages/nnn/package.py
Normal file
97
var/spack/repos/builtin/packages/nnn/package.py
Normal file
@@ -0,0 +1,97 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Nnn(MakefilePackage):
|
||||
"""nnn (n³) is a full-featured terminal file manager.
|
||||
It's tiny, nearly 0-config and incredibly fast."""
|
||||
|
||||
homepage = "https://github.com/jarun/nnn"
|
||||
url = "https://github.com/jarun/nnn/archive/refs/tags/v5.0.tar.gz"
|
||||
|
||||
maintainers("fthaler")
|
||||
|
||||
license("BSD-2-Clause", checked_by="fthaler")
|
||||
|
||||
version("5.0", sha256="31e8fd85f3dd7ab2bf0525c3c0926269a1e6d35a5343a6714315642370d8605a")
|
||||
|
||||
depends_on("binutils", type="build")
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
|
||||
depends_on("coreutils")
|
||||
depends_on("file")
|
||||
depends_on("git", when="+gitstatus")
|
||||
depends_on("ncurses")
|
||||
depends_on("pcre", when="+pcre")
|
||||
depends_on("readline", when="+readline")
|
||||
depends_on("sed")
|
||||
depends_on("tar")
|
||||
depends_on("zip")
|
||||
|
||||
variant("mouse", default=True, description="Enable mouse support")
|
||||
variant(
|
||||
"pcre",
|
||||
default=False,
|
||||
description="Use Perl Compatible Regular Expressions (default is POSIX)",
|
||||
)
|
||||
variant("readline", default=True, description="Compile with readline")
|
||||
variant(
|
||||
"icons",
|
||||
values=("none", "emoji", "nerd", "icons-in-terminal"),
|
||||
default="emoji",
|
||||
description="Choose the icons to use "
|
||||
"(see https://github.com/jarun/nnn/wiki/Advanced-use-cases#file-icons)",
|
||||
)
|
||||
|
||||
variant("colemak", default=False, description="Key bindings for Colemak keyboard layout")
|
||||
variant("gitstatus", default=True, description="Add git status column to the detail view")
|
||||
variant("namefirst", default=False, description="Print filenames first in the detail view")
|
||||
variant(
|
||||
"restorepreview",
|
||||
default=False,
|
||||
description="Add pipe to close and restore preview-tui for internal undetached edits",
|
||||
)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
spec = self.spec
|
||||
env.set("PREFIX", self.prefix)
|
||||
if "+pcre" in spec:
|
||||
env.append_flags("CPPFLAGS", spec["pcre"].headers.include_flags)
|
||||
env.append_flags("LDFLAGS", spec["pcre"].libs.ld_flags)
|
||||
|
||||
@property
|
||||
def build_targets(self):
|
||||
spec = self.spec
|
||||
targets = []
|
||||
if "~mouse" in spec:
|
||||
targets.append("O_NOMOUSE=1")
|
||||
if "+pcre" in spec:
|
||||
targets.append("O_PCRE=1")
|
||||
if "~readline" in spec:
|
||||
targets.append("O_NORL=1")
|
||||
|
||||
if "icons=emoji" in spec:
|
||||
targets.append("O_EMOJI=1")
|
||||
elif "icons=nerd" in spec:
|
||||
targets.append("O_NERD=1")
|
||||
elif "icons=icons-in-terminal" in spec:
|
||||
targets.append("O_ICONS=1")
|
||||
|
||||
if "+colemak" in spec:
|
||||
targets.append("O_COLEMAK=1")
|
||||
if "+gitstatus" in spec:
|
||||
targets.append("O_GITSTATUS=1")
|
||||
if "+namefirst" in spec:
|
||||
targets.append("O_NAMEFIRST=1")
|
||||
if "+restorepreview" in spec:
|
||||
targets.append("O_RESTOREPREVIEW=1")
|
||||
return targets
|
||||
|
||||
@property
|
||||
def install_targets(self):
|
||||
return self.build_targets + ["strip", "install"]
|
@@ -21,6 +21,7 @@ class NvplBlas(Package):
|
||||
|
||||
license("UNKNOWN")
|
||||
|
||||
version("0.4.0.1", sha256="6655898327ed36afd0242719075447058c3c89640b5b9bbfeb5af4dd5c101174")
|
||||
version("0.3.0", sha256="b51cb199a440c1e8673d3d845d395950c9a9020d4e83af2655eb96c23c6ec90d")
|
||||
version("0.2.0.1", sha256="ba29f6a9d3831b6ae5c9265b4d124c13b9b9e0faea025359b02b41ad230975c2")
|
||||
version("0.1.0", sha256="4ccc894593cbcbfaa1a4f3c54505982691971667acf191c9ab0f4252a37c8063")
|
||||
|
@@ -21,6 +21,7 @@ class NvplLapack(Package):
|
||||
|
||||
license("UNKNOWN")
|
||||
|
||||
version("0.3.0", sha256="41cc18fc52f6869747b4185a96e34de93a53eb9d6aa95aab07082958055161b0")
|
||||
version("0.2.3.1", sha256="25927df133c5486fd71d5976c93917c96e62275a78dffc354bcaf1b022f56f8e")
|
||||
version("0.2.2.1", sha256="cdfbf69517a044e99e3e6231c8b2f4e845fd0de57775ccad6b4b0b4fe7e91e84")
|
||||
version("0.2.0.1", sha256="7054f775b18916ee662c94ad7682ace53debbe8ee36fa926000fe412961edb0b")
|
||||
|
62
var/spack/repos/builtin/packages/openturbine/package.py
Normal file
62
var/spack/repos/builtin/packages/openturbine/package.py
Normal file
@@ -0,0 +1,62 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Openturbine(CMakePackage, CudaPackage, ROCmPackage):
|
||||
"""An open-source wind turbine structural dynamics simulation code."""
|
||||
|
||||
license("MIT License", checked_by="ddement")
|
||||
|
||||
homepage = "https://www.exascaleproject.org/research-project/exawind/"
|
||||
url = "https://github.com/Exawind/openturbine.git"
|
||||
git = "https://github.com/Exawind/openturbine.git"
|
||||
|
||||
maintainers("faisal-bhuiyan", "ddement", "deslaughter")
|
||||
|
||||
version("main", branch="main")
|
||||
|
||||
variant("tests", default=False, description="Build OpenTurbine Test Suite")
|
||||
variant("openmp", default=False, description="Build OpenTurbine with OpenMP support")
|
||||
variant("vtk", default=False, description="Enable VTK")
|
||||
variant("adi", default=False, description="Build the OpenFAST ADI external project")
|
||||
variant("rosco", default=False, description="Build the ROSCO controller external project")
|
||||
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("yaml-cpp")
|
||||
depends_on("kokkos-kernels+blas+lapack")
|
||||
depends_on("trilinos+amesos2")
|
||||
|
||||
depends_on("kokkos-kernels@4.3:")
|
||||
depends_on("trilinos@16:")
|
||||
|
||||
depends_on("kokkos-kernels+cuda+cublas+cusparse+cusolver", when="+cuda")
|
||||
depends_on("kokkos-kernels+rocblas+rocsparse+rocsolver", when="+rocm")
|
||||
depends_on("kokkos-kernels+openmp", when="+openmp")
|
||||
depends_on("trilinos+cuda+basker", when="+cuda")
|
||||
depends_on("trilinos+rocm+basker", when="+rocm")
|
||||
depends_on("trilinos+openmp+basker", when="+openmp")
|
||||
depends_on("kokkos-kernels~cuda", when="~cuda")
|
||||
depends_on("kokkos-kernels~openmp", when="~openmp")
|
||||
depends_on("trilinos~cuda", when="~cuda")
|
||||
depends_on("trilinos~rocm", when="~rocm")
|
||||
depends_on("trilinos~openmp", when="~openmp")
|
||||
|
||||
depends_on("googletest", when="+tests")
|
||||
|
||||
depends_on("vtk", when="+vtk")
|
||||
|
||||
depends_on("fortran", type="build", when="+adi")
|
||||
|
||||
depends_on("fortran", type="build", when="+rosco")
|
||||
|
||||
def cmake_args(self):
|
||||
options = [
|
||||
self.define_from_variant("OpenTurbine_ENABLE_TESTS", "tests"),
|
||||
self.define_from_variant("OpenTurbine_ENABLE_VTK", "vtk"),
|
||||
self.define_from_variant("OpenTurbine_BUILD_OPENFAST_ADI", "adi"),
|
||||
self.define_from_variant("OpenTurbine_BUILD_ROSCO_CONTROLLER", "rosco"),
|
||||
]
|
||||
return options
|
34
var/spack/repos/builtin/packages/pfind/package.py
Normal file
34
var/spack/repos/builtin/packages/pfind/package.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Pfind(Package):
|
||||
"""
|
||||
The tool provides parallel access to a single directory. However, this
|
||||
feature depends on the distribution of the "cookie" returned by telldir().
|
||||
Depending on the system, it may work.
|
||||
"""
|
||||
|
||||
homepage = "https://github.com/VI4IO/pfind"
|
||||
git = "https://github.com/VI4IO/pfind.git"
|
||||
|
||||
version("main", branch="master")
|
||||
|
||||
depends_on("mpi")
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("CC", self.spec["mpi"].mpicc, force=True)
|
||||
env.set("CXX", self.spec["mpi"].mpicxx, force=True)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
for installer_path in ["./prepare.sh", "./compile.sh"]:
|
||||
set_executable(installer_path)
|
||||
installer = Executable(installer_path)
|
||||
installer()
|
||||
|
||||
mkdirp(prefix.bin)
|
||||
install("pfind", prefix.bin)
|
@@ -18,6 +18,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
license("BSL-1.0")
|
||||
|
||||
version("0.32.0", sha256="19217e3eecff30a7038f5712b6e161db09f12d7077550e8f66add74b3e524d29")
|
||||
version("0.31.0", sha256="bdbd8e36afb367cc2c7172e5a819c756e4ee20e74dfdec4905f2e84bf097eb7c")
|
||||
version("0.30.1", sha256="b0f3689a3edd30f8d674e19b5134fc5013813f843c45797c1015163e51989ac0")
|
||||
version("0.30.0", sha256="1798bf7de2505bc707bf95716fda8de5630b2e2ae54a6c4ef59f9931394d31cc")
|
||||
|
@@ -31,7 +31,7 @@ class PyArch(PythonPackage):
|
||||
# "numpy>=2.0.0rc1,<3" ???
|
||||
# https://github.com/bashtage/arch/blob/9ced09e2566c0ebcad962d2441b1e79e2aaa7c9f/requirements.txt#L1
|
||||
# numpy>=1.22.3 ???
|
||||
depends_on("py-numpy@1.22.3", type=("build", "run"))
|
||||
depends_on("py-numpy@1.22.3:", type=("build", "run"))
|
||||
|
||||
depends_on("py-scipy@1.8:", type="run")
|
||||
depends_on("py-pandas@1.4:", type="run")
|
||||
|
37
var/spack/repos/builtin/packages/py-elevation/package.py
Normal file
37
var/spack/repos/builtin/packages/py-elevation/package.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyElevation(PythonPackage):
|
||||
"""
|
||||
Python script to download global terrain digital elevation models,
|
||||
SRTM 30m DEM and SRTM 90m DEM.
|
||||
"""
|
||||
|
||||
homepage = "http://elevation.bopen.eu/"
|
||||
pypi = "elevation/elevation-1.1.3.tar.gz"
|
||||
|
||||
maintainers("Chrismarsh")
|
||||
|
||||
license("Apache-2.0", checked_by="Chrismarsh")
|
||||
|
||||
version("1.1.3", sha256="be27446562e7964f7d8fa78c4829dbbb8ac43df405ad09be8c49633adb8f4877")
|
||||
|
||||
depends_on("py-setuptools@42:", type="build")
|
||||
depends_on("py-setuptools-scm@3.4: +toml", type="build")
|
||||
depends_on("py-setuptools-scm-git-archive", type="build")
|
||||
depends_on("py-click", type="build")
|
||||
|
||||
depends_on("py-fasteners")
|
||||
depends_on("py-rasterio")
|
||||
depends_on("py-fiona")
|
||||
depends_on("py-appdirs")
|
||||
|
||||
# listed in
|
||||
# https://github.com/bopen/elevation/blob/1.1.3/README.rst
|
||||
depends_on("curl")
|
||||
depends_on("unzip")
|
||||
depends_on("gzip")
|
||||
depends_on("gdal+python")
|
@@ -14,6 +14,7 @@ class PyLlvmlite(PythonPackage):
|
||||
|
||||
license("BSD-2-Clause")
|
||||
|
||||
version("0.44.0", sha256="07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4")
|
||||
version("0.43.0", sha256="ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5")
|
||||
version("0.42.0", sha256="f92b09243c0cc3f457da8b983f67bd8e1295d0f5b3746c7a1861d7a99403854a")
|
||||
version("0.41.1", sha256="f19f767a018e6ec89608e1f6b13348fa2fcde657151137cb64e56d48598a92db")
|
||||
@@ -51,7 +52,8 @@ class PyLlvmlite(PythonPackage):
|
||||
depends_on("python@:3.8", when="@0.31:0.35", type=("build", "run"))
|
||||
|
||||
# https://github.com/numba/llvmlite#compatibility
|
||||
depends_on("llvm@14", when="@0.41:")
|
||||
depends_on("llvm@15", when="@0.44:")
|
||||
depends_on("llvm@14", when="@0.41:0.43")
|
||||
depends_on("llvm@11:14", when="@0.40")
|
||||
depends_on("llvm@11", when="@0.37:0.39")
|
||||
for t in [
|
||||
@@ -66,6 +68,7 @@ class PyLlvmlite(PythonPackage):
|
||||
"x86_64:",
|
||||
]:
|
||||
depends_on("llvm@10.0", when=f"@0.34:0.36 target={t}")
|
||||
|
||||
depends_on("llvm@9.0", when="@0.34:0.36 target=aarch64:")
|
||||
depends_on("llvm@9.0", when="@0.33")
|
||||
depends_on("llvm@7.0:7.1,8.0", when="@0.29:0.32")
|
||||
|
@@ -16,6 +16,7 @@ class PyNumba(PythonPackage):
|
||||
|
||||
license("BSD-2-Clause")
|
||||
|
||||
version("0.61.0", sha256="888d2e89b8160899e19591467e8fdd4970e07606e1fbc248f239c89818d5f925")
|
||||
version("0.60.0", sha256="5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16")
|
||||
version("0.59.1", sha256="76f69132b96028d2774ed20415e8c528a34e3299a40581bae178f0994a2f370b")
|
||||
version("0.58.1", sha256="487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa")
|
||||
@@ -46,6 +47,9 @@ class PyNumba(PythonPackage):
|
||||
|
||||
variant("tbb", default=False, description="Build with Intel Threading Building Blocks")
|
||||
|
||||
# Be careful that the bounds given in setup.py are exclusive on the upper bound
|
||||
# i.e., [min, max)
|
||||
depends_on("python@3.10:3.13", when="@0.61:", type=("build", "run"))
|
||||
depends_on("python@3.9:3.12", when="@0.59:", type=("build", "run"))
|
||||
depends_on("python@3.8:3.11", when="@0.57:0.58", type=("build", "run"))
|
||||
depends_on("python@3.7:3.10", when="@0.55:0.56", type=("build", "run"))
|
||||
@@ -53,7 +57,7 @@ class PyNumba(PythonPackage):
|
||||
depends_on("python@3.6:3.9", when="@0.53", type=("build", "run"))
|
||||
depends_on("python@3.6:3.8", when="@0.52", type=("build", "run"))
|
||||
depends_on("python@3.6:3.8", when="@0.48:0.51", type=("build", "run"))
|
||||
depends_on("py-numpy@2.0", when="@0.60:", type=("build", "run"))
|
||||
depends_on("py-numpy@2.0:2.2", when="@0.60:", type=("build", "run"))
|
||||
depends_on("py-numpy@1.22:1.26", when="@0.58.1:0.59", type=("build", "run"))
|
||||
depends_on("py-numpy@1.21:1.25", when="@0.58.0", type=("build", "run"))
|
||||
depends_on("py-numpy@1.21:1.24", when="@0.57", type=("build", "run"))
|
||||
@@ -63,6 +67,7 @@ class PyNumba(PythonPackage):
|
||||
depends_on("py-numpy@1.17:1.20", when="@0.54", type=("build", "run"))
|
||||
depends_on("py-numpy@1.15:1.20", when="@0.48:0.53", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"))
|
||||
depends_on("py-llvmlite@0.44", when="@0.61", type=("build", "run"))
|
||||
depends_on("py-llvmlite@0.43", when="@0.60", type=("build", "run"))
|
||||
depends_on("py-llvmlite@0.42", when="@0.59", type=("build", "run"))
|
||||
depends_on("py-llvmlite@0.41", when="@0.58", type=("build", "run"))
|
||||
|
@@ -13,8 +13,11 @@ class PyPatsy(PythonPackage):
|
||||
homepage = "https://github.com/pydata/patsy"
|
||||
pypi = "patsy/patsy-0.5.2.tar.gz"
|
||||
|
||||
maintainers("climbfuji")
|
||||
|
||||
license("PSF-2.0")
|
||||
|
||||
version("0.5.4", sha256="7dabc527597308de0e8f188faa20af7e06a89bdaa306756dfc7783693ea16af4")
|
||||
version("0.5.3", sha256="bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277")
|
||||
version("0.5.2", sha256="5053de7804676aba62783dbb0f23a2b3d74e35e5bfa238b88b7cbf148a38b69d")
|
||||
version("0.5.1", sha256="f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991")
|
||||
|
@@ -26,6 +26,7 @@ class PyPybind11(CMakePackage, PythonExtension):
|
||||
maintainers("ax3l")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.13.6", sha256="e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20")
|
||||
version("2.13.5", sha256="b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252")
|
||||
version("2.13.4", sha256="efc901aa0aab439a3fea6efeaf930b5a349fb06394bf845c64ce15a9cf8f0240")
|
||||
version("2.13.3", sha256="6e7a84ec241544f2f5e30c7a82c09c81f0541dd14e9d9ef61051e07105f9c445")
|
||||
|
@@ -20,6 +20,7 @@ class PyShapely(PythonPackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("2.0.7", sha256="28fe2997aab9a9dc026dc6a355d04e85841546b2a5d232ed953e3321ab958ee5")
|
||||
version("2.0.6", sha256="997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6")
|
||||
version("2.0.5", sha256="bff2366bc786bfa6cb353d6b47d0443c570c32776612e527ee47b6df63fcfe32")
|
||||
version("2.0.4", sha256="5dc736127fac70009b8d309a0eeb74f3e08979e530cf7017f2f507ef62e6cfb8")
|
||||
|
@@ -15,8 +15,11 @@ class PyStatsmodels(PythonPackage):
|
||||
pypi = "statsmodels/statsmodels-0.8.0.tar.gz"
|
||||
git = "https://github.com/statsmodels/statsmodels.git"
|
||||
|
||||
maintainers("climbfuji")
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("0.14.1", sha256="2260efdc1ef89f39c670a0bd8151b1d0843567781bcafec6cda0534eb47a94f6")
|
||||
version("0.14.0", sha256="6875c7d689e966d948f15eb816ab5616f4928706b180cf470fd5907ab6f647a4")
|
||||
version("0.13.5", sha256="593526acae1c0fda0ea6c48439f67c3943094c542fe769f8b90fe9e6c6cc4871")
|
||||
version("0.13.2", sha256="77dc292c9939c036a476f1770f9d08976b05437daa229928da73231147cde7d4")
|
||||
@@ -33,37 +36,44 @@ class PyStatsmodels(PythonPackage):
|
||||
depends_on("python@3.8:", when="@0.14:", type=("build", "link", "run"))
|
||||
depends_on("python", type=("build", "link", "run"))
|
||||
|
||||
depends_on("py-setuptools@69.0.2:", when="@0.14.1: ^python@3.12:", type="build")
|
||||
depends_on("py-setuptools@63.4.3:", when="@0.14.1:", type="build")
|
||||
depends_on("py-setuptools@59.2:", when="@0.13.3:", type="build")
|
||||
depends_on("py-setuptools@0.6c5:", type="build")
|
||||
|
||||
# pyproject.toml
|
||||
depends_on("py-cython@0.29.26:2", when="@0.14:", type="build")
|
||||
depends_on("py-cython@0.29.33:3", when="@0.14.1", type="build")
|
||||
depends_on("py-cython@0.29.26:2", when="@0.14.0", type="build")
|
||||
depends_on("py-cython@0.29.32:2", when="@0.13.5:0.13", type="build")
|
||||
depends_on("py-cython@0.29.22:2", when="@0.13:", type="build")
|
||||
depends_on("py-cython@0.29.14:2", when="@0.12:", type="build")
|
||||
depends_on("py-cython@0.29:2", type="build")
|
||||
depends_on("py-setuptools-scm+toml@7.0", when="@0.13.3:", type="build")
|
||||
depends_on("py-cython@0.29.22:2", when="@0.13:0.13.4", type="build")
|
||||
depends_on("py-cython@0.29.14:2", when="@0.12", type="build")
|
||||
depends_on("py-cython@0.29:2", when="@:0.11", type="build")
|
||||
depends_on("py-setuptools-scm+toml@8", when="@0.14.1:", type="build")
|
||||
depends_on("py-setuptools-scm+toml@7.0", when="@0.13.3:0.14.0", type="build")
|
||||
|
||||
# patsy@0.5.1 works around a Python change
|
||||
# https://github.com/statsmodels/statsmodels/issues/5343 and
|
||||
# https://github.com/pydata/patsy/pull/131
|
||||
|
||||
# requirements.txt
|
||||
depends_on("py-numpy@1.18:", when="@0.14:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.22.3:1", when="@0.14.1:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.18:1", when="@0.14:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.17:", when="@0.13:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.15:", when="@0.12.1:", type=("build", "link", "run"))
|
||||
depends_on("py-numpy@1.11:", when="@0.10.1:", type=("build", "link", "run"))
|
||||
# https://github.com/statsmodels/statsmodels/issues/9194
|
||||
depends_on("py-numpy@:1", when="@:0.14.1", type=("build", "link", "run"))
|
||||
depends_on("py-scipy@1.4:", when="@0.13.5:", type=("build", "run"))
|
||||
conflicts("^py-scipy@1.9.2")
|
||||
conflicts("^py-scipy@1.9.2", when="@:0.14.1")
|
||||
depends_on("py-scipy@1.3:", when="@0.13:", type=("build", "run"))
|
||||
depends_on("py-scipy@1.2:", when="@0.12:", type=("build", "run"))
|
||||
depends_on("py-scipy@0.18:", when="@0.10.1:", type=("build", "run"))
|
||||
depends_on("py-pandas@1:", when="@0.14:", type=("build", "run"))
|
||||
conflicts("^py-scipy@2.1.0", when="@:0.14.1")
|
||||
depends_on("py-pandas@0.25:", when="@0.13:", type=("build", "run"))
|
||||
depends_on("py-pandas@0.23:", when="@0.12:", type=("build", "run"))
|
||||
depends_on("py-pandas@0.19:", when="@0.10.1:", type=("build", "run"))
|
||||
depends_on("py-patsy@0.5.4:", when="@0.14.1:", type=("build", "run"))
|
||||
depends_on("py-patsy@0.5.2:", when="@0.13:", type=("build", "run"))
|
||||
depends_on("py-patsy@0.5.1:", when="@0.12:", type=("build", "run"))
|
||||
depends_on("py-patsy@0.4:", when="@0.10.1:", type=("build", "run"))
|
||||
|
@@ -17,13 +17,17 @@ class PyTorchNvidiaApex(PythonPackage, CudaPackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("master", branch="master")
|
||||
version("24.04.01", sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce")
|
||||
version(
|
||||
"24.04.01",
|
||||
sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce",
|
||||
preferred=True,
|
||||
)
|
||||
version("23.08", tag="23.08")
|
||||
version("23.07", tag="23.07")
|
||||
version("23.06", tag="23.06")
|
||||
version("23.05", tag="23.05")
|
||||
version("22.03", tag="22.03")
|
||||
version("2020-10-19", commit="8a1ed9e8d35dfad26fb973996319965e4224dcdd")
|
||||
version("2020-10-19", commit="8a1ed9e8d35dfad26fb973996319965e4224dcdd", deprecated=True)
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
@@ -75,6 +79,17 @@ class PyTorchNvidiaApex(PythonPackage, CudaPackage):
|
||||
# https://github.com/NVIDIA/apex/issues/1498
|
||||
# https://github.com/NVIDIA/apex/pull/1499
|
||||
patch("1499.patch", when="@2020-10-19")
|
||||
patch(
|
||||
"https://github.com/NVIDIA/apex/pull/1879.patch?full_index=1",
|
||||
sha256="8e2e21aa883d93e6c0ea0fecb812c8de906b2e77bcffeeb716adabd1dd76650e",
|
||||
when="@23.05:2019",
|
||||
)
|
||||
|
||||
patch(
|
||||
"https://github.com/NVIDIA/apex/pull/1855.patch?full_index=1",
|
||||
sha256="8481b1234a9ce1e8bef4e57a259d8528107761e1843777489e815ec3727397fd",
|
||||
when="@:24.10",
|
||||
)
|
||||
|
||||
conflicts(
|
||||
"cuda_arch=none",
|
||||
|
@@ -24,6 +24,7 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
maintainers("adamjstewart")
|
||||
|
||||
version("main", branch="main")
|
||||
version("2.6.0", tag="v2.6.0", commit="1eba9b3aa3c43f86f4a2c807ac8e12c4a7767340")
|
||||
version("2.5.1", tag="v2.5.1", commit="a8d6afb511a69687bbb2b7e88a3cf67917e1697e")
|
||||
version("2.5.0", tag="v2.5.0", commit="32f585d9346e316e554c8d9bf7548af9f62141fc")
|
||||
version("2.4.1", tag="v2.4.1", commit="ee1b6804381c57161c477caa380a840a84167676")
|
||||
@@ -164,17 +165,18 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
with default_args(type=("build", "run")):
|
||||
# setup.py
|
||||
depends_on("py-filelock", when="@2:")
|
||||
depends_on("py-typing-extensions@4.10:", when="@2.6:")
|
||||
depends_on("py-typing-extensions@4.8:", when="@2.2:")
|
||||
depends_on("py-typing-extensions@3.6.2.1:", when="@1.7:")
|
||||
depends_on("py-setuptools")
|
||||
depends_on("py-sympy", when="@2:")
|
||||
depends_on("py-networkx", when="@2:")
|
||||
depends_on("py-jinja2", when="@2:")
|
||||
depends_on("py-fsspec", when="@2.1:")
|
||||
|
||||
# pyproject.toml
|
||||
depends_on("py-setuptools")
|
||||
depends_on("py-astunparse", when="@1.13:")
|
||||
depends_on("py-numpy@1.16.6:")
|
||||
depends_on("py-numpy")
|
||||
# https://github.com/pytorch/pytorch/issues/107302
|
||||
depends_on("py-numpy@:1", when="@:2.2")
|
||||
depends_on("py-pyyaml")
|
||||
@@ -188,15 +190,18 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
# Third party dependencies
|
||||
depends_on("fp16@2020-05-14", when="@1.6:")
|
||||
depends_on("fxdiv@2020-04-17", when="@1.6:")
|
||||
depends_on("nvtx@3.1.0", when="@2.6:")
|
||||
# https://github.com/pytorch/pytorch/issues/60332
|
||||
# depends_on("xnnpack@2024-02-29", when="@2.3:+xnnpack")
|
||||
# depends_on("xnnpack@2024-11-08", when="@2.6:+xnnpack")
|
||||
# depends_on("xnnpack@2024-02-29", when="@2.3:2.5+xnnpack")
|
||||
# depends_on("xnnpack@2022-12-21", when="@2.0:2.2+xnnpack")
|
||||
# depends_on("xnnpack@2022-02-16", when="@1.12:1+xnnpack")
|
||||
# depends_on("xnnpack@2021-06-21", when="@1.10:1.11+xnnpack")
|
||||
# depends_on("xnnpack@2021-02-22", when="@1.8:1.9+xnnpack")
|
||||
# depends_on("xnnpack@2020-03-23", when="@1.6:1.7+xnnpack")
|
||||
depends_on("benchmark", when="@1.6:+test")
|
||||
depends_on("cpuinfo@2024-09-06", when="@2.5.1:")
|
||||
depends_on("cpuinfo@2024-09-26", when="@2.6:")
|
||||
depends_on("cpuinfo@2024-09-06", when="@2.5.1")
|
||||
depends_on("cpuinfo@2024-08-30", when="@2.5.0")
|
||||
depends_on("cpuinfo@2023-11-04", when="@2.3:2.4")
|
||||
depends_on("cpuinfo@2023-01-13", when="@2.1:2.2")
|
||||
@@ -216,7 +221,8 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
depends_on("gloo+libuv", when="@1.6: platform=darwin")
|
||||
depends_on("nccl", when="+nccl+cuda")
|
||||
# https://github.com/pytorch/pytorch/issues/60331
|
||||
# depends_on("onnx@1.16.0", when="@2.3:")
|
||||
# depends_on("onnx@1.17.0", when="@2.6:")
|
||||
# depends_on("onnx@1.16.0", when="@2.3:2.5")
|
||||
# depends_on("onnx@1.15.0", when="@2.2")
|
||||
# depends_on("onnx@1.14.1", when="@2.1")
|
||||
# depends_on("onnx@1.13.1", when="@2.0")
|
||||
@@ -242,7 +248,8 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
depends_on("pthreadpool@2020-10-05", when="@1.8")
|
||||
depends_on("pthreadpool@2020-06-15", when="@1.6:1.7")
|
||||
with default_args(type=("build", "link", "run")):
|
||||
depends_on("py-pybind11@2.13.5:", when="@2.5:")
|
||||
depends_on("py-pybind11@2.13.6:", when="@2.6:")
|
||||
depends_on("py-pybind11@2.13.5:", when="@2.5")
|
||||
depends_on("py-pybind11@2.12.0:", when="@2.3:2.4")
|
||||
depends_on("py-pybind11@2.11.0:", when="@2.1:2.2")
|
||||
depends_on("py-pybind11@2.10.1:", when="@2.0")
|
||||
@@ -309,6 +316,14 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
|
||||
conflicts("%gcc@:9.3", when="@2.2:", msg="C++17 support required")
|
||||
|
||||
# https://github.com/pytorch/pytorch/issues/146239
|
||||
patch(
|
||||
"https://github.com/pytorch/pytorch/pull/140275.patch?full_index=1",
|
||||
sha256="65f56305a27d47d7065711d1131c6ac1611fabcb55b129c27ed6beabe4b94fe0",
|
||||
when="@2.6:",
|
||||
reverse=True,
|
||||
)
|
||||
|
||||
# https://github.com/pytorch/pytorch/issues/90448
|
||||
patch(
|
||||
"https://github.com/pytorch/pytorch/pull/97270.patch?full_index=1",
|
||||
@@ -343,6 +358,9 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage):
|
||||
# https://github.com/pytorch/pytorch/pull/35607
|
||||
# https://github.com/pytorch/pytorch/pull/37865
|
||||
patch("xnnpack.patch", when="@1.5")
|
||||
# https://github.com/pytorch/pytorch/issues/141083
|
||||
# https://github.com/google/XNNPACK/commit/5f23827e66cca435fa400b6e221892ac95af0079
|
||||
patch("xnnpack2.patch", when="@2.6", working_dir="third_party/XNNPACK")
|
||||
|
||||
# Fixes build error when ROCm is enabled for pytorch-1.5 release
|
||||
patch("rocm.patch", when="@1.5+rocm")
|
||||
@@ -672,6 +690,7 @@ def enable_or_disable(variant, keyword="USE", var=None):
|
||||
env.set("USE_SYSTEM_FXDIV", "ON")
|
||||
env.set("USE_SYSTEM_GLOO", "ON")
|
||||
env.set("USE_SYSTEM_NCCL", "ON")
|
||||
env.set("USE_SYSTEM_NVTX", "ON")
|
||||
# https://github.com/pytorch/pytorch/issues/60331
|
||||
# env.set("USE_SYSTEM_ONNX", "ON")
|
||||
env.set("USE_SYSTEM_PSIMD", "ON")
|
||||
|
34
var/spack/repos/builtin/packages/py-torch/xnnpack2.patch
Normal file
34
var/spack/repos/builtin/packages/py-torch/xnnpack2.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
diff --git a/src/reference/unary-elementwise.cc b/src/reference/unary-elementwise.cc
|
||||
index bd95ded6c..da892d8be 100644
|
||||
--- a/src/reference/unary-elementwise.cc
|
||||
+++ b/src/reference/unary-elementwise.cc
|
||||
@@ -127,6 +127,16 @@ struct ConvertOp {
|
||||
}
|
||||
};
|
||||
|
||||
+#ifdef XNN_HAVE_FLOAT16
|
||||
+template <>
|
||||
+struct ConvertOp<xnn_bfloat16, _Float16> {
|
||||
+ explicit ConvertOp(const xnn_unary_uparams*) {}
|
||||
+ _Float16 operator()(xnn_bfloat16 x) const {
|
||||
+ return static_cast<_Float16>(static_cast<float>(x));
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
template <typename TIn, typename TOut>
|
||||
const xnn_unary_elementwise_config* get_convert_config(
|
||||
std::true_type /*input_quantized*/, std::true_type /*output_quantized*/) {
|
||||
diff --git a/src/xnnpack/simd/s16-neon.h b/src/xnnpack/simd/s16-neon.h
|
||||
index 4e8ebcfbd..e8392f4e9 100644
|
||||
--- a/src/xnnpack/simd/s16-neon.h
|
||||
+++ b/src/xnnpack/simd/s16-neon.h
|
||||
@@ -70,7 +70,7 @@ static XNN_INLINE void xnn_store_tail_s16(int16_t* output, xnn_simd_s16_t v,
|
||||
v_low = vget_high_s16(v);
|
||||
}
|
||||
if (num_elements & 2) {
|
||||
- vst1_lane_s32((void*) output, vreinterpret_s32_s16(v_low), 0);
|
||||
+ vst1_lane_s32((int32_t*) output, vreinterpret_s32_s16(v_low), 0);
|
||||
output += 2;
|
||||
v_low = vext_s16(v_low, v_low, 2);
|
||||
}
|
@@ -17,6 +17,7 @@ class PyTorchaudio(PythonPackage):
|
||||
maintainers("adamjstewart")
|
||||
|
||||
version("main", branch="main")
|
||||
version("2.6.0", tag="v2.6.0", commit="d8831425203385077a03c1d92cfbbe3bf2106008")
|
||||
version("2.5.1", tag="v2.5.1", commit="1661daf10599ca8889f092ec37814fabbe202bb0")
|
||||
version("2.5.0", tag="v2.5.0", commit="56bc006d56a0d4960de6a1e0b6340cba4eda05cd")
|
||||
version("2.4.1", tag="v2.4.1", commit="e8cbe17769796ce963fbc71b8990f1474774e6d2")
|
||||
@@ -66,7 +67,8 @@ class PyTorchaudio(PythonPackage):
|
||||
|
||||
with default_args(type=("build", "link", "run")):
|
||||
# Based on PyPI wheel availability
|
||||
depends_on("python@3.9:3.12", when="@2.5:")
|
||||
depends_on("python@3.9:3.13", when="@2.6:")
|
||||
depends_on("python@3.9:3.12", when="@2.5")
|
||||
depends_on("python@3.8:3.12", when="@2.2:2.4")
|
||||
depends_on("python@3.8:3.11", when="@2.0:2.1")
|
||||
depends_on("python@:3.10", when="@0.12:0")
|
||||
@@ -74,6 +76,7 @@ class PyTorchaudio(PythonPackage):
|
||||
depends_on("python@:3.8", when="@:0.7.0")
|
||||
|
||||
depends_on("py-torch@main", when="@main")
|
||||
depends_on("py-torch@2.6.0", when="@2.6.0")
|
||||
depends_on("py-torch@2.5.1", when="@2.5.1")
|
||||
depends_on("py-torch@2.5.0", when="@2.5.0")
|
||||
depends_on("py-torch@2.4.1", when="@2.4.1")
|
||||
@@ -126,7 +129,7 @@ class PyTorchaudio(PythonPackage):
|
||||
patch(
|
||||
"https://github.com/pytorch/audio/pull/3811.patch?full_index=1",
|
||||
sha256="34dce3403abb03f62827e8a1efcdb2bf7742477a01f155ebb9c7fefe9588b132",
|
||||
when="@2.2:",
|
||||
when="@2.2:2.5",
|
||||
)
|
||||
conflicts("^cuda@12.5:", when="@:2.1")
|
||||
|
||||
|
@@ -18,6 +18,7 @@ class PyTorchvision(PythonPackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.21.0", sha256="0a4a967bbb7f9810f792cd0289a07fb98c8fb5d1303fae8b63e3a6b05d720058")
|
||||
version("0.20.1", sha256="7e08c7f56e2c89859310e53d898f72bccc4987cd83e08cfd6303513da15a9e71")
|
||||
version("0.20.0", sha256="b59d9896c5c957c6db0018754bbd17d079c5102b82b9be0b438553b40a7b6029")
|
||||
version("0.19.1", sha256="083e75c467285595ec3eb3c7aa8493c19e53d7eb42f13046fb56a07c8897e5a8")
|
||||
@@ -85,8 +86,6 @@ class PyTorchvision(PythonPackage):
|
||||
variant("png", default=True, description=desc.format("PNG"))
|
||||
variant("jpeg", default=True, description=desc.format("JPEG"))
|
||||
variant("webp", default=False, description=desc.format("WEBP"), when="@0.20:")
|
||||
variant("heic", default=False, description=desc.format("HEIC"), when="@0.20:")
|
||||
variant("avif", default=False, description=desc.format("AVIF"), when="@0.20:")
|
||||
variant("nvjpeg", default=False, description=desc.format("NVJPEG"))
|
||||
variant("video_codec", default=False, description=desc.format("video_codec"))
|
||||
variant("ffmpeg", default=False, description=desc.format("FFMPEG"))
|
||||
@@ -97,8 +96,8 @@ class PyTorchvision(PythonPackage):
|
||||
|
||||
with default_args(type=("build", "link", "run")):
|
||||
# Based on PyPI wheel availability
|
||||
depends_on("python@3.9:3.13", when="@0.20:")
|
||||
depends_on("python@3.8:3.12", when="@0.17:0.19")
|
||||
depends_on("python@3.9:3.13", when="@0.21:")
|
||||
depends_on("python@3.8:3.12", when="@0.17:0.20")
|
||||
depends_on("python@3.8:3.11", when="@0.15:0.16")
|
||||
depends_on("python@:3.10", when="@0.12:0.14")
|
||||
depends_on("python@:3.9", when="@0.8.2:0.11")
|
||||
@@ -106,6 +105,7 @@ class PyTorchvision(PythonPackage):
|
||||
|
||||
# https://github.com/pytorch/vision#installation
|
||||
depends_on("py-torch@main", when="@main")
|
||||
depends_on("py-torch@2.6.0", when="@0.21.0")
|
||||
depends_on("py-torch@2.5.1", when="@0.20.1")
|
||||
depends_on("py-torch@2.5.0", when="@0.20.0")
|
||||
depends_on("py-torch@2.4.1", when="@0.19.1")
|
||||
@@ -156,8 +156,6 @@ class PyTorchvision(PythonPackage):
|
||||
depends_on("libpng@1.6:", when="+png")
|
||||
depends_on("jpeg", when="+jpeg")
|
||||
depends_on("libwebp", when="+webp")
|
||||
depends_on("libheif", when="+heic")
|
||||
depends_on("libavif", when="+avif")
|
||||
depends_on("cuda", when="+nvjpeg")
|
||||
depends_on("cuda", when="+video_codec")
|
||||
depends_on("ffmpeg@3.1:", when="+ffmpeg")
|
||||
@@ -214,7 +212,7 @@ def setup_build_environment(self, env):
|
||||
for gpu in ["cuda", "mps"]:
|
||||
env.set(f"FORCE_{gpu.upper()}", int(f"+{gpu}" in self.spec["py-torch"]))
|
||||
|
||||
extensions = ["png", "jpeg", "webp", "heic", "avif", "nvjpeg", "video_codec", "ffmpeg"]
|
||||
extensions = ["png", "jpeg", "webp", "nvjpeg", "video_codec", "ffmpeg"]
|
||||
for extension in extensions:
|
||||
env.set(f"TORCHVISION_USE_{extension.upper()}", int(f"+{extension}" in self.spec))
|
||||
|
||||
|
@@ -13,6 +13,7 @@ class PyXesmf(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.8.8", sha256="8588f83007ce7011379991f516be3691df6fb30486741f0e1c33aa962056ea33")
|
||||
version("0.8.4", sha256="c5a2c4b3e8dbbc9fccd5772a940f9067d68e824215ef87ba222b06718c4eeb56")
|
||||
|
||||
with default_args(type="build"):
|
||||
@@ -21,9 +22,9 @@ class PyXesmf(PythonPackage):
|
||||
|
||||
with default_args(type=("build", "run")):
|
||||
depends_on("py-cf-xarray@0.5.1:")
|
||||
# TODO: add optional dependency
|
||||
# https://github.com/esmf-org/esmf/tree/develop/src/addon/esmpy
|
||||
# depends_on("py-esmpy@8:")
|
||||
|
||||
# esmf +python is only handled correctly in spack for 8.4+
|
||||
depends_on("esmf@8.4.0: +python")
|
||||
depends_on("py-numba@0.55.2:")
|
||||
depends_on("py-numpy@1.16:")
|
||||
depends_on("py-shapely")
|
||||
|
@@ -22,6 +22,7 @@ class RCurl(RPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("6.2.0", sha256="0399bb6bcad5f31ad2a2a7165ff8c976111707125ca0a9c4b8ccf40bb5eb1635")
|
||||
version("5.2.1", sha256="4a7a4d8c08aa1bca2fcd9c58ade7b4b0ea2ed9076d0521071be29baac8adfa90")
|
||||
version("5.0.0", sha256="d7f3cac9b513914ffa8f6f64e6fa5dd96c8273378ace6b0c16b71bc6ba59c9b2")
|
||||
version("4.3.3", sha256="3567b6acad40dad68acfe07511c853824839d451a50219a96dd6d125ed617c9e")
|
||||
@@ -63,3 +64,11 @@ class RCurl(RPackage):
|
||||
depends_on("r@3.0.0:", type=("build", "run"))
|
||||
depends_on("curl", when="@4.3:")
|
||||
depends_on("curl@:7.63", when="@:4.0")
|
||||
|
||||
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282908
|
||||
requires("curl@:8.10", when="@:5.2.1")
|
||||
|
||||
# (Jan 2025) MacOS ships a very buggy libcurl 8.7.1 so we avoid this until apple updates it
|
||||
# See: https://github.com/jeroen/curl/issues/376
|
||||
# from: https://github.com/jeroen/curl/blob/v6.2.0/configure#L18
|
||||
depends_on("curl@8.8.0:", when="@6.2.0: platform=darwin")
|
||||
|
@@ -18,6 +18,8 @@ class Salt(CMakePackage):
|
||||
license("Apache-2.0", checked_by="wspear")
|
||||
|
||||
version("master", branch="master")
|
||||
version("0.3.0", sha256="7df4c060c292ed625d4c1cc8c0e794cd4380a263df63693b648b3c8e0cf51ccf")
|
||||
version("0.2.0", sha256="55c80f9d0591752b1e5b40e924718dc28f928ee0a3c7008adec3feab1280c57f")
|
||||
|
||||
depends_on("llvm+clang+flang@19:")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("llvm+clang+flang@19", type=("build", "link", "run"))
|
||||
|
@@ -19,6 +19,7 @@ class Scotch(CMakePackage, MakefilePackage):
|
||||
|
||||
maintainers("pghysels")
|
||||
|
||||
version("7.0.6", sha256="b44acd0d2f53de4b578fa3a88944cccc45c4d2961cd8cefa9b9a1d5431de8e2b")
|
||||
version("7.0.4", sha256="8ef4719d6a3356e9c4ca7fefd7e2ac40deb69779a5c116f44da75d13b3d2c2c3")
|
||||
version("7.0.3", sha256="5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5")
|
||||
version("7.0.1", sha256="0618e9bc33c02172ea7351600fce4fccd32fe00b3359c4aabb5e415f17c06fed")
|
||||
@@ -121,8 +122,8 @@ def libs(self):
|
||||
|
||||
|
||||
class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
args = [
|
||||
self.define_from_variant("BUILD_LIBSCOTCHMETIS", "metis"),
|
||||
self.define_from_variant("INSTALL_METIS_HEADERS", "metis"),
|
||||
@@ -133,7 +134,10 @@ def cmake_args(self):
|
||||
self.define_from_variant("MPI_THREAD_MULTIPLE", "mpi_thread"),
|
||||
]
|
||||
|
||||
if "+int64" in spec:
|
||||
if self.pkg.version > Version("7.0.4"):
|
||||
args.append(self.define("ENABLE_TESTS", self.pkg.run_tests))
|
||||
|
||||
if "+int64" in self.spec:
|
||||
args.append("-DINTSIZE=64")
|
||||
|
||||
return args
|
||||
|
@@ -53,7 +53,12 @@ class Sherpa(CMakePackage, AutotoolsPackage):
|
||||
variant("python", default=False, description="Enable Python API")
|
||||
variant("hepmc2", default=True, when="@:2", description="Enable HepMC (version 2.x) support")
|
||||
variant("hepmc3", default=True, description="Enable HepMC (version 3.x) support")
|
||||
variant("hepmc3root", default=False, description="Enable HepMC (version 3.1+) ROOT support")
|
||||
variant(
|
||||
"hepmc3root",
|
||||
default=False,
|
||||
description="Enable HepMC (version 3.1+) ROOT support",
|
||||
when="+root",
|
||||
)
|
||||
variant("rivet", default=False, description="Enable Rivet support")
|
||||
variant("fastjet", default=True, when="@:2", description="Enable FASTJET")
|
||||
variant("openloops", default=False, description="Enable OpenLoops")
|
||||
|
@@ -20,6 +20,7 @@ class Simgrid(CMakePackage):
|
||||
|
||||
license("LGPL-2.1-or-later")
|
||||
|
||||
version("3.36", sha256="cfdf6b98270c59be5c112457793c540bdd6a10deece91cbdb4793fbda190b95d")
|
||||
version("3.35", sha256="b4570d3de18d319cbd2e16c5a669f90760307673c0cc9940d4d11cfc537e69a8")
|
||||
version("3.34", sha256="161f1c6c0ebb588c587aea6388114307bb31b3c6d5332fa3dc678151f1d0564d")
|
||||
version("3.32", sha256="837764eb81562f04e49dd20fbd8518d9eb1f94df00a4e4555e7ec7fa8aa341f0")
|
||||
|
@@ -111,7 +111,6 @@ class SingularityEos(CMakePackage, CudaPackage):
|
||||
for _flag in ("~cuda", "+cuda", "~openmp", "+openmp"):
|
||||
depends_on("kokkos ~shared" + _flag, when="+kokkos" + _flag)
|
||||
depends_on("kokkos-kernels" + _flag, when="+kokkos-kernels" + _flag)
|
||||
depends_on("spiner" + _flag, when="+kokkos" + _flag)
|
||||
|
||||
# specfic specs when using GPU/cuda offloading
|
||||
depends_on("kokkos +wrapper+cuda_lambda", when="+cuda+kokkos")
|
||||
@@ -123,7 +122,6 @@ class SingularityEos(CMakePackage, CudaPackage):
|
||||
for _flag in list(CudaPackage.cuda_arch_values):
|
||||
depends_on("kokkos cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
|
||||
depends_on("kokkos-kernels cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
|
||||
depends_on("spiner cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
|
||||
|
||||
conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required")
|
||||
|
||||
|
@@ -30,6 +30,9 @@ class Spectre(CMakePackage):
|
||||
license("MIT")
|
||||
|
||||
version("develop", branch="develop")
|
||||
version(
|
||||
"2025.01.30", sha256="1b79c297ca85e9c2c6242e3880144587fc8a1791124887a83f428c6301a80fe3"
|
||||
)
|
||||
version(
|
||||
"2024.12.16", sha256="ddd53fc6e5b42bca5d636862b69859ff7040ac243e097a4a6c0a8d0a8c58ffce"
|
||||
)
|
||||
|
@@ -5,7 +5,7 @@
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Spiner(CMakePackage, CudaPackage):
|
||||
class Spiner(CMakePackage):
|
||||
"""Spiner:
|
||||
Performance portable routines for generic, tabulated, multi-dimensional data"""
|
||||
|
||||
@@ -18,6 +18,7 @@ class Spiner(CMakePackage, CudaPackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("1.6.3", sha256="f78c50e0b4d7c4fd3f380432f12a528941e2bee5171d6f200e9a52bbcea940e9")
|
||||
version("1.6.2", sha256="91fb403ce3b151fbdf8b6ff5aed0d8dde1177749f5633951027b100ebc7080d3")
|
||||
version("1.6.1", sha256="52774322571d3b9b0dc3c6b255257de9af0e8e6170834360f2252c1ac272cbe7")
|
||||
version("1.6.0", sha256="afa5526d87c78c1165ead06c09c5c2b9e4a913687443e5adff7b709ea4dd7edf")
|
||||
@@ -44,7 +45,6 @@ class Spiner(CMakePackage, CudaPackage):
|
||||
# "when" clauses. Therefore, call the whens FIRST then the non-whens.
|
||||
# https://spack.readthedocs.io/en/latest/packaging_guide.html#overriding-variants
|
||||
variant("kokkos", default=False, description="Enable kokkos")
|
||||
variant("openmp", default=False, description="Enable openmp kokkos backend")
|
||||
|
||||
variant("hdf5", default=False, description="Enable hdf5")
|
||||
variant("mpi", default=False, description="Support parallel hdf5")
|
||||
@@ -61,11 +61,8 @@ class Spiner(CMakePackage, CudaPackage):
|
||||
# Currently the raw cuda backend of ports-of-call is not supported.
|
||||
depends_on("ports-of-call portability_strategy=Kokkos", when="@:1.5.1 +kokkos")
|
||||
depends_on("ports-of-call portability_strategy=None", when="@:1.5.1 ~kokkos")
|
||||
for _flag in list(CudaPackage.cuda_arch_values):
|
||||
depends_on("kokkos@3.3.00: cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
|
||||
for _flag in ("~cuda", "+cuda", "~openmp", "+openmp"):
|
||||
depends_on("kokkos@3.3.00: " + _flag, when="+kokkos" + _flag)
|
||||
depends_on("kokkos@3.3.00: ~shared+wrapper+cuda_lambda+cuda_constexpr", when="+cuda+kokkos")
|
||||
depends_on("kokkos@3.3.00:", when="+kokkos")
|
||||
requires("^kokkos+cuda_lambda+cuda_constexpr", when="+kokkos ^kokkos+cuda")
|
||||
|
||||
depends_on("hdf5+hl~mpi", when="+hdf5~mpi")
|
||||
depends_on("hdf5+hl+mpi", when="+hdf5+mpi")
|
||||
@@ -75,26 +72,31 @@ class Spiner(CMakePackage, CudaPackage):
|
||||
depends_on("py-matplotlib", when="+python")
|
||||
|
||||
conflicts("+mpi", when="~hdf5")
|
||||
conflicts("+cuda", when="~kokkos")
|
||||
conflicts("+openmp", when="~kokkos")
|
||||
conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required")
|
||||
|
||||
def cmake_args(self):
|
||||
if self.spec.satisfies("@1.6.0:"):
|
||||
use_kokkos_option = "SPINER_TEST_USE_KOKKOS"
|
||||
use_cuda_option = "SPINER_TEST_USE_CUDA"
|
||||
else:
|
||||
use_kokkos_option = "SPINER_USE_KOKKOS"
|
||||
use_cuda_option = "SPINER_USE_CUDA"
|
||||
|
||||
args = [
|
||||
self.define("BUILD_TESTING", self.run_tests),
|
||||
self.define("SPINER_BUILD_TESTS", self.run_tests),
|
||||
self.define(
|
||||
"SPINER_TEST_USE_KOKKOS", self.run_tests and self.spec.satisfies("+kokkos")
|
||||
),
|
||||
self.define_from_variant(use_kokkos_option, "kokkos"),
|
||||
self.define_from_variant(use_cuda_option, "cuda"),
|
||||
self.define_from_variant("SPINER_USE_HDF", "hdf5"),
|
||||
]
|
||||
if "+cuda" in self.spec:
|
||||
if self.spec.satisfies("^kokkos+cuda"):
|
||||
args.append(
|
||||
self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.variants["cuda_arch"].value)
|
||||
self.define(
|
||||
"CMAKE_CUDA_ARCHITECTURES", self.spec["kokkos"].variants["cuda_arch"].value
|
||||
)
|
||||
)
|
||||
if self.spec.satisfies("^kokkos+rocm"):
|
||||
args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
|
||||
args.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc))
|
||||
if self.spec.satisfies("^kokkos+cuda"):
|
||||
args.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx))
|
||||
return args
|
||||
|
@@ -35,11 +35,6 @@ class Stat(AutotoolsPackage):
|
||||
sha256="9ece10dde8e1579c9db469ac8d2391b26e59498c0947dbb271c2d01d7ef0a65d",
|
||||
url="https://github.com/LLNL/STAT/releases/download/v4.0.2/stat-4.0.2.tar.gz",
|
||||
)
|
||||
version(
|
||||
"4.0.1",
|
||||
sha256="ae3fbd6946003fb16233d82d40285780a9a802da5fe30d09adb8a8b2a2cc4ad6",
|
||||
url="https://github.com/LLNL/STAT/files/2489327/stat-4.0.1.tar.gz",
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
@@ -56,8 +51,7 @@ class Stat(AutotoolsPackage):
|
||||
depends_on("libtool", type="build")
|
||||
depends_on("dyninst", when="@4.2.1:")
|
||||
depends_on("dyninst@:11.9", when="~dysect @:4.2.0")
|
||||
depends_on("dyninst@:9", when="@:4.0.1")
|
||||
depends_on("dyninst@8.2.1+stat_dysect", when="+dysect")
|
||||
depends_on("dyninst +stat_dysect", when="+dysect")
|
||||
# we depend on fgfs@master to avoid seg faults with fgfs 1.1
|
||||
depends_on("fast-global-file-status@1.1.1:", when="+fgfs")
|
||||
depends_on("graphlib@3.0.0")
|
||||
|
@@ -1,2 +1,4 @@
|
||||
repo:
|
||||
namespace: builtin
|
||||
version: 0
|
||||
required_spack_version: '0.23:1.0.0.dev0'
|
||||
|
Reference in New Issue
Block a user