Compare commits

..

1 Commits

Author SHA1 Message Date
Harmen Stoppels
dfca65158d database.py: simplify, avoid sets, improve perf 2025-02-05 15:52:04 +01:00
69 changed files with 554 additions and 908 deletions

View File

@@ -1,5 +1,5 @@
config:
locks: false
build_stage::
- '$user_cache_path/stage'
- '$spack/.staging'
stage_name: '{name}-{version}-{hash:7}'

View File

@@ -34,7 +34,6 @@ an object, with the following keys:
1. ``roots``: if ``true`` root specs are reused, if ``false`` only dependencies of root specs are reused
2. ``from``: list of sources from which reused specs are taken
3. ``namespaces``: list of namespaces from which to reuse specs, or the string ``"any"``.
Each source in ``from`` is itself an object:
@@ -57,7 +56,6 @@ For instance, the following configuration:
concretizer:
reuse:
roots: true
namespaces: [builtin]
from:
- type: local
include:
@@ -65,8 +63,7 @@ For instance, the following configuration:
- "%clang"
tells the concretizer to reuse all specs compiled with either ``gcc`` or ``clang``, that are installed
in the local store. Any spec from remote buildcaches is disregarded. Any spec from a namespace other than
Spack's builtin repo is disregarded.
in the local store. Any spec from remote buildcaches is disregarded.
To reduce the boilerplate in configuration files, default values for the ``include`` and
``exclude`` options can be pushed up one level:

View File

@@ -11,7 +11,6 @@
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
@@ -470,11 +469,6 @@ 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

View File

@@ -263,18 +263,6 @@ def from_dict(cls, spec, dictionary):
return InstallRecord(spec, **d)
class ForbiddenLockError(SpackError):
"""Raised when an upstream DB attempts to acquire a lock"""
class ForbiddenLock:
def __getattr__(self, name):
raise ForbiddenLockError(f"Cannot access attribute '{name}' of lock")
def __reduce__(self):
return ForbiddenLock, tuple()
class LockConfiguration(NamedTuple):
"""Data class to configure locks in Database objects
@@ -617,16 +605,12 @@ def __init__(
self.db_lock_timeout = lock_cfg.database_timeout
tty.debug(f"DATABASE LOCK TIMEOUT: {str(self.db_lock_timeout)}s")
self.lock: Union[ForbiddenLock, lk.Lock]
if self.is_upstream:
self.lock = ForbiddenLock()
else:
self.lock = lk.Lock(
str(self._lock_path),
default_timeout=self.db_lock_timeout,
desc="database",
enable=lock_cfg.enable,
)
self.lock = lk.Lock(
str(self._lock_path),
default_timeout=self.db_lock_timeout,
desc="database",
enable=not self.is_upstream and lock_cfg.enable,
)
self._data: Dict[str, InstallRecord] = {}
# For every installed spec we keep track of its install prefix, so that
@@ -1050,6 +1034,9 @@ def _write(self, type=None, value=None, traceback=None):
This routine does no locking.
"""
if self.is_upstream:
raise UpstreamDatabaseLockingError("Cannot write to an upstream database")
self._ensure_parent_directories()
# Do not write if exceptions were raised
@@ -1670,38 +1657,24 @@ def query(
"""
valid_trees = ["all", "upstream", "local", self.root] + [u.root for u in self.upstream_dbs]
if install_tree not in valid_trees:
msg = "Invalid install_tree argument to Database.query()\n"
msg += f"Try one of {', '.join(valid_trees)}"
tty.error(msg)
return []
upstream_results = []
upstreams = self.upstream_dbs
if install_tree not in ("all", "upstream"):
upstreams = [u for u in self.upstream_dbs if u.root == install_tree]
for upstream_db in upstreams:
# queries for upstream DBs need to *not* lock - we may not
# have permissions to do this and the upstream DBs won't know about
# us anyway (so e.g. they should never uninstall specs)
upstream_results.extend(
upstream_db._query(
query_spec,
predicate_fn=predicate_fn,
installed=installed,
explicit=explicit,
start_date=start_date,
end_date=end_date,
hashes=hashes,
in_buildcache=in_buildcache,
origin=origin,
)
or []
raise ValueError(
f"Invalid install_tree argument to Database.query(). Try one of {valid_trees}"
)
local_results: Set["spack.spec.Spec"] = set()
if install_tree in ("all", "local") or self.root == install_tree:
local_results = set(
self.query_local(
if install_tree == "all":
databases = [self, *self.upstream_dbs]
elif install_tree == "upstream":
databases = self.upstream_dbs
elif install_tree == "local" or self.root == install_tree:
databases = [self]
else:
databases = [u for u in self.upstream_dbs if u.root == install_tree]
results: List[spack.spec.Spec] = []
for db in databases:
results.extend(
db.query_local(
query_spec,
predicate_fn=predicate_fn,
installed=installed,
@@ -1714,8 +1687,13 @@ def query(
)
)
results = list(local_results) + list(x for x in upstream_results if x not in local_results)
results.sort() # type: ignore[call-overload]
# Stable deduplication on dag hash picks local specs over upstreams.
if len(databases) > 1:
results = list(llnl.util.lang.dedupe(results, key=lambda x: x.dag_hash()))
# reduce number of comparisons with slow default __lt__
results.sort(key=lambda s: s.name)
results.sort()
return results
def query_one(

View File

@@ -236,15 +236,22 @@ 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() :]

View File

@@ -25,12 +25,6 @@
"roots": {"type": "boolean"},
"include": LIST_OF_SPECS,
"exclude": LIST_OF_SPECS,
"namespaces": {
"oneOf": [
{"type": "string", "enum": ["any"]},
{"type": "array", "items": {"type": "string"}},
]
},
"from": {
"type": "array",
"items": {

View File

@@ -3986,7 +3986,6 @@ def __init__(self, configuration: spack.config.Configuration) -> None:
self.configuration = configuration
self.store = spack.store.create(configuration)
self.reuse_strategy = ReuseStrategy.ROOTS
self.reuse_namespaces = "any"
reuse_yaml = self.configuration.get("concretizer:reuse", False)
self.reuse_sources = []
@@ -4017,7 +4016,6 @@ def __init__(self, configuration: spack.config.Configuration) -> None:
self.reuse_strategy = ReuseStrategy.ROOTS
else:
self.reuse_strategy = ReuseStrategy.DEPENDENCIES
self.reuse_namespaces = reuse_yaml.get("namespaces", "any")
default_include = reuse_yaml.get("include", [])
default_exclude = reuse_yaml.get("exclude", [])
default_sources = [{"type": "local"}, {"type": "buildcache"}]
@@ -4085,9 +4083,6 @@ def reusable_specs(self, specs: List[spack.spec.Spec]) -> List[spack.spec.Spec]:
if self.reuse_strategy == ReuseStrategy.DEPENDENCIES:
result = [spec for spec in result if not any(root in spec for root in specs)]
if self.reuse_namespaces != "any":
result = [spec for spec in result if spec.namespace in self.reuse_namespaces]
return result

View File

@@ -1527,8 +1527,9 @@ 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.
self.extra_attributes: dict = {}
# 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 holds the original build copy of the spec if it is
# deployed differently than it was built. None signals that the spec
@@ -2350,10 +2351,15 @@ 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 or None,
"extra_attributes": syaml.sorted_dict(self.extra_attributes),
"module": self.external_modules,
"extra_attributes": extra_attributes,
}
if not self._concrete:
@@ -3855,13 +3861,6 @@ 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__`.
#
@@ -4909,7 +4908,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") or {}
spec.extra_attributes = node["external"].get("extra_attributes", {})
# specs read in are concrete unless marked abstract
if node.get("concrete", True):

View File

@@ -1460,35 +1460,6 @@ def test_no_reuse_when_variant_condition_does_not_hold(self, mutable_database, m
new2 = spack.concretize.concretize_one("conditional-variant-pkg +two_whens")
assert new2.satisfies("@2 +two_whens +version_based")
def test_reuse_by_namespace(self, mutable_database, mock_packages):
spack.config.set("concretizer:reuse", True)
# Set spack to prefer an older version when doing new builds, but prioritize reuse higher
spack.config.set("packages:libelf", {"version": ["0.8.10"]})
# Expected behavior is to reuse the libelf@0.8.13 from mutable database
# despite configured preference for older version
reuse = spack.concretize.concretize_one("libelf")
assert reuse.installed
assert reuse.satisfies("@0.8.13")
# Reuse is turned off, so preference will be respected
spack.config.set("concretizer:reuse", {"namespaces": []})
noreuse = spack.concretize.concretize_one("libelf")
assert not noreuse.installed
assert noreuse.satisfies("@0.8.10")
# Expected behavior same as first concretization
spack.config.set("concretizer:reuse", {"namespaces": ["builtin.mock"]})
noreuse = spack.concretize.concretize_one("libelf")
assert noreuse.installed
assert noreuse.satisfies("@0.8.13")
# Expected behavior same as second concretization
spack.config.set("concretizer:reuse", {"namespaces": ["foobar"]})
noreuse = spack.concretize.concretize_one("libelf")
assert not noreuse.installed
assert noreuse.satisfies("@0.8.10")
def test_reuse_with_flags(self, mutable_database, mutable_config):
spack.config.set("concretizer:reuse", True)
spec = spack.concretize.concretize_one("pkg-a cflags=-g cxxflags=-g")

View File

@@ -165,10 +165,8 @@ def test_installed_upstream(upstream_and_downstream_db, tmpdir):
upstream_db._read()
for dep in spec.traverse(root=False):
record = downstream_db.get_by_hash(dep.dag_hash())
assert record is not None
with pytest.raises(spack.database.ForbiddenLockError):
upstream_db.get_by_hash(dep.dag_hash())
assert downstream_db.get_by_hash(dep.dag_hash()) is not None
assert upstream_db.get_by_hash(dep.dag_hash()) is not None
new_spec = spack.concretize.concretize_one("w")
downstream_db.add(new_spec)
@@ -258,7 +256,7 @@ def test_cannot_write_upstream(tmp_path, mock_packages, config):
# Create it as an upstream
db = spack.database.Database(str(tmp_path), is_upstream=True)
with pytest.raises(spack.database.ForbiddenLockError):
with pytest.raises(spack.database.UpstreamDatabaseLockingError):
db.add(spack.concretize.concretize_one("pkg-a"))

View File

@@ -1989,26 +1989,3 @@ 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

View File

@@ -13,41 +13,29 @@ 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 ~cuda
- acts +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python +tgeo cxxstd=20
#- agile # fails on c++>11 compiler
- alpgen
- ampt
- apfel +lhapdf +python
- celeritas ~cuda +openmp ~rocm +vecgeom
- celeritas +geant4 +hepmc3 +openmp +root +shared +vecgeom cxxstd=20
- cepgen
- cernlib +shared
- collier
@@ -94,28 +82,19 @@ spack:
- py-vector
- pythia8 +evtgen +fastjet +hdf5 +hepmc +hepmc3 +lhapdf ~madgraph5amc +python +rivet ~root # pythia8 and root circularly depend
- rivet hepmc=3
- root ~cuda
- 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
- 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 ~cuda
- vecgeom +gdml +geant4 +root
- 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

View File

@@ -36,7 +36,7 @@ bin/spack -h
bin/spack help -a
# Profile and print top 20 lines for a simple call to spack spec
spack -p --lines 20 spec mpileaks%gcc
spack -p --lines 20 spec mpileaks%gcc ^dyninst@10.0.0 ^elfutils@0.170
$coverage_run $(which spack) bootstrap status --dev --optional
# Check that we can import Spack packages directly as a first import

View File

@@ -40,7 +40,6 @@ 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)

View File

@@ -4,6 +4,7 @@
import os
from spack.build_environment import optimization_flags
from spack.package import *
from spack.pkg.builtin.fftw import FftwBase
@@ -94,14 +95,14 @@ class Amdfftw(FftwBase):
)
variant(
"amd-dynamic-dispatcher",
default=False,
default=True,
when="@4.1: %aocc@4.1.0:",
description="Single portable optimized library"
" to execute on different x86 CPU architectures",
)
variant(
"amd-dynamic-dispatcher",
default=False,
default=True,
when="@3.2: %gcc",
description="Single portable optimized library"
" to execute on different x86 CPU architectures",
@@ -202,10 +203,11 @@ def configure(self, spec, prefix):
if not self.compiler.f77 or not self.compiler.fc:
options.append("--disable-fortran")
if "avx512" in spec.target:
options.append("CFLAGS=-mprefer-vector-width=512")
else:
options.append("CFLAGS=-mprefer-vector-width=256")
# 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)}")
# Specific SIMD support.
# float and double precisions are supported

View File

@@ -23,10 +23,6 @@ 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:")

View File

@@ -2,7 +2,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.build_systems.cmake import CMakeBuilder
from spack.package import *
@@ -82,22 +81,13 @@ 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(f"vecgeom +cuda cuda_arch={_arch}", when=f"+vecgeom +cuda cuda_arch={_arch}")
depends_on("vecgeom+cuda cuda_arch=" + _arch, when="+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")
@@ -121,7 +111,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),
]
@@ -129,22 +119,6 @@ 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))

View File

@@ -92,9 +92,9 @@ def pgo_train(self):
# Set PGO training flags.
generate_mods = EnvironmentModifications()
generate_mods.append_flags("CFLAGS", f"-fprofile-generate={reports}")
generate_mods.append_flags("CXXFLAGS", f"-fprofile-generate={reports}")
generate_mods.append_flags("LDFLAGS", f"-fprofile-generate={reports}")
generate_mods.append_flags("CFLAGS", "-fprofile-generate={}".format(reports))
generate_mods.append_flags("CXXFLAGS", "-fprofile-generate={}".format(reports))
generate_mods.append_flags("LDFLAGS", "-fprofile-generate={} --verbose".format(reports))
with working_dir(self.build_directory, create=True):
cmake(*cmake_options, sources, extra_env=generate_mods)
@@ -118,14 +118,14 @@ def pgo_train(self):
# Clean the build dir.
rmtree(self.build_directory, ignore_errors=True)
if self.spec.satisfies("%clang") or self.spec.satisfies("%apple-clang"):
if self.spec.satisfies("%clang") or self.spec.satisfies("apple-clang"):
# merge reports
use_report = join_path(reports, "merged.prof")
raw_files = glob.glob(join_path(reports, "*.profraw"))
llvm_profdata("merge", f"--output={use_report}", *raw_files)
use_flag = f"-fprofile-instr-use={use_report}"
llvm_profdata("merge", "--output={}".format(use_report), *raw_files)
use_flag = "-fprofile-instr-use={}".format(use_report)
else:
use_flag = f"-fprofile-use={reports}"
use_flag = "-fprofile-use={}".format(reports)
# Set PGO use flags for next cmake phase.
use_mods = EnvironmentModifications()

View File

@@ -12,11 +12,58 @@ 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.96.4", sha256="b3f9025d00f2cdf61caf83945ef7225d4a3eb576c4c007e45868f45713e39c8e")
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")
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)

View File

@@ -18,8 +18,7 @@ class Cpuinfo(CMakePackage):
license("BSD-2-Clause")
version("main", branch="main")
version("2024-09-26", commit="1e83a2fdd3102f65c6f1fb602c1b320486218a99") # py-torch@2.6:
version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1
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

View File

@@ -25,7 +25,6 @@ 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")

View File

@@ -20,7 +20,6 @@ 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")
@@ -37,7 +36,6 @@ 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")

View File

@@ -33,30 +33,60 @@ 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")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant("openmp", default=True, description="Enable OpenMP support for ParseAPI ")
variant(
"openmp",
default=True,
description="Enable OpenMP support for ParseAPI " "(version 10.0.0 or later)",
)
variant("static", default=False, description="Build static libraries")
variant("stat_dysect", default=False, description="Patch for STAT's DySectAPI")
depends_on(
"boost+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
boost_libs = (
"+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
)
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("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("libiberty+pic")
# Parallel DWARF parsing requires a thread-safe libdw
depends_on("elfutils", type="link")
# 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
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
@@ -65,16 +95,21 @@ class Dyninst(CMakePackage):
conflicts("^intel-oneapi-tbb@2021.1:")
conflicts("^intel-parallel-studio")
depends_on("tbb")
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")
depends_on("intel-tbb@2019.9:", when="@13.0.0:")
depends_on("tbb@2018.6.0:", when="@10.0.0:12.3.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",
@@ -89,21 +124,92 @@ 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 = [
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),
"-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("LibIberty_LIBRARIES", spec["libiberty"].libs),
self.define_from_variant("USE_OpenMP", "openmp"),
self.define_from_variant("ENABLE_STATIC_LIBS", "static"),
]
# Make sure Dyninst doesn't try to build its own dependencies outside of Spack
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
if spec.satisfies("@10.2.0:12.3.0"):
args.append(self.define("STERILE_BUILD", True))
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")
return args

View File

@@ -0,0 +1,11 @@
--- 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();

View File

@@ -0,0 +1,34 @@
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.

View File

@@ -0,0 +1,73 @@
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();
}
}

View File

@@ -14,7 +14,7 @@ class Enzyme(CMakePackage):
"""
homepage = "https://enzyme.mit.edu"
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.172.tar.gz"
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.15.tar.gz"
list_url = "https://github.com/wsmoses/Enzyme/releases"
git = "https://github.com/wsmoses/Enzyme"
@@ -23,7 +23,6 @@ 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")
@@ -43,8 +42,7 @@ 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:0.0.148")
depends_on("llvm@15:19", when="@0.0.149:")
depends_on("llvm@11:19", when="@0.0.100:")
depends_on("cmake@3.13:", type="build")
def cmake_args(self):

View File

@@ -20,16 +20,12 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
tags = ["e4s"]
version("2.3.1", tag="v2.3.1", commit="6c04b9b21790533e457764bd7f8f26757db1552f")
version("develop", branch="develop", deprecated=True)
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", deprecated=True
)
version(
"2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22", deprecated=True
)
version("2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0")
version("2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22")
variant(
"backend",
@@ -50,8 +46,8 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
description="Set Caliper Profiling Detail",
multi=False,
)
variant("kokkos", default=False, description="Enable Kokkos Support", when="@:2.3.1")
variant("openmp", default=False, description="Enable OpenMP Support", when="@:2.3.1")
variant("kokkos", default=False, description="Enable Kokkos Support")
variant("openmp", default=False, description="Enable OpenMP Support")
depends_on("c", type="build")
depends_on("cxx", type="build")
@@ -73,22 +69,18 @@ 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@3.7:", when="@2.4:")
depends_on("kokkos +cuda", when="+kokkos +cuda")
requires("^kokkos +cuda_constexpr +cuda_lambda", when="^kokkos +cuda")
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda")
depends_on("kokkos +rocm", when="+kokkos +rocm")
depends_on("kokkos +openmp", when="+kokkos +openmp")
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-20210122", when="backend=legion @2.0:2.2.1")
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 ^kokkos+openmp")
depends_on("legion+cuda", when="backend=legion ^kokkos+cuda")
depends_on("legion+rocm", when="backend=legion ^kokkos+rocm")
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("hdf5@1.10.7:", when="backend=legion +hdf5")
depends_on("hpx@1.10.0: cxxstd=17 malloc=system", when="backend=hpx")
depends_on("mpi")
@@ -105,13 +97,11 @@ 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}"
@@ -140,13 +130,13 @@ def cmake_args(self):
self.define_from_variant("ENABLE_DOCUMENTATION", "doc"),
]
if self.spec.satisfies("^kokkos +rocm"):
if self.spec.satisfies("+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

View File

@@ -18,8 +18,6 @@ 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"
@@ -66,13 +64,6 @@ 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
@@ -140,7 +131,6 @@ 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"),

View File

@@ -23,7 +23,6 @@ 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")

View File

@@ -1,177 +0,0 @@
# 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)

View File

@@ -5,6 +5,7 @@
import os
import re
import spack.build_environment
from spack.hooks.sbang import filter_shebang
from spack.package import *
@@ -324,6 +325,33 @@ 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.
@@ -645,3 +673,69 @@ 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)

View File

@@ -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" and not self.spec.platform == "windows":
if name == "cxxflags":
# 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.satisfies("@:67"):
if self.spec.satsifies("@:67"):
solution_path = solution_path / "icu"
solution_path = solution_path / "source" / "allinone"
return str(solution_path)

View File

@@ -23,7 +23,6 @@ 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")

View File

@@ -20,7 +20,6 @@ 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")

View File

@@ -15,7 +15,6 @@ 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")

View File

@@ -730,19 +730,6 @@ 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

View File

@@ -1,10 +0,0 @@
--- 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 {

View File

@@ -25,6 +25,3 @@ 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:")

View File

@@ -1,97 +0,0 @@
# 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"]

View File

@@ -21,7 +21,6 @@ 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")

View File

@@ -21,7 +21,6 @@ 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")

View File

@@ -1,62 +0,0 @@
# 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

View File

@@ -1,34 +0,0 @@
# 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)

View File

@@ -18,7 +18,6 @@ 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")

View File

@@ -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")

View File

@@ -1,37 +0,0 @@
# 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")

View File

@@ -14,7 +14,6 @@ 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")
@@ -52,8 +51,7 @@ 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@15", when="@0.44:")
depends_on("llvm@14", when="@0.41:0.43")
depends_on("llvm@14", when="@0.41:")
depends_on("llvm@11:14", when="@0.40")
depends_on("llvm@11", when="@0.37:0.39")
for t in [
@@ -68,7 +66,6 @@ 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")

View File

@@ -17,7 +17,6 @@ class PyMaturin(PythonPackage):
license("Apache-2.0")
version("1.8.2", sha256="e31abc70f6f93285d6e63d2f4459c079c94c259dd757370482d2d4ceb9ec1fa0")
version("1.6.0", sha256="b955025c24c8babc808db49e0ff90db8b4b1320dcc16b14eb26132841737230d")
version("1.5.1", sha256="3dd834ece80edb866af18cbd4635e0ecac40139c726428d5f1849ae154b26dca")
version("1.4.0", sha256="ed12e1768094a7adeafc3a74ebdb8dc2201fa64c4e7e31f14cfc70378bf93790")
@@ -43,5 +42,4 @@ class PyMaturin(PythonPackage):
# May be an accidental dependency, remove in the future
# https://git.alpinelinux.org/aports/commit/?id=7ad298b467403b96a6b97d050170e367f147a75f
# https://patchwork.yoctoproject.org/project/oe-core/patch/8803dc101b641c948805cab9e5784c38f43b0e51.1702791173.git.tim.orling@konsulko.com/
# This seems to still be an issue for others
depends_on("bzip2")
depends_on("bzip2", when="platform=darwin")

View File

@@ -16,7 +16,6 @@ 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")
@@ -47,9 +46,6 @@ 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"))
@@ -57,7 +53,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:2.2", when="@0.60:", type=("build", "run"))
depends_on("py-numpy@2.0", 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"))
@@ -67,7 +63,6 @@ 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"))

View File

@@ -13,11 +13,8 @@ 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")

View File

@@ -26,7 +26,6 @@ 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")

View File

@@ -20,7 +20,6 @@ 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")

View File

@@ -15,11 +15,8 @@ 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")
@@ -36,44 +33,37 @@ 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.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.26:2", when="@0.14:", 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: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")
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")
# 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.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.18:", 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", when="@:0.14.1")
conflicts("^py-scipy@1.9.2")
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"))

View File

@@ -17,17 +17,13 @@ class PyTorchNvidiaApex(PythonPackage, CudaPackage):
license("BSD-3-Clause")
version("master", branch="master")
version(
"24.04.01",
sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce",
preferred=True,
)
version("24.04.01", sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce")
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", deprecated=True)
version("2020-10-19", commit="8a1ed9e8d35dfad26fb973996319965e4224dcdd")
depends_on("c", type="build")
depends_on("cxx", type="build")
@@ -79,17 +75,6 @@ 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",

View File

@@ -24,7 +24,6 @@ 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")
@@ -165,18 +164,17 @@ 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")
depends_on("py-numpy@1.16.6:")
# https://github.com/pytorch/pytorch/issues/107302
depends_on("py-numpy@:1", when="@:2.2")
depends_on("py-pyyaml")
@@ -190,18 +188,15 @@ 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-11-08", when="@2.6:+xnnpack")
# depends_on("xnnpack@2024-02-29", when="@2.3:2.5+xnnpack")
# depends_on("xnnpack@2024-02-29", when="@2.3:+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-26", when="@2.6:")
depends_on("cpuinfo@2024-09-06", when="@2.5.1")
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")
@@ -221,8 +216,7 @@ 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.17.0", when="@2.6:")
# depends_on("onnx@1.16.0", when="@2.3:2.5")
# depends_on("onnx@1.16.0", when="@2.3:")
# 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")
@@ -248,8 +242,7 @@ 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.6:", when="@2.6:")
depends_on("py-pybind11@2.13.5:", when="@2.5")
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")
@@ -316,14 +309,6 @@ 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",
@@ -358,9 +343,6 @@ 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")
@@ -690,7 +672,6 @@ 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")

View File

@@ -1,34 +0,0 @@
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);
}

View File

@@ -17,7 +17,6 @@ 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")
@@ -67,8 +66,7 @@ class PyTorchaudio(PythonPackage):
with default_args(type=("build", "link", "run")):
# Based on PyPI wheel availability
depends_on("python@3.9:3.13", when="@2.6:")
depends_on("python@3.9:3.12", when="@2.5")
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")
@@ -76,7 +74,6 @@ 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")
@@ -129,7 +126,7 @@ class PyTorchaudio(PythonPackage):
patch(
"https://github.com/pytorch/audio/pull/3811.patch?full_index=1",
sha256="34dce3403abb03f62827e8a1efcdb2bf7742477a01f155ebb9c7fefe9588b132",
when="@2.2:2.5",
when="@2.2:",
)
conflicts("^cuda@12.5:", when="@:2.1")

View File

@@ -18,7 +18,6 @@ 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")
@@ -86,6 +85,8 @@ 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"))
@@ -96,8 +97,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.21:")
depends_on("python@3.8:3.12", when="@0.17:0.20")
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.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")
@@ -105,7 +106,6 @@ 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,6 +156,8 @@ 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")
@@ -212,7 +214,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", "nvjpeg", "video_codec", "ffmpeg"]
extensions = ["png", "jpeg", "webp", "heic", "avif", "nvjpeg", "video_codec", "ffmpeg"]
for extension in extensions:
env.set(f"TORCHVISION_USE_{extension.upper()}", int(f"+{extension}" in self.spec))

View File

@@ -13,7 +13,6 @@ class PyXesmf(PythonPackage):
license("MIT")
version("0.8.8", sha256="8588f83007ce7011379991f516be3691df6fb30486741f0e1c33aa962056ea33")
version("0.8.4", sha256="c5a2c4b3e8dbbc9fccd5772a940f9067d68e824215ef87ba222b06718c4eeb56")
with default_args(type="build"):
@@ -22,9 +21,9 @@ class PyXesmf(PythonPackage):
with default_args(type=("build", "run")):
depends_on("py-cf-xarray@0.5.1:")
# esmf +python is only handled correctly in spack for 8.4+
depends_on("esmf@8.4.0: +python")
# TODO: add optional dependency
# https://github.com/esmf-org/esmf/tree/develop/src/addon/esmpy
# depends_on("py-esmpy@8:")
depends_on("py-numba@0.55.2:")
depends_on("py-numpy@1.16:")
depends_on("py-shapely")

View File

@@ -22,7 +22,6 @@ 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")
@@ -64,11 +63,3 @@ 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")

View File

@@ -18,8 +18,6 @@ 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("cxx", type="build")
depends_on("llvm+clang+flang@19", type=("build", "link", "run"))
depends_on("llvm+clang+flang@19:")

View File

@@ -19,7 +19,6 @@ 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")
@@ -122,8 +121,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"),
@@ -134,10 +133,7 @@ def cmake_args(self):
self.define_from_variant("MPI_THREAD_MULTIPLE", "mpi_thread"),
]
if self.pkg.version > Version("7.0.4"):
args.append(self.define("ENABLE_TESTS", self.pkg.run_tests))
if "+int64" in self.spec:
if "+int64" in spec:
args.append("-DINTSIZE=64")
return args

View File

@@ -53,12 +53,7 @@ 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",
when="+root",
)
variant("hepmc3root", default=False, description="Enable HepMC (version 3.1+) ROOT support")
variant("rivet", default=False, description="Enable Rivet support")
variant("fastjet", default=True, when="@:2", description="Enable FASTJET")
variant("openloops", default=False, description="Enable OpenLoops")

View File

@@ -20,7 +20,6 @@ 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")

View File

@@ -111,6 +111,7 @@ 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")
@@ -122,6 +123,7 @@ 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")

View File

@@ -30,9 +30,6 @@ class Spectre(CMakePackage):
license("MIT")
version("develop", branch="develop")
version(
"2025.01.30", sha256="1b79c297ca85e9c2c6242e3880144587fc8a1791124887a83f428c6301a80fe3"
)
version(
"2024.12.16", sha256="ddd53fc6e5b42bca5d636862b69859ff7040ac243e097a4a6c0a8d0a8c58ffce"
)

View File

@@ -5,7 +5,7 @@
from spack.package import *
class Spiner(CMakePackage):
class Spiner(CMakePackage, CudaPackage):
"""Spiner:
Performance portable routines for generic, tabulated, multi-dimensional data"""
@@ -18,7 +18,6 @@ class Spiner(CMakePackage):
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")
@@ -45,6 +44,7 @@ class Spiner(CMakePackage):
# "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,8 +61,11 @@ class Spiner(CMakePackage):
# 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")
depends_on("kokkos@3.3.00:", when="+kokkos")
requires("^kokkos+cuda_lambda+cuda_constexpr", when="+kokkos ^kokkos+cuda")
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("hdf5+hl~mpi", when="+hdf5~mpi")
depends_on("hdf5+hl+mpi", when="+hdf5+mpi")
@@ -72,31 +75,26 @@ class Spiner(CMakePackage):
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 self.spec.satisfies("^kokkos+cuda"):
if "+cuda" in self.spec:
args.append(
self.define(
"CMAKE_CUDA_ARCHITECTURES", self.spec["kokkos"].variants["cuda_arch"].value
)
self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.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

View File

@@ -35,6 +35,11 @@ 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
@@ -51,7 +56,8 @@ 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 +stat_dysect", when="+dysect")
depends_on("dyninst@:9", when="@:4.0.1")
depends_on("dyninst@8.2.1+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")