Compare commits
56 Commits
balay/cuda
...
hs/fix/cma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25c74506a3 | ||
|
|
e37e53cfe8 | ||
|
|
cf31d20d4c | ||
|
|
b74db341c8 | ||
|
|
e88a3f6f85 | ||
|
|
9bd7483e73 | ||
|
|
04c76fab63 | ||
|
|
ecbf9fcacf | ||
|
|
69fb594699 | ||
|
|
d28614151f | ||
|
|
f1d6af6c94 | ||
|
|
192821f361 | ||
|
|
18790ca397 | ||
|
|
c22d77a38e | ||
|
|
d82bdb3bf7 | ||
|
|
a042bdfe0b | ||
|
|
60e3e645e8 | ||
|
|
51785437bc | ||
|
|
2e8db0815d | ||
|
|
8a6428746f | ||
|
|
6b9c099af8 | ||
|
|
30814fb4e0 | ||
|
|
3194be2e92 | ||
|
|
41be2f5899 | ||
|
|
02af41ebb3 | ||
|
|
9d33c89030 | ||
|
|
51ab7bad3b | ||
|
|
0b094f2473 | ||
|
|
cd306d0bc6 | ||
|
|
fdb9cf2412 | ||
|
|
a546441d2e | ||
|
|
141cdb6810 | ||
|
|
f2ab74efe5 | ||
|
|
38b838e405 | ||
|
|
c037188b59 | ||
|
|
0835a3c5f2 | ||
|
|
38a2f9c2f2 | ||
|
|
eecd4afe58 | ||
|
|
83624551e0 | ||
|
|
741652caa1 | ||
|
|
8e914308f0 | ||
|
|
3c220d0989 | ||
|
|
8094fa1e2f | ||
|
|
5c67051980 | ||
|
|
c01fb9a6d2 | ||
|
|
bf12bb57e7 | ||
|
|
406c73ae11 | ||
|
|
3f50ccfcdd | ||
|
|
9883a2144d | ||
|
|
94815d2227 | ||
|
|
a15563f890 | ||
|
|
ac2ede8d2f | ||
|
|
b256a7c50d | ||
|
|
21e10d6d98 | ||
|
|
ed39967848 | ||
|
|
eda0c6888e |
2
.github/workflows/build-containers.yml
vendored
2
.github/workflows/build-containers.yml
vendored
@@ -120,7 +120,7 @@ jobs:
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
|
||||
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75
|
||||
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
|
||||
with:
|
||||
context: dockerfiles/${{ matrix.dockerfile[0] }}
|
||||
platforms: ${{ matrix.dockerfile[1] }}
|
||||
|
||||
@@ -21,7 +21,6 @@ packages:
|
||||
armci: [armcimpi]
|
||||
blas: [openblas, amdblis]
|
||||
c: [gcc]
|
||||
cub-api: [cub]
|
||||
cxx: [gcc]
|
||||
D: [ldc]
|
||||
daal: [intel-oneapi-daal]
|
||||
|
||||
@@ -1326,6 +1326,7 @@ Required:
|
||||
* Microsoft Visual Studio
|
||||
* Python
|
||||
* Git
|
||||
* 7z
|
||||
|
||||
Optional:
|
||||
* Intel Fortran (needed for some packages)
|
||||
@@ -1391,6 +1392,13 @@ as the project providing Git support on Windows. This is additionally the recomm
|
||||
for installing Git on Windows, a link to which can be found above. Spack requires the
|
||||
utilities vendored by this project.
|
||||
|
||||
"""
|
||||
7zip
|
||||
"""
|
||||
|
||||
A tool for extracting ``.xz`` files is required for extracting source tarballs. The latest 7zip
|
||||
can be located at https://sourceforge.net/projects/sevenzip/.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 2: Install and setup Spack
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
Callable,
|
||||
Deque,
|
||||
Dict,
|
||||
Generator,
|
||||
Iterable,
|
||||
List,
|
||||
Match,
|
||||
@@ -2838,6 +2839,25 @@ def temporary_dir(
|
||||
remove_directory_contents(tmp_dir)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def edit_in_place_through_temporary_file(file_path: str) -> Generator[str, None, None]:
|
||||
"""Context manager for modifying ``file_path`` in place, preserving its inode and hardlinks,
|
||||
for functions or external tools that do not support in-place editing. Notice that this function
|
||||
is unsafe in that it works with paths instead of a file descriptors, but this is by design,
|
||||
since we assume the call site will create a new inode at the same path."""
|
||||
tmp_fd, tmp_path = tempfile.mkstemp(
|
||||
dir=os.path.dirname(file_path), prefix=f"{os.path.basename(file_path)}."
|
||||
)
|
||||
# windows cannot replace a file with open fds, so close since the call site needs to replace.
|
||||
os.close(tmp_fd)
|
||||
try:
|
||||
shutil.copyfile(file_path, tmp_path, follow_symlinks=True)
|
||||
yield tmp_path
|
||||
shutil.copyfile(tmp_path, file_path, follow_symlinks=True)
|
||||
finally:
|
||||
os.unlink(tmp_path)
|
||||
|
||||
|
||||
def filesummary(path, print_bytes=16) -> Tuple[int, bytes]:
|
||||
"""Create a small summary of the given file. Does not error
|
||||
when file does not exist.
|
||||
|
||||
@@ -2334,7 +2334,9 @@ def is_backup_file(file):
|
||||
if not codesign:
|
||||
return
|
||||
for binary in changed_files:
|
||||
codesign("-fs-", binary)
|
||||
# preserve the original inode by running codesign on a copy
|
||||
with fsys.edit_in_place_through_temporary_file(binary) as tmp_binary:
|
||||
codesign("-fs-", tmp_binary)
|
||||
|
||||
# If we are installing back to the same location
|
||||
# relocate the sbang location if the spack directory changed
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
import re
|
||||
import sys
|
||||
from itertools import chain
|
||||
from typing import Any, List, Optional, Set, Tuple
|
||||
from typing import Any, List, Optional, Tuple
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
from llnl.util.lang import stable_partition
|
||||
@@ -21,6 +21,7 @@
|
||||
import spack.phase_callbacks
|
||||
import spack.spec
|
||||
import spack.util.prefix
|
||||
from spack import traverse
|
||||
from spack.directives import build_system, conflicts, depends_on, variant
|
||||
from spack.multimethod import when
|
||||
from spack.util.environment import filter_system_paths
|
||||
@@ -166,15 +167,18 @@ def _values(x):
|
||||
def get_cmake_prefix_path(pkg: spack.package_base.PackageBase) -> List[str]:
|
||||
"""Obtain the CMAKE_PREFIX_PATH entries for a package, based on the cmake_prefix_path package
|
||||
attribute of direct build/test and transitive link dependencies."""
|
||||
# Add direct build/test deps
|
||||
selected: Set[str] = {s.dag_hash() for s in pkg.spec.dependencies(deptype=dt.BUILD | dt.TEST)}
|
||||
# Add transitive link deps
|
||||
selected.update(s.dag_hash() for s in pkg.spec.traverse(root=False, deptype=dt.LINK))
|
||||
# Separate out externals so they do not shadow Spack prefixes
|
||||
externals, spack_built = stable_partition(
|
||||
(s for s in pkg.spec.traverse(root=False, order="topo") if s.dag_hash() in selected),
|
||||
lambda x: x.external,
|
||||
edges = traverse.traverse_topo_edges_generator(
|
||||
traverse.with_artificial_edges([pkg.spec]),
|
||||
visitor=traverse.MixedDepthVisitor(
|
||||
direct=dt.BUILD | dt.TEST, transitive=dt.LINK | dt.RUN, key=traverse.by_dag_hash
|
||||
),
|
||||
key=traverse.by_dag_hash,
|
||||
root=False,
|
||||
all_edges=False, # cover all nodes, not all edges
|
||||
)
|
||||
ordered_specs = [edge.spec for edge in edges]
|
||||
# Separate out externals so they do not shadow Spack prefixes
|
||||
externals, spack_built = stable_partition((s for s in ordered_specs), lambda x: x.external)
|
||||
|
||||
return filter_system_paths(
|
||||
path for spec in chain(spack_built, externals) for path in spec.package.cmake_prefix_paths
|
||||
|
||||
@@ -124,8 +124,8 @@ def setup_custom_environment(self, pkg, env):
|
||||
# Edge cases for Intel's oneAPI compilers when using the legacy classic compilers:
|
||||
# Always pass flags to disable deprecation warnings, since these warnings can
|
||||
# confuse tools that parse the output of compiler commands (e.g. version checks).
|
||||
if self.real_version >= Version("2021") and self.real_version <= Version("2023"):
|
||||
if self.real_version >= Version("2021") and self.real_version < Version("2024"):
|
||||
env.append_flags("SPACK_ALWAYS_CFLAGS", "-diag-disable=10441")
|
||||
env.append_flags("SPACK_ALWAYS_CXXFLAGS", "-diag-disable=10441")
|
||||
if self.real_version >= Version("2021") and self.real_version <= Version("2024"):
|
||||
if self.real_version >= Version("2021") and self.real_version < Version("2025"):
|
||||
env.append_flags("SPACK_ALWAYS_FFLAGS", "-diag-disable=10448")
|
||||
|
||||
@@ -155,10 +155,10 @@ def setup_custom_environment(self, pkg, env):
|
||||
# icx+icpx+ifx or icx+icpx+ifort. But to be on the safe side (some users may
|
||||
# want to try to swap icpx against icpc, for example), and since the Intel LLVM
|
||||
# compilers accept these diag-disable flags, we apply them for all compilers.
|
||||
if self.real_version >= Version("2021") and self.real_version <= Version("2023"):
|
||||
if self.real_version >= Version("2021") and self.real_version < Version("2024"):
|
||||
env.append_flags("SPACK_ALWAYS_CFLAGS", "-diag-disable=10441")
|
||||
env.append_flags("SPACK_ALWAYS_CXXFLAGS", "-diag-disable=10441")
|
||||
if self.real_version >= Version("2021") and self.real_version <= Version("2024"):
|
||||
if self.real_version >= Version("2021") and self.real_version < Version("2025"):
|
||||
env.append_flags("SPACK_ALWAYS_FFLAGS", "-diag-disable=10448")
|
||||
|
||||
# 2024 release bumped the libsycl version because of an ABI
|
||||
|
||||
@@ -375,23 +375,16 @@ def phase_tests(self, builder, phase_name: str, method_names: List[str]):
|
||||
|
||||
for name in method_names:
|
||||
try:
|
||||
# Prefer the method in the package over the builder's.
|
||||
# We need this primarily to pick up arbitrarily named test
|
||||
# methods but also some build-time checks.
|
||||
fn = getattr(builder.pkg, name, getattr(builder, name))
|
||||
|
||||
msg = f"RUN-TESTS: {phase_name}-time tests [{name}]"
|
||||
print_message(logger, msg, verbose)
|
||||
|
||||
fn()
|
||||
|
||||
fn = getattr(builder, name, None) or getattr(builder.pkg, name)
|
||||
except AttributeError as e:
|
||||
msg = f"RUN-TESTS: method not implemented [{name}]"
|
||||
print_message(logger, msg, verbose)
|
||||
|
||||
self.add_failure(e, msg)
|
||||
print_message(logger, f"RUN-TESTS: method not implemented [{name}]", verbose)
|
||||
self.add_failure(e, f"RUN-TESTS: method not implemented [{name}]")
|
||||
if fail_fast:
|
||||
break
|
||||
continue
|
||||
|
||||
print_message(logger, f"RUN-TESTS: {phase_name}-time tests [{name}]", verbose)
|
||||
fn()
|
||||
|
||||
if have_tests:
|
||||
print_message(logger, "Completed testing", verbose)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
import macholib.mach_o
|
||||
import macholib.MachO
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
import llnl.util.lang
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.lang import memoized
|
||||
@@ -275,10 +276,10 @@ def modify_macho_object(cur_path, rpaths, deps, idpath, paths_to_paths):
|
||||
|
||||
# Deduplicate and flatten
|
||||
args = list(itertools.chain.from_iterable(llnl.util.lang.dedupe(args)))
|
||||
install_name_tool = executable.Executable("install_name_tool")
|
||||
if args:
|
||||
args.append(str(cur_path))
|
||||
install_name_tool = executable.Executable("install_name_tool")
|
||||
install_name_tool(*args)
|
||||
with fs.edit_in_place_through_temporary_file(cur_path) as temp_path:
|
||||
install_name_tool(*args, temp_path)
|
||||
|
||||
|
||||
def macholib_get_paths(cur_path):
|
||||
@@ -717,8 +718,8 @@ def fixup_macos_rpath(root, filename):
|
||||
# No fixes needed
|
||||
return False
|
||||
|
||||
args.append(abspath)
|
||||
executable.Executable("install_name_tool")(*args)
|
||||
with fs.edit_in_place_through_temporary_file(abspath) as temp_path:
|
||||
executable.Executable("install_name_tool")(*args, temp_path)
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@@ -1249,3 +1249,14 @@ def test_find_input_types(tmp_path: pathlib.Path):
|
||||
|
||||
with pytest.raises(TypeError):
|
||||
fs.find(1, "file.txt") # type: ignore
|
||||
|
||||
|
||||
def test_edit_in_place_through_temporary_file(tmp_path):
|
||||
(tmp_path / "example.txt").write_text("Hello")
|
||||
current_ino = os.stat(tmp_path / "example.txt").st_ino
|
||||
with fs.edit_in_place_through_temporary_file(tmp_path / "example.txt") as temporary:
|
||||
os.unlink(temporary)
|
||||
with open(temporary, "w") as f:
|
||||
f.write("World")
|
||||
assert (tmp_path / "example.txt").read_text() == "World"
|
||||
assert os.stat(tmp_path / "example.txt").st_ino == current_ino
|
||||
|
||||
@@ -20,9 +20,8 @@ def create_dag(nodes, edges):
|
||||
"""
|
||||
specs = {name: Spec(name) for name in nodes}
|
||||
for parent, child, deptypes in edges:
|
||||
specs[parent].add_dependency_edge(
|
||||
specs[child], depflag=dt.canonicalize(deptypes), virtuals=()
|
||||
)
|
||||
depflag = deptypes if isinstance(deptypes, dt.DepFlag) else dt.canonicalize(deptypes)
|
||||
specs[parent].add_dependency_edge(specs[child], depflag=depflag, virtuals=())
|
||||
return specs
|
||||
|
||||
|
||||
@@ -454,3 +453,61 @@ def test_topo_is_bfs_for_trees(cover):
|
||||
assert list(traverse.traverse_nodes([binary_tree["A"]], order="topo", cover=cover)) == list(
|
||||
traverse.traverse_nodes([binary_tree["A"]], order="breadth", cover=cover)
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("roots", [["A"], ["A", "B"], ["B", "A"], ["A", "B", "A"]])
|
||||
@pytest.mark.parametrize("order", ["breadth", "post", "pre"])
|
||||
@pytest.mark.parametrize("include_root", [True, False])
|
||||
def test_mixed_depth_visitor(roots, order, include_root):
|
||||
"""Test that the MixedDepthVisitor lists unique edges that are reachable either directly from
|
||||
roots through build type edges, or transitively through link type edges. The tests ensures that
|
||||
unique edges are listed exactly once."""
|
||||
my_graph = create_dag(
|
||||
nodes=["A", "B", "C", "D", "E", "F", "G", "H", "I"],
|
||||
edges=(
|
||||
("A", "B", dt.LINK | dt.RUN),
|
||||
("A", "C", dt.BUILD),
|
||||
("A", "D", dt.BUILD | dt.RUN),
|
||||
("A", "H", dt.LINK),
|
||||
("A", "I", dt.RUN),
|
||||
("B", "D", dt.BUILD | dt.LINK),
|
||||
("C", "E", dt.BUILD | dt.LINK | dt.RUN),
|
||||
("D", "F", dt.LINK),
|
||||
("D", "G", dt.BUILD | dt.RUN),
|
||||
("H", "B", dt.LINK),
|
||||
),
|
||||
)
|
||||
starting_points = traverse.with_artificial_edges([my_graph[root] for root in roots])
|
||||
visitor = traverse.MixedDepthVisitor(direct=dt.BUILD, transitive=dt.LINK)
|
||||
|
||||
if order == "pre":
|
||||
edges = traverse.traverse_depth_first_edges_generator(
|
||||
starting_points, visitor, post_order=False, root=include_root
|
||||
)
|
||||
elif order == "post":
|
||||
edges = traverse.traverse_depth_first_edges_generator(
|
||||
starting_points, visitor, post_order=True, root=include_root
|
||||
)
|
||||
elif order == "breadth":
|
||||
edges = traverse.traverse_breadth_first_edges_generator(
|
||||
starting_points, visitor, root=include_root
|
||||
)
|
||||
|
||||
artificial_edges = [(None, root) for root in roots] if include_root else []
|
||||
simple_edges = [
|
||||
(None if edge.parent is None else edge.parent.name, edge.spec.name) for edge in edges
|
||||
]
|
||||
|
||||
# make sure that every edge is listed exactly once and that the right edges are listed
|
||||
assert len(simple_edges) == len(set(simple_edges))
|
||||
assert set(simple_edges) == {
|
||||
# the roots
|
||||
*artificial_edges,
|
||||
("A", "B"),
|
||||
("A", "C"),
|
||||
("A", "D"),
|
||||
("A", "H"),
|
||||
("B", "D"),
|
||||
("D", "F"),
|
||||
("H", "B"),
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from collections import defaultdict
|
||||
from typing import NamedTuple, Union
|
||||
from typing import Any, Callable, List, NamedTuple, Set, Union
|
||||
|
||||
import spack.deptypes as dt
|
||||
import spack.spec
|
||||
@@ -115,6 +115,64 @@ def neighbors(self, item):
|
||||
return self.visitor.neighbors(item)
|
||||
|
||||
|
||||
class MixedDepthVisitor:
|
||||
"""Visits all unique edges of the sub-DAG induced by direct dependencies of type ``direct``
|
||||
and transitive dependencies of type ``transitive``. An example use for this is traversing build
|
||||
type dependencies non-recursively, and link dependencies recursively."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
direct: dt.DepFlag,
|
||||
transitive: dt.DepFlag,
|
||||
key: Callable[["spack.spec.Spec"], Any] = id,
|
||||
) -> None:
|
||||
self.direct_type = direct
|
||||
self.transitive_type = transitive
|
||||
self.key = key
|
||||
self.seen: Set[Any] = set()
|
||||
self.seen_roots: Set[Any] = set()
|
||||
|
||||
def accept(self, item: EdgeAndDepth) -> bool:
|
||||
# Do not accept duplicate root nodes. This only happens if the user starts iterating from
|
||||
# multiple roots and lists one of the roots multiple times.
|
||||
if item.edge.parent is None:
|
||||
node_id = self.key(item.edge.spec)
|
||||
if node_id in self.seen_roots:
|
||||
return False
|
||||
self.seen_roots.add(node_id)
|
||||
return True
|
||||
|
||||
def neighbors(self, item: EdgeAndDepth) -> List[EdgeAndDepth]:
|
||||
# If we're here through an artificial source node, it's a root, and we return all
|
||||
# direct_type and transitive_type edges. If we're here through a transitive_type edge, we
|
||||
# return all transitive_type edges. To avoid returning the same edge twice:
|
||||
# 1. If we had already encountered the current node through a transitive_type edge, we
|
||||
# don't need to return transitive_type edges again.
|
||||
# 2. If we encounter the current node through a direct_type edge, and we had already seen
|
||||
# it through a transitive_type edge, only return the non-transitive_type, direct_type
|
||||
# edges.
|
||||
node_id = self.key(item.edge.spec)
|
||||
seen = node_id in self.seen
|
||||
is_root = item.edge.parent is None
|
||||
follow_transitive = is_root or bool(item.edge.depflag & self.transitive_type)
|
||||
follow = self.direct_type if is_root else dt.NONE
|
||||
|
||||
if follow_transitive and not seen:
|
||||
follow |= self.transitive_type
|
||||
self.seen.add(node_id)
|
||||
elif follow == dt.NONE:
|
||||
return []
|
||||
|
||||
edges = item.edge.spec.edges_to_dependencies(depflag=follow)
|
||||
|
||||
# filter direct_type edges already followed before becuase they were also transitive_type.
|
||||
if seen:
|
||||
edges = [edge for edge in edges if not edge.depflag & self.transitive_type]
|
||||
|
||||
return sort_edges(edges)
|
||||
|
||||
|
||||
def get_visitor_from_args(
|
||||
cover, direction, depflag: Union[dt.DepFlag, dt.DepTypes], key=id, visited=None, visitor=None
|
||||
):
|
||||
@@ -342,9 +400,7 @@ def traverse_topo_edges_generator(edges, visitor, key=id, root=True, all_edges=F
|
||||
# maps parent identifier to a list of edges, where None is a special identifier
|
||||
# for the artificial root/source.
|
||||
node_to_edges = defaultdict(list)
|
||||
for edge in traverse_breadth_first_edges_generator(
|
||||
edges, CoverEdgesVisitor(visitor, key=key), root=True, depth=False
|
||||
):
|
||||
for edge in traverse_breadth_first_edges_generator(edges, visitor, root=True, depth=False):
|
||||
in_edge_count[key(edge.spec)] += 1
|
||||
parent_id = key(edge.parent) if edge.parent is not None else None
|
||||
node_to_edges[parent_id].append(edge)
|
||||
@@ -422,9 +478,9 @@ def traverse_edges(
|
||||
elif order not in ("post", "pre", "breadth"):
|
||||
raise ValueError(f"Unknown order {order}")
|
||||
|
||||
# In topo traversal we need to construct a sub-DAG including all edges even if we are yielding
|
||||
# a subset of them, hence "paths".
|
||||
_cover = "paths" if order == "topo" else cover
|
||||
# In topo traversal we need to construct a sub-DAG including all unique edges even if we are
|
||||
# yielding a subset of them, hence "edges".
|
||||
_cover = "edges" if order == "topo" else cover
|
||||
visitor = get_visitor_from_args(_cover, direction, deptype, key, visited)
|
||||
root_edges = with_artificial_edges(specs)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import re
|
||||
import struct
|
||||
from struct import calcsize, unpack, unpack_from
|
||||
from typing import BinaryIO, Dict, List, NamedTuple, Optional, Pattern, Tuple
|
||||
from typing import BinaryIO, Callable, Dict, List, NamedTuple, Optional, Pattern, Tuple
|
||||
|
||||
|
||||
class ElfHeader(NamedTuple):
|
||||
@@ -476,6 +476,31 @@ def get_interpreter(path: str) -> Optional[str]:
|
||||
return None
|
||||
|
||||
|
||||
def _delete_dynamic_array_entry(
|
||||
f: BinaryIO, elf: ElfFile, should_delete: Callable[[int, int], bool]
|
||||
) -> None:
|
||||
f.seek(elf.pt_dynamic_p_offset)
|
||||
dynamic_array_fmt = elf.byte_order + ("qQ" if elf.is_64_bit else "lL")
|
||||
dynamic_array_size = calcsize(dynamic_array_fmt)
|
||||
new_offset = elf.pt_dynamic_p_offset # points to the new dynamic array
|
||||
old_offset = elf.pt_dynamic_p_offset # points to the current dynamic array
|
||||
for _ in range(elf.pt_dynamic_p_filesz // dynamic_array_size):
|
||||
data = read_exactly(f, dynamic_array_size, "Malformed dynamic array entry")
|
||||
tag, val = unpack(dynamic_array_fmt, data)
|
||||
|
||||
if tag == ELF_CONSTANTS.DT_NULL or not should_delete(tag, val):
|
||||
if new_offset != old_offset:
|
||||
f.seek(new_offset)
|
||||
f.write(data)
|
||||
f.seek(old_offset + dynamic_array_size)
|
||||
new_offset += dynamic_array_size
|
||||
|
||||
if tag == ELF_CONSTANTS.DT_NULL:
|
||||
break
|
||||
|
||||
old_offset += dynamic_array_size
|
||||
|
||||
|
||||
def delete_rpath(path: str) -> None:
|
||||
"""Modifies a binary to remove the rpath. It zeros out the rpath string and also drops the
|
||||
DT_R(UN)PATH entry from the dynamic section, so it doesn't show up in 'readelf -d file', nor
|
||||
@@ -492,29 +517,22 @@ def delete_rpath(path: str) -> None:
|
||||
f.seek(rpath_offset)
|
||||
f.write(new_rpath_string)
|
||||
|
||||
# Next update the dynamic array
|
||||
f.seek(elf.pt_dynamic_p_offset)
|
||||
dynamic_array_fmt = elf.byte_order + ("qQ" if elf.is_64_bit else "lL")
|
||||
dynamic_array_size = calcsize(dynamic_array_fmt)
|
||||
new_offset = elf.pt_dynamic_p_offset # points to the new dynamic array
|
||||
old_offset = elf.pt_dynamic_p_offset # points to the current dynamic array
|
||||
for _ in range(elf.pt_dynamic_p_filesz // dynamic_array_size):
|
||||
data = read_exactly(f, dynamic_array_size, "Malformed dynamic array entry")
|
||||
tag, _ = unpack(dynamic_array_fmt, data)
|
||||
# Delete DT_RPATH / DT_RUNPATH entries from the dynamic section
|
||||
_delete_dynamic_array_entry(
|
||||
f, elf, lambda tag, _: tag == ELF_CONSTANTS.DT_RPATH or tag == ELF_CONSTANTS.DT_RUNPATH
|
||||
)
|
||||
|
||||
# Overwrite any entry that is not DT_RPATH or DT_RUNPATH, including DT_NULL
|
||||
if tag != ELF_CONSTANTS.DT_RPATH and tag != ELF_CONSTANTS.DT_RUNPATH:
|
||||
if new_offset != old_offset:
|
||||
f.seek(new_offset)
|
||||
f.write(data)
|
||||
f.seek(old_offset + dynamic_array_size)
|
||||
new_offset += dynamic_array_size
|
||||
|
||||
# End of the dynamic array
|
||||
if tag == ELF_CONSTANTS.DT_NULL:
|
||||
break
|
||||
def delete_needed_from_elf(f: BinaryIO, elf: ElfFile, needed: bytes) -> None:
|
||||
"""Delete a needed library from the dynamic section of an ELF file"""
|
||||
if not elf.has_needed or needed not in elf.dt_needed_strs:
|
||||
return
|
||||
|
||||
old_offset += dynamic_array_size
|
||||
offset = elf.dt_needed_strtab_offsets[elf.dt_needed_strs.index(needed)]
|
||||
|
||||
_delete_dynamic_array_entry(
|
||||
f, elf, lambda tag, val: tag == ELF_CONSTANTS.DT_NEEDED and val == offset
|
||||
)
|
||||
|
||||
|
||||
class CStringType:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
import sys
|
||||
|
||||
from llnl.util import tty
|
||||
from llnl.util.filesystem import join_path
|
||||
from llnl.util.filesystem import edit_in_place_through_temporary_file
|
||||
from llnl.util.lang import memoized
|
||||
|
||||
from spack.util.executable import Executable, which
|
||||
@@ -81,12 +81,11 @@ def fix_darwin_install_name(path):
|
||||
Parameters:
|
||||
path (str): directory in which .dylib files are located
|
||||
"""
|
||||
libs = glob.glob(join_path(path, "*.dylib"))
|
||||
libs = glob.glob(os.path.join(path, "*.dylib"))
|
||||
install_name_tool = Executable("install_name_tool")
|
||||
otool = Executable("otool")
|
||||
for lib in libs:
|
||||
# fix install name first:
|
||||
install_name_tool = Executable("install_name_tool")
|
||||
install_name_tool("-id", lib, lib)
|
||||
otool = Executable("otool")
|
||||
args = ["-id", lib]
|
||||
long_deps = otool("-L", lib, output=str).split("\n")
|
||||
deps = [dep.partition(" ")[0][1::] for dep in long_deps[2:-1]]
|
||||
# fix all dependencies:
|
||||
@@ -98,5 +97,8 @@ def fix_darwin_install_name(path):
|
||||
# but we don't know builddir (nor how symbolic links look
|
||||
# in builddir). We thus only compare the basenames.
|
||||
if os.path.basename(dep) == os.path.basename(loc):
|
||||
install_name_tool("-change", dep, loc, lib)
|
||||
args.extend(("-change", dep, loc))
|
||||
break
|
||||
|
||||
with edit_in_place_through_temporary_file(lib) as tmp:
|
||||
install_name_tool(*args, tmp)
|
||||
|
||||
@@ -8,8 +8,8 @@ packages:
|
||||
gromacs:
|
||||
require:
|
||||
- one_of:
|
||||
- "gromacs@2021.3 %arm ^fftw ^openmpi"
|
||||
- "gromacs@2021.3 %gcc ^armpl-gcc ^openmpi"
|
||||
- "gromacs@2024.3 %arm ^fftw ^openmpi"
|
||||
- "gromacs@2024.3 %gcc ^armpl-gcc ^openmpi"
|
||||
libfabric:
|
||||
buildable: true
|
||||
externals:
|
||||
|
||||
@@ -153,3 +153,8 @@ def install_additional_files(self):
|
||||
join_path(source_directory, "ADOL-C", "examples", "additional_examples")
|
||||
):
|
||||
Executable("./checkpointing/checkpointing")()
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
"""The name of the library differs from the package name => own libs handling."""
|
||||
return find_libraries(["libadolc"], root=self.prefix, shared=True, recursive=True)
|
||||
|
||||
@@ -15,21 +15,30 @@ class AllLibrary(CMakePackage):
|
||||
|
||||
homepage = "http://slms.pages.jsc.fz-juelich.de/websites/all-website/"
|
||||
url = "https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing/-/archive/v0.9.2/loadbalancing-v0.9.2.tar.gz"
|
||||
git = "https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing.git"
|
||||
|
||||
maintainers("junghans")
|
||||
|
||||
license("BSD-3-Clause", checked_by="junghans")
|
||||
|
||||
version("master", branch="master")
|
||||
version("0.9.2", sha256="2b4ef52c604c3c0c467712d0912a33c82177610b67edc14df1e034779c6ddb71")
|
||||
|
||||
variant("fortran", default=False, description="Build with fortran support")
|
||||
variant("shared", default=True, description="Build shared libraries")
|
||||
variant("vtk", default=False, description="Build with vtk support")
|
||||
variant(
|
||||
"voronoi",
|
||||
default=False,
|
||||
description="Enable voronoi-based loadbalancing scheme",
|
||||
when="@0.9.3:",
|
||||
)
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("fortran", type="build", when="+fortran")
|
||||
depends_on("vtk", when="+vtk")
|
||||
depends_on("voropp", when="+voronoi")
|
||||
|
||||
depends_on("mpi")
|
||||
|
||||
@@ -39,6 +48,7 @@ def cmake_args(self):
|
||||
self.define_from_variant("CM_ALL_FORTRAN", "fortran"),
|
||||
self.define_from_variant("CM_ALL_USE_F08", "fortran"),
|
||||
self.define_from_variant("CM_ALL_VTK_OUTPUT", "vtk"),
|
||||
self.define_from_variant("CM_ALL_VORONOI", "voronoi"),
|
||||
]
|
||||
|
||||
if self.run_tests:
|
||||
|
||||
@@ -18,6 +18,7 @@ class Apex(CMakePackage):
|
||||
|
||||
version("develop", branch="develop")
|
||||
version("master", branch="master")
|
||||
version("2.7.0", sha256="81cd7e8dbea35cec2360d6404e20f7527f66410614f06a73c8c782ac2cfdb0b0")
|
||||
version("2.6.5", sha256="2ba29a1198c904ac209fc6bc02962304a1416443b249f34ef96889aff39644ce")
|
||||
version("2.6.4", sha256="281a673f447762a488577beaa60e48d88cb6354f220457cf8f05c1de2e1fce70")
|
||||
version("2.6.3", sha256="7fef12937d3bd1271a01abe44cb931b1d63823fb5c74287a332f3012ed7297d5")
|
||||
|
||||
@@ -17,16 +17,12 @@ class Bitgroomingz(CMakePackage):
|
||||
version("master", branch="master")
|
||||
version("2022-10-14", commit="a018b20cca9f7d6a5396ab36230e4be6ae1cb25b")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant("shared", default=True, description="build shared libs")
|
||||
|
||||
depends_on("zlib-api")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
if self.spec.satisfies("+shared"):
|
||||
args.append("-DBUILD_SHARED_LIBS=ON")
|
||||
else:
|
||||
args.append("-DBUILD_SHARED_LIBS=OFF")
|
||||
return args
|
||||
return [self.define_from_variant("BUILD_SHARED_LIBS", "shared")]
|
||||
|
||||
@@ -101,6 +101,8 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage):
|
||||
variant("vtune", default=False, description="Enable Intel Vtune support")
|
||||
variant("kokkos", default=True, when="@2.3.0:", description="Enable Kokkos profiling support")
|
||||
variant("tests", default=False, description="Enable tests")
|
||||
variant("tools", default=True, description="Enable tools")
|
||||
|
||||
# TODO change the 'when' argument for the next release of Caliper
|
||||
variant("python", default=False, when="@master", description="Build Python bindings")
|
||||
|
||||
@@ -156,6 +158,7 @@ def initconfig_compiler_entries(self):
|
||||
|
||||
entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared")))
|
||||
entries.append(cmake_cache_option("BUILD_TESTING", spec.satisfies("+tests")))
|
||||
entries.append(cmake_cache_option("WITH_TOOLS", spec.satisfies("+tools")))
|
||||
entries.append(cmake_cache_option("BUILD_DOCS", False))
|
||||
entries.append(cmake_cache_path("PYTHON_EXECUTABLE", spec["python"].command.path))
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
|
||||
variant("omptarget", default=False, description="Build with OpenMP Target support")
|
||||
variant("sycl", default=False, description="Build with Sycl support")
|
||||
|
||||
depends_on("cub-api", when="+cuda")
|
||||
depends_on("cub", when="+cuda")
|
||||
|
||||
depends_on("blt", type="build")
|
||||
depends_on("blt@0.6.2:", type="build", when="@2024.02.1:")
|
||||
|
||||
@@ -31,6 +31,7 @@ class Cmake(Package):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("master", branch="master")
|
||||
version("3.31.0", sha256="300b71db6d69dcc1ab7c5aae61cbc1aa2778a3e00cbd918bc720203e311468c3")
|
||||
version("3.30.5", sha256="9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d")
|
||||
version("3.30.4", sha256="c759c97274f1e7aaaafcb1f0d261f9de9bf3a5d6ecb7e2df616324a46fe704b2")
|
||||
version("3.30.3", sha256="6d5de15b6715091df7f5441007425264bdd477809f80333fdf95f846aaff88e4")
|
||||
|
||||
@@ -13,6 +13,8 @@ class CrayLibsci(Package):
|
||||
homepage = "https://docs.nersc.gov/development/libraries/libsci/"
|
||||
has_code = False # Skip attempts to fetch source that is not available
|
||||
|
||||
version("23.02.1.1")
|
||||
version("22.11.1.2")
|
||||
version("21.08.1.2")
|
||||
version("20.06.1")
|
||||
version("20.03.1")
|
||||
|
||||
@@ -18,6 +18,10 @@ class CrayMpich(Package):
|
||||
|
||||
maintainers("haampie")
|
||||
|
||||
version("8.1.25")
|
||||
version("8.1.24")
|
||||
version("8.1.21")
|
||||
version("8.1.14")
|
||||
version("8.1.7")
|
||||
version("8.1.0")
|
||||
version("8.0.16")
|
||||
|
||||
@@ -42,8 +42,6 @@ class Cub(Package):
|
||||
version("1.7.1", sha256="50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d")
|
||||
version("1.4.1", sha256="7c3784cf59f02d4a88099d6a11e357032bac9eac2b9c78aaec947d1270e21871")
|
||||
|
||||
provides("cub-api")
|
||||
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
env.set("CUB_DIR", self.prefix.include.cub.cmake)
|
||||
|
||||
|
||||
@@ -702,47 +702,6 @@ class Cuda(Package):
|
||||
provides("opencl@:1.2", when="@7:")
|
||||
provides("opencl@:1.1", when="@:6")
|
||||
|
||||
for cuda_ver, cub_ver in [
|
||||
["12.6.3", "2.5.0"],
|
||||
["12.6.2", "2.5.0"],
|
||||
["12.6.1", "2.5.0"],
|
||||
["12.6.0", "2.5.0"],
|
||||
["12.5.1", "2.4.0"],
|
||||
["12.5.0", "2.4.0"],
|
||||
["12.4.1", "2.3.1"],
|
||||
["12.4.0", "2.3.1"],
|
||||
["12.3.2", "2.2.0"],
|
||||
["12.3.1", "2.2.0"],
|
||||
["12.3.0", "2.2.0"],
|
||||
["12.2.2", "2.1.0"],
|
||||
["12.2.1", "2.1.0"],
|
||||
["12.2.0", "2.0.1"],
|
||||
["12.1.1", "2.0.1"],
|
||||
["12.1.0", "2.0.1"],
|
||||
["12.0.1", "2.0.1"],
|
||||
["12.0.0", "2.0.1"],
|
||||
["11.8.0", "1.15.1"],
|
||||
["11.7.1", "1.15.0"],
|
||||
["11.7.0", "1.15.0"],
|
||||
["11.6.2", "1.15.0"],
|
||||
["11.6.1", "1.15.0"],
|
||||
["11.6.0", "1.15.0"],
|
||||
["11.5.2", "1.13.1"],
|
||||
["11.5.1", "1.13.1"],
|
||||
["11.5.0", "1.13.1"],
|
||||
["11.4.4", "1.12.1"],
|
||||
["11.4.3", "1.12.1"],
|
||||
["11.4.2", "1.12.1"],
|
||||
["11.4.1", "1.12.1"],
|
||||
["11.4.0", "1.12.1"],
|
||||
["11.3.1", "1.11.0"],
|
||||
["11.3.0", "1.11.0"],
|
||||
["11.2.2", "1.10.0"],
|
||||
["11.2.1", "1.10.0"],
|
||||
["11.2.0", "1.10.0"],
|
||||
]:
|
||||
provides(f"cub-api@{cub_ver}", when=f"@{cuda_ver}")
|
||||
|
||||
@classmethod
|
||||
def determine_version(cls, exe):
|
||||
output = Executable(exe)("--version", output=str, error=str)
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import os
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -126,6 +128,18 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
|
||||
generator("ninja")
|
||||
depends_on("ninja@1.10:", type="build")
|
||||
|
||||
@when("+rocm")
|
||||
def patch(self):
|
||||
for directory, subdirectory, files in os.walk(os.getcwd()):
|
||||
for i in files:
|
||||
file_path = os.path.join(directory, i)
|
||||
filter_file("USE ISO_C_BINDING", "USE,INTRINSIC :: ISO_C_BINDING", file_path)
|
||||
filter_file("USE ISO_FORTRAN_ENV", "USE,INTRINSIC :: ISO_FORTRAN_ENV", file_path)
|
||||
filter_file("USE omp_lib", "USE,INTRINSIC :: omp_lib", file_path)
|
||||
filter_file("USE OMP_LIB", "USE,INTRINSIC :: OMP_LIB", file_path)
|
||||
filter_file("USE iso_c_binding", "USE,INTRINSIC :: iso_c_binding", file_path)
|
||||
filter_file("USE iso_fortran_env", "USE,INTRINSIC :: iso_fortran_env", file_path)
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
|
||||
@@ -22,6 +22,11 @@ class Eospac(Package):
|
||||
# previous stable release will appear first as a new beta.
|
||||
# - alpha and beta versions are marked with 'deprecated=True' to help
|
||||
# spack's version comparison.
|
||||
version(
|
||||
"6.5.12",
|
||||
sha256="62d5f4a6a30c9acb426bd6bd972edc7fad392e5b941f950126ed0d3be5fd5162",
|
||||
url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.5.12_39364aabc75c3312022b12e6d16d6a31f1f8945f.tgz",
|
||||
)
|
||||
version(
|
||||
"6.5.11",
|
||||
sha256="ed821b5a1bf45df1443d5f72d86190317ed9f5bad6a7c73e23bb4365bd76e24c",
|
||||
|
||||
@@ -30,7 +30,8 @@ class Fftx(CMakePackage, CudaPackage, ROCmPackage):
|
||||
version("1.1.0", sha256="a6f95605abc11460bbf51839727a456a31488e27e12a970fc29a1b8c42f4e3b5")
|
||||
version("1.0.3", sha256="b5ff275facce4a2fbabd0aecc65dd55b744794f2e07cd8cfa91363001c664896")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("spiral-software+fftx+simt+jit+mpi")
|
||||
# depend only on spiral-software, but spiral-software must be installed with variants:
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import glob
|
||||
import os
|
||||
import re
|
||||
|
||||
@@ -11,7 +12,7 @@
|
||||
from llnl.util import tty
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.elf import parse_elf
|
||||
from spack.util.elf import delete_needed_from_elf, parse_elf
|
||||
|
||||
|
||||
class GccRuntime(Package):
|
||||
@@ -72,6 +73,9 @@ def install(self, spec, prefix):
|
||||
for path, name in libraries:
|
||||
install(path, os.path.join(prefix.lib, name))
|
||||
|
||||
if spec.platform in ("linux", "freebsd"):
|
||||
_drop_libgfortran_zlib(prefix.lib)
|
||||
|
||||
def _get_libraries_macho(self):
|
||||
"""Same as _get_libraries_elf but for Mach-O binaries"""
|
||||
cc = Executable(self.compiler.cc)
|
||||
@@ -124,6 +128,22 @@ def headers(self):
|
||||
return HeaderList([])
|
||||
|
||||
|
||||
def _drop_libgfortran_zlib(lib_dir: str) -> None:
|
||||
"""Due to a bug in GCC's autotools setup (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87182),
|
||||
libz sometimes appears as a redundant system dependency of libgfortran. Delete it."""
|
||||
libraries = glob.glob(os.path.join(lib_dir, "libgfortran*.so*"))
|
||||
if len(libraries) == 0:
|
||||
return
|
||||
with open(libraries[0], "rb+") as f:
|
||||
elf = parse_elf(f, dynamic_section=True)
|
||||
if not elf.has_needed:
|
||||
return
|
||||
libz = next((x for x in elf.dt_needed_strs if x.startswith(b"libz.so")), None)
|
||||
if libz is None:
|
||||
return
|
||||
delete_needed_from_elf(f, elf, libz)
|
||||
|
||||
|
||||
def get_elf_libraries(compiler, libraries):
|
||||
"""Get the GCC runtime libraries for ELF binaries"""
|
||||
cc = Executable(compiler.cc)
|
||||
|
||||
@@ -439,6 +439,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage):
|
||||
sha256="1529cff128792fe197ede301a81b02036c8168cb0338df21e4bc7aafe755305a",
|
||||
when="@14.1.0 target=aarch64:",
|
||||
)
|
||||
patch(
|
||||
"https://raw.githubusercontent.com/Homebrew/formula-patches/f30c309442a60cfb926e780eae5d70571f8ab2cb/gcc/gcc-14.2.0-r2.diff",
|
||||
sha256="6c0a4708f35ccf2275e6401197a491e3ad77f9f0f9ef5761860768fa6da14d3d",
|
||||
when="@14.2.0 target=aarch64:",
|
||||
)
|
||||
conflicts("+bootstrap", when="@11.3.0,13.1: target=aarch64:")
|
||||
|
||||
# Use -headerpad_max_install_names in the build,
|
||||
|
||||
@@ -12,33 +12,36 @@ class GdkPixbuf(MesonPackage):
|
||||
GTK+ 2 but it was split off into a separate package in preparation for the change to GTK+ 3."""
|
||||
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf"
|
||||
url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz"
|
||||
git = "https://gitlab.gnome.org/GNOME/gdk-pixbuf"
|
||||
list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/"
|
||||
url = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/archive/2.40.0/gdk-pixbuf-2.40.0.tar.gz"
|
||||
|
||||
# Falling back to the gitlab source since the mirror here seems to be broken
|
||||
# url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz"
|
||||
# list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/"
|
||||
list_depth = 1
|
||||
|
||||
license("LGPL-2.1-or-later", checked_by="wdconinc")
|
||||
|
||||
version("2.42.12", sha256="b9505b3445b9a7e48ced34760c3bcb73e966df3ac94c95a148cb669ab748e3c7")
|
||||
version("2.42.12", sha256="d41966831b3d291fcdfe31f683bea4b3f03241d591ddbe550b5db873af3da364")
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2022-48622
|
||||
version(
|
||||
"2.42.10",
|
||||
sha256="ee9b6c75d13ba096907a2e3c6b27b61bcd17f5c7ebeab5a5b439d2f2e39fe44b",
|
||||
sha256="87a086c51d9705698b22bd598a795efaccf61e4db3a96f439dcb3cd90506dab8",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.42.9",
|
||||
sha256="28f7958e7bf29a32d4e963556d241d0a41a6786582ff6a5ad11665e0347fc962",
|
||||
sha256="226d950375907857b23c5946ae6d30128f08cd75f65f14b14334c7a9fb686e36",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.42.6",
|
||||
sha256="c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f",
|
||||
sha256="c4f3a84a04bc7c5f4fbd97dce7976ab648c60628f72ad4c7b79edce2bbdb494d",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.42.2",
|
||||
sha256="83c66a1cfd591d7680c144d2922c5955d38b4db336d7cd3ee109f7bcf9afef15",
|
||||
sha256="249b977279f761979104d7befbb5ee23f1661e29d19a36da5875f3a97952d13f",
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
|
||||
@@ -27,11 +27,29 @@ class Gromacs(CMakePackage, CudaPackage):
|
||||
url = "https://ftp.gromacs.org/gromacs/gromacs-2022.2.tar.gz"
|
||||
list_url = "https://ftp.gromacs.org/gromacs"
|
||||
git = "https://gitlab.com/gromacs/gromacs.git"
|
||||
|
||||
maintainers("mabraham", "eirrgang", "junghans")
|
||||
|
||||
license("GPL-2.0-or-later", when="@:4.5")
|
||||
license("LGPL-2.1-or-later", when="@4.6:")
|
||||
|
||||
# Deprecation policy:
|
||||
#
|
||||
# GROMACS makes an annual major release and supports it with fixes
|
||||
# in minor updates for about two years. Each such annual release
|
||||
# series is supported in spack for those two years, then marked as
|
||||
# deprecated in Spack. Deprecated versions can be removed after
|
||||
# the next major release of GROMACS is supported in Spack. Users
|
||||
# needing such an old version can either do a manual installation
|
||||
# or get an older version of Spack.
|
||||
#
|
||||
# Exception: Version 2019.6 is the last version capable of tabulated
|
||||
# interactions used in the so-called "group scheme." It will be marked
|
||||
# as deprecated only after equivalent functionality is available in
|
||||
# a major release of GROMACS, then removed as above.
|
||||
#
|
||||
# Exception: Otherwise, versions before 2022 will be removed when
|
||||
# 2025 is supported.
|
||||
version("main", branch="main")
|
||||
version("master", branch="main", deprecated=True)
|
||||
version("2024.3", sha256="bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029")
|
||||
@@ -51,45 +69,197 @@ class Gromacs(CMakePackage, CudaPackage):
|
||||
version("2022.2", sha256="656404f884d2fa2244c97d2a5b92af148d0dbea94ad13004724b3fcbf45e01bf")
|
||||
version("2022.1", sha256="85ddab5197d79524a702c4959c2c43be875e0fc471df3a35224939dce8512450")
|
||||
version("2022", sha256="fad60d606c02e6164018692c6c9f2c159a9130c2bf32e8c5f4f1b6ba2dda2b68")
|
||||
version("2021.7", sha256="4db7bbbfe5424de48373686ec0e8c5bfa7175d5cd74290ef1c1e840e6df67f06")
|
||||
version("2021.6", sha256="52df2c1d7586fd028d9397985c68bd6dd26e6e905ead382b7e6c473d087902c3")
|
||||
version("2021.5", sha256="eba63fe6106812f72711ef7f76447b12dd1ee6c81b3d8d4d0e3098cd9ea009b6")
|
||||
version("2021.4", sha256="cb708a3e3e83abef5ba475fdb62ef8d42ce8868d68f52dafdb6702dc9742ba1d")
|
||||
version("2021.3", sha256="e109856ec444768dfbde41f3059e3123abdb8fe56ca33b1a83f31ed4575a1cc6")
|
||||
version("2021.2", sha256="d940d865ea91e78318043e71f229ce80d32b0dc578d64ee5aa2b1a4be801aadb")
|
||||
version("2021.1", sha256="bc1d0a75c134e1fb003202262fe10d3d32c59bbb40d714bc3e5015c71effe1e5")
|
||||
version("2021", sha256="efa78ab8409b0f5bf0fbca174fb8fbcf012815326b5c71a9d7c385cde9a8f87b")
|
||||
version("2020.7", sha256="744158d8f61b0d36ffe89ec934519b7e0981a7af438897740160da648d36c2f0")
|
||||
version("2020.6", sha256="d8bbe57ed3c9925a8cb99ecfe39e217f930bed47d5268a9e42b33da544bdb2ee")
|
||||
version("2020.5", sha256="7b6aff647f7c8ee1bf12204d02cef7c55f44402a73195bd5f42cf11850616478")
|
||||
version("2020.4", sha256="5519690321b5500c7951aaf53ff624042c3edd1a5f5d6dd1f2d802a3ecdbf4e6")
|
||||
version("2020.3", sha256="903183691132db14e55b011305db4b6f4901cc4912d2c56c131edfef18cc92a9")
|
||||
version("2020.2", sha256="7465e4cd616359d84489d919ec9e4b1aaf51f0a4296e693c249e83411b7bd2f3")
|
||||
version("2020.1", sha256="e1666558831a3951c02b81000842223698016922806a8ce152e8f616e29899cf")
|
||||
version("2020", sha256="477e56142b3dcd9cb61b8f67b24a55760b04d1655e8684f979a75a5eec40ba01")
|
||||
version(
|
||||
"2021.7",
|
||||
sha256="4db7bbbfe5424de48373686ec0e8c5bfa7175d5cd74290ef1c1e840e6df67f06",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.6",
|
||||
sha256="52df2c1d7586fd028d9397985c68bd6dd26e6e905ead382b7e6c473d087902c3",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.5",
|
||||
sha256="eba63fe6106812f72711ef7f76447b12dd1ee6c81b3d8d4d0e3098cd9ea009b6",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.4",
|
||||
sha256="cb708a3e3e83abef5ba475fdb62ef8d42ce8868d68f52dafdb6702dc9742ba1d",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.3",
|
||||
sha256="e109856ec444768dfbde41f3059e3123abdb8fe56ca33b1a83f31ed4575a1cc6",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.2",
|
||||
sha256="d940d865ea91e78318043e71f229ce80d32b0dc578d64ee5aa2b1a4be801aadb",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021.1",
|
||||
sha256="bc1d0a75c134e1fb003202262fe10d3d32c59bbb40d714bc3e5015c71effe1e5",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2021",
|
||||
sha256="efa78ab8409b0f5bf0fbca174fb8fbcf012815326b5c71a9d7c385cde9a8f87b",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.7",
|
||||
sha256="744158d8f61b0d36ffe89ec934519b7e0981a7af438897740160da648d36c2f0",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.6",
|
||||
sha256="d8bbe57ed3c9925a8cb99ecfe39e217f930bed47d5268a9e42b33da544bdb2ee",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.5",
|
||||
sha256="7b6aff647f7c8ee1bf12204d02cef7c55f44402a73195bd5f42cf11850616478",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.4",
|
||||
sha256="5519690321b5500c7951aaf53ff624042c3edd1a5f5d6dd1f2d802a3ecdbf4e6",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.3",
|
||||
sha256="903183691132db14e55b011305db4b6f4901cc4912d2c56c131edfef18cc92a9",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.2",
|
||||
sha256="7465e4cd616359d84489d919ec9e4b1aaf51f0a4296e693c249e83411b7bd2f3",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020.1",
|
||||
sha256="e1666558831a3951c02b81000842223698016922806a8ce152e8f616e29899cf",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2020",
|
||||
sha256="477e56142b3dcd9cb61b8f67b24a55760b04d1655e8684f979a75a5eec40ba01",
|
||||
deprecated=True,
|
||||
)
|
||||
version("2019.6", sha256="bebe396dc0db11a9d4cc205abc13b50d88225617642508168a2195324f06a358")
|
||||
version("2019.5", sha256="438061a4a2d45bbb5cf5c3aadd6c6df32d2d77ce8c715f1c8ffe56156994083a")
|
||||
version("2019.4", sha256="ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867")
|
||||
version("2019.3", sha256="4211a598bf3b7aca2b14ad991448947da9032566f13239b1a05a2d4824357573")
|
||||
version("2019.2", sha256="bcbf5cc071926bc67baa5be6fb04f0986a2b107e1573e15fadcb7d7fc4fb9f7e")
|
||||
version("2019.1", sha256="b2c37ed2fcd0e64c4efcabdc8ee581143986527192e6e647a197c76d9c4583ec")
|
||||
version("2019", sha256="c5b281a5f0b5b4eeb1f4c7d4dc72f96985b566561ca28acc9c7c16f6ee110d0b")
|
||||
version("2018.8", sha256="776923415df4bc78869d7f387c834141fdcda930b2e75be979dc59ecfa6ebecf")
|
||||
version("2018.5", sha256="32261df6f7ec4149fc0508f9af416953d056e281590359838c1ed6644ba097b8")
|
||||
version("2018.4", sha256="6f2ee458c730994a8549d6b4f601ecfc9432731462f8bd4ffa35d330d9aaa891")
|
||||
version("2018.3", sha256="4423a49224972969c52af7b1f151579cea6ab52148d8d7cbae28c183520aa291")
|
||||
version("2018.2", sha256="4bdde8120c510b6543afb4b18f82551fddb11851f7edbd814aa24022c5d37857")
|
||||
version("2018.1", sha256="4d3533340499323fece83b4a2d4251fa856376f2426c541e00b8e6b4c0d705cd")
|
||||
version("2018", sha256="deb5d0b749a52a0c6083367b5f50a99e08003208d81954fb49e7009e1b1fd0e9")
|
||||
version("2016.6", sha256="bac0117d2cad21f9b94fe5b854fb9ae7435b098a6da4e732ee745f18e52473d7")
|
||||
version("2016.5", sha256="57db26c6d9af84710a1e0c47a1f5bf63a22641456448dcd2eeb556ebd14e0b7c")
|
||||
version("2016.4", sha256="4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264")
|
||||
version("2016.3", sha256="7bf00e74a9d38b7cef9356141d20e4ba9387289cbbfd4d11be479ef932d77d27")
|
||||
version("5.1.5", sha256="c25266abf07690ecad16ed3996899b1d489cbb1ef733a1befb3b5c75c91a703e")
|
||||
version("5.1.4", sha256="0f3793d8f1f0be747cf9ebb0b588fb2b2b5dc5acc32c3046a7bee2d2c03437bc")
|
||||
version("5.1.2", sha256="39d6f1d7ae8ba38cea6089da40676bfa4049a49903d21551abc030992a58f304")
|
||||
version("4.6.7", sha256="6afb1837e363192043de34b188ca3cf83db6bd189601f2001a1fc5b0b2a214d9")
|
||||
version("4.5.5", sha256="e0605e4810b0d552a8761fef5540c545beeaf85893f4a6e21df9905a33f871ba")
|
||||
version(
|
||||
"2019.5",
|
||||
sha256="438061a4a2d45bbb5cf5c3aadd6c6df32d2d77ce8c715f1c8ffe56156994083a",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2019.4",
|
||||
sha256="ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2019.3",
|
||||
sha256="4211a598bf3b7aca2b14ad991448947da9032566f13239b1a05a2d4824357573",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2019.2",
|
||||
sha256="bcbf5cc071926bc67baa5be6fb04f0986a2b107e1573e15fadcb7d7fc4fb9f7e",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2019.1",
|
||||
sha256="b2c37ed2fcd0e64c4efcabdc8ee581143986527192e6e647a197c76d9c4583ec",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2019",
|
||||
sha256="c5b281a5f0b5b4eeb1f4c7d4dc72f96985b566561ca28acc9c7c16f6ee110d0b",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.8",
|
||||
sha256="776923415df4bc78869d7f387c834141fdcda930b2e75be979dc59ecfa6ebecf",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.5",
|
||||
sha256="32261df6f7ec4149fc0508f9af416953d056e281590359838c1ed6644ba097b8",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.4",
|
||||
sha256="6f2ee458c730994a8549d6b4f601ecfc9432731462f8bd4ffa35d330d9aaa891",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.3",
|
||||
sha256="4423a49224972969c52af7b1f151579cea6ab52148d8d7cbae28c183520aa291",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.2",
|
||||
sha256="4bdde8120c510b6543afb4b18f82551fddb11851f7edbd814aa24022c5d37857",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018.1",
|
||||
sha256="4d3533340499323fece83b4a2d4251fa856376f2426c541e00b8e6b4c0d705cd",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2018",
|
||||
sha256="deb5d0b749a52a0c6083367b5f50a99e08003208d81954fb49e7009e1b1fd0e9",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2016.6",
|
||||
sha256="bac0117d2cad21f9b94fe5b854fb9ae7435b098a6da4e732ee745f18e52473d7",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2016.5",
|
||||
sha256="57db26c6d9af84710a1e0c47a1f5bf63a22641456448dcd2eeb556ebd14e0b7c",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2016.4",
|
||||
sha256="4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2016.3",
|
||||
sha256="7bf00e74a9d38b7cef9356141d20e4ba9387289cbbfd4d11be479ef932d77d27",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"5.1.5",
|
||||
sha256="c25266abf07690ecad16ed3996899b1d489cbb1ef733a1befb3b5c75c91a703e",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"5.1.4",
|
||||
sha256="0f3793d8f1f0be747cf9ebb0b588fb2b2b5dc5acc32c3046a7bee2d2c03437bc",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"5.1.2",
|
||||
sha256="39d6f1d7ae8ba38cea6089da40676bfa4049a49903d21551abc030992a58f304",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"4.6.7",
|
||||
sha256="6afb1837e363192043de34b188ca3cf83db6bd189601f2001a1fc5b0b2a214d9",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"4.5.5",
|
||||
sha256="e0605e4810b0d552a8761fef5540c545beeaf85893f4a6e21df9905a33f871ba",
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
@@ -113,11 +283,22 @@ class Gromacs(CMakePackage, CudaPackage):
|
||||
variant(
|
||||
"heffte",
|
||||
default=False,
|
||||
when="@2021: +sycl+mpi",
|
||||
when="@2021: +mpi",
|
||||
description="Enable multi-GPU FFT support with HeFFTe",
|
||||
)
|
||||
depends_on("heffte +cuda", when="+heffte +cuda")
|
||||
depends_on("heffte +sycl", when="+heffte +sycl")
|
||||
variant("opencl", default=False, description="Enable OpenCL support")
|
||||
variant("sycl", default=False, when="@2021: %clang", description="Enable SYCL support")
|
||||
variant("sycl", default=False, when="@2021:", description="Enable SYCL support")
|
||||
requires(
|
||||
"^intel-oneapi-runtime",
|
||||
"^hipsycl %clang",
|
||||
policy="one_of",
|
||||
when="+sycl",
|
||||
msg="GROMACS SYCL support comes either from intel-oneapi-runtime or a "
|
||||
+ "package that provides the virtual package `sycl`, such as AdaptiveCpp "
|
||||
+ "plus a clang compiler.",
|
||||
)
|
||||
variant(
|
||||
"intel-data-center-gpu-max",
|
||||
default=False,
|
||||
@@ -296,6 +477,15 @@ class Gromacs(CMakePackage, CudaPackage):
|
||||
+ "The g++ location is written to icp{c,x}.cfg",
|
||||
)
|
||||
|
||||
variant(
|
||||
"itt",
|
||||
default=False,
|
||||
when="@2024:",
|
||||
description="Enable Instrumentation and Tracing Technology (ITT)"
|
||||
+ " profiling API (from Intel)",
|
||||
)
|
||||
depends_on("intel-oneapi-vtune", "+itt")
|
||||
|
||||
depends_on("fftw-api@3")
|
||||
depends_on("cmake@2.8.8:3", type="build")
|
||||
depends_on("cmake@3.4.3:3", type="build", when="@2018:")
|
||||
@@ -614,6 +804,13 @@ def cmake_args(self):
|
||||
options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8")
|
||||
options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1")
|
||||
|
||||
if "+itt" in self.spec:
|
||||
options.append("-DGMX_USE_ITT=on")
|
||||
options.append(
|
||||
"-DITTNOTIFY_INCLUDE_DIR=%s"
|
||||
% self.spec["intel-oneapi-vtune"].package.headers.directories[0]
|
||||
)
|
||||
|
||||
if self.spec.satisfies("~nblib"):
|
||||
options.append("-DGMX_INSTALL_NBLIB_API=OFF")
|
||||
if self.spec.satisfies("~gmxapi"):
|
||||
|
||||
@@ -58,6 +58,9 @@ class Hip(CMakePackage):
|
||||
conflicts("+asan", when="os=centos7")
|
||||
conflicts("+asan", when="os=centos8")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("cuda", when="+cuda")
|
||||
|
||||
depends_on("cmake@3.16.8:", type="build")
|
||||
@@ -531,12 +534,6 @@ def patch(self):
|
||||
"clr/hipamd/hip-config-amd.cmake",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
'"${ROCM_PATH}/llvm"',
|
||||
self.spec["llvm-amdgpu"].prefix,
|
||||
"clr/hipamd/src/hiprtc/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
perl = self.spec["perl"].command
|
||||
|
||||
if self.spec.satisfies("@:5.5"):
|
||||
@@ -561,7 +558,12 @@ def patch(self):
|
||||
filter_file(" -lnuma", f" -L{numactl} -lnuma", "hipBin_amd.h")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
args = [
|
||||
# find_package(Clang) and find_package(LLVM) in clr/hipamd/src/hiprtc/CMakeLists.txt
|
||||
# should find llvm-amdgpu
|
||||
self.define("LLVM_ROOT", self.spec["llvm-amdgpu"].prefix),
|
||||
self.define("Clang_ROOT", self.spec["llvm-amdgpu"].prefix),
|
||||
]
|
||||
if self.spec.satisfies("+rocm"):
|
||||
args.append(self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix))
|
||||
args.append(self.define("HIP_COMPILER", "clang"))
|
||||
|
||||
@@ -19,7 +19,7 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
git = "https://github.com/hypre-space/hypre.git"
|
||||
tags = ["e4s", "radiuss"]
|
||||
|
||||
maintainers("ulrikeyang", "osborn9", "balay")
|
||||
maintainers("ulrikeyang", "osborn9", "victorapm", "balay")
|
||||
|
||||
test_requires_compiler = True
|
||||
|
||||
@@ -74,6 +74,7 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
variant(
|
||||
"superlu-dist", default=False, description="Activates support for SuperLU_Dist library"
|
||||
)
|
||||
variant("lapack", default=True, description="Use external blas/lapack")
|
||||
variant("int64", default=False, description="Use 64bit integers")
|
||||
variant("mixedint", default=False, description="Use 64bit integers while reducing memory use")
|
||||
variant("complex", default=False, description="Use complex values")
|
||||
@@ -123,8 +124,8 @@ def patch(self): # fix sequential compilation in 'src/seq_mv'
|
||||
filter_file("\tmake", "\t$(MAKE)", "src/seq_mv/Makefile")
|
||||
|
||||
depends_on("mpi", when="+mpi")
|
||||
depends_on("blas")
|
||||
depends_on("lapack")
|
||||
depends_on("blas", when="+lapack")
|
||||
depends_on("lapack", when="+lapack")
|
||||
depends_on("magma", when="+magma")
|
||||
depends_on("superlu-dist", when="+superlu-dist+mpi")
|
||||
depends_on("rocsparse", when="+rocm")
|
||||
@@ -198,17 +199,20 @@ def url_for_version(self, version):
|
||||
|
||||
def configure_args(self):
|
||||
spec = self.spec
|
||||
# Note: --with-(lapack|blas)_libs= needs space separated list of names
|
||||
lapack = spec["lapack"].libs
|
||||
blas = spec["blas"].libs
|
||||
configure_args = [f"--prefix={prefix}"]
|
||||
|
||||
configure_args = [
|
||||
"--prefix=%s" % prefix,
|
||||
"--with-lapack-libs=%s" % " ".join(lapack.names),
|
||||
"--with-lapack-lib-dirs=%s" % " ".join(lapack.directories),
|
||||
"--with-blas-libs=%s" % " ".join(blas.names),
|
||||
"--with-blas-lib-dirs=%s" % " ".join(blas.directories),
|
||||
]
|
||||
# Note: --with-(lapack|blas)_libs= needs space separated list of names
|
||||
if spec.satisfies("+lapack"):
|
||||
configure_args.append("--with-lapack")
|
||||
configure_args.append("--with-blas")
|
||||
configure_args.append("--with-lapack-libs=%s" % " ".join(spec["lapack"].libs.names))
|
||||
configure_args.append("--with-blas-libs=%s" % " ".join(spec["blas"].libs.names))
|
||||
configure_args.append(
|
||||
"--with-lapack-lib-dirs=%s" % " ".join(spec["lapack"].libs.directories)
|
||||
)
|
||||
configure_args.append(
|
||||
"--with-blas-lib-dirs=%s" % " ".join(spec["blas"].libs.directories)
|
||||
)
|
||||
|
||||
if spec.satisfies("+mpi"):
|
||||
os.environ["CC"] = spec["mpi"].mpicc
|
||||
@@ -245,7 +249,9 @@ def configure_args(self):
|
||||
configure_args.append("--without-superlu")
|
||||
# MLI and FEI do not build without superlu on Linux
|
||||
configure_args.append("--without-mli")
|
||||
configure_args.append("--without-fei")
|
||||
# FEI option was removed in hypre 2.17
|
||||
if self.version < Version("2.17.0"):
|
||||
configure_args.append("--without-fei")
|
||||
|
||||
if spec.satisfies("+superlu-dist"):
|
||||
configure_args.append(
|
||||
|
||||
@@ -14,6 +14,7 @@ class Igraph(CMakePackage, AutotoolsPackage):
|
||||
|
||||
license("GPL-2.0-or-later")
|
||||
|
||||
version("0.10.15", sha256="03ba01db0544c4e32e51ab66f2356a034394533f61b4e14d769b9bbf5ad5e52c")
|
||||
version("0.10.13", sha256="c6dc44324f61f52c098bedb81f6a602365d39d692d5068ca4fc3734b2a15e64c")
|
||||
version("0.10.6", sha256="99bf91ee90febeeb9a201f3e0c1d323c09214f0b5f37a4290dc3b63f52839d6d")
|
||||
version("0.7.1", sha256="d978030e27369bf698f3816ab70aa9141e9baf81c56cc4f55efbe5489b46b0df")
|
||||
|
||||
@@ -22,6 +22,12 @@ class IntelOneapiDpl(IntelOneApiLibraryPackage):
|
||||
|
||||
homepage = "https://github.com/oneapi-src/oneDPL"
|
||||
|
||||
version(
|
||||
"2022.7.1",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/de3c613f-829c-4bdc-aa2b-6129eece3bd9/intel-onedpl-2022.7.1.15_offline.sh",
|
||||
sha256="737f8d29f50fcb26abf7a39373305c177d8b91a70dbc5fed9d41aabfcc8bad5a",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2022.7.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/85ad74ff-f4fa-45e2-b50d-67d637d42baa/intel-onedpl-2022.7.0.647_offline.sh",
|
||||
|
||||
@@ -21,6 +21,12 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage):
|
||||
|
||||
homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html"
|
||||
|
||||
version(
|
||||
"2021.14.1",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1acd5e79-796c-401a-ab31-a3dc7b20c6a2/intel-mpi-2021.14.1.7_offline.sh",
|
||||
sha256="6459b9fc81fad9b9955de7fd9904e67fcf2ada3564ce0a74b9c14ea8fb533ddf",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2021.14.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4b14b28c-2ca6-4559-a0ca-8a157627e0c8/intel-mpi-2021.14.0.791_offline.sh",
|
||||
|
||||
@@ -70,6 +70,7 @@ class Ip(CMakePackage):
|
||||
depends_on("sp precision=d", when="@4.1:4 precision=d")
|
||||
depends_on("sp precision=8", when="@4.1:4 precision=8")
|
||||
depends_on("lapack", when="@5.1:")
|
||||
depends_on("cmake@3.18:", when="@5.1:")
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
|
||||
@@ -53,8 +53,9 @@ class Julia(MakefilePackage):
|
||||
version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb")
|
||||
version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("fortran", type="build")
|
||||
|
||||
variant("precompile", default=True, description="Improve julia startup time")
|
||||
variant("openlibm", default=True, description="Use openlibm instead of libm")
|
||||
@@ -249,6 +250,9 @@ class Julia(MakefilePackage):
|
||||
depends_on("zlib-api")
|
||||
depends_on("zlib +shared +pic +optimize", when="^[virtuals=zlib-api] zlib")
|
||||
|
||||
# https://github.com/JuliaLang/julia/pull/45649#issuecomment-1192377430
|
||||
conflicts("%gcc@12:", when="@:1.7")
|
||||
|
||||
# Patches for julia
|
||||
patch("julia-1.6-system-libwhich-and-p7zip-symlink.patch", when="@1.6.0:1.6")
|
||||
patch("use-add-rpath.patch", when="@:1.8.0")
|
||||
|
||||
@@ -66,9 +66,6 @@ class LinaroForge(Package):
|
||||
version(
|
||||
"22.1.4", sha256="4e2af481a37b4c99dba0de6fac75ac945316955fc4170d06e321530adea7ac9f"
|
||||
)
|
||||
version(
|
||||
"21.1.3", sha256="4a4ff7372aad5a31fc9e18b7b6c493691ab37d8d44a3158584e62d1ab82b0eeb"
|
||||
)
|
||||
elif platform.machine() == "ppc64le":
|
||||
# N.B. support for ppc64le was dropped in 24.0
|
||||
version(
|
||||
@@ -97,9 +94,6 @@ class LinaroForge(Package):
|
||||
version(
|
||||
"22.0.4", sha256="f4cb5bcbaa67f9209299fe4653186a2829760b8b16a2883913aa43766375b04c"
|
||||
)
|
||||
version(
|
||||
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
||||
)
|
||||
elif platform.machine() == "x86_64":
|
||||
version("24.1", sha256="0b96878ab73c20b39c4730ed15f24ca86dc5985637ff5d8e68f55e1e802e5fe3")
|
||||
version(
|
||||
@@ -147,9 +141,6 @@ class LinaroForge(Package):
|
||||
version(
|
||||
"22.0.4", sha256="a2c8c1da38b9684d7c4656a98b3fc42777b03fd474cd0bf969324804f47587e5"
|
||||
)
|
||||
version(
|
||||
"21.1.3", sha256="03dc82f1d075deb6f08d1e3e6592dc9b630d406c08a1316d89c436b5874f3407"
|
||||
)
|
||||
|
||||
variant(
|
||||
"probe",
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from os import symlink
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -42,9 +40,7 @@ def install(self, spec, prefix):
|
||||
"^TEsorter=.*$", "TEsorter={}".format(spec["py-tesorter"].prefix.bin), "paths"
|
||||
)
|
||||
|
||||
mkdirp(prefix.opt)
|
||||
mkdirp(prefix.bin)
|
||||
install_tree(".", prefix)
|
||||
|
||||
install_tree(".", prefix.opt.ltr_retriever)
|
||||
|
||||
symlink(prefix.opt.ltr_retriever.LTR_retriever, prefix.bin.LTR_retriever)
|
||||
def setup_run_environment(self, env):
|
||||
env.prepend_path("PATH", self.prefix)
|
||||
|
||||
@@ -26,7 +26,8 @@ class LuaSol2(CMakePackage):
|
||||
version("3.0.3", sha256="bf089e50387edfc70063e24fd7fbb693cceba4a50147d864fabedd1b33483582")
|
||||
version("3.0.2", sha256="3f5f369eae6732ae9a315fe4370bbdc9900d2f2f4f291206aeb5b2d5533f0c99")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
# Lua is not needed when building, since sol2 is headers-only
|
||||
depends_on("lua", type=("link", "run"))
|
||||
|
||||
@@ -383,6 +383,7 @@ def cmake_args(self):
|
||||
# - MVAPICH --> mvapich
|
||||
# - HPE MPT --> mpt
|
||||
# - Cray MPICH --> mpich
|
||||
# - HPC-X --> openmpi
|
||||
|
||||
if self.spec.satisfies("^mpich"):
|
||||
args.append(self.define("MPI_STACK", "mpich"))
|
||||
@@ -398,6 +399,8 @@ def cmake_args(self):
|
||||
args.append(self.define("MPI_STACK", "mpt"))
|
||||
elif self.spec.satisfies("^cray-mpich"):
|
||||
args.append(self.define("MPI_STACK", "mpich"))
|
||||
elif self.spec.satisfies("^hpcx-mpi"):
|
||||
args.append(self.define("MPI_STACK", "openmpi"))
|
||||
else:
|
||||
raise InstallError("Unsupported MPI stack")
|
||||
|
||||
|
||||
@@ -702,8 +702,10 @@ def find_optional_library(name, prefix):
|
||||
if "+mpi" in spec:
|
||||
options += ["MPICXX=%s" % spec["mpi"].mpicxx]
|
||||
hypre = spec["hypre"]
|
||||
# The hypre package always links with 'blas' and 'lapack'.
|
||||
all_hypre_libs = hypre.libs + hypre["lapack"].libs + hypre["blas"].libs
|
||||
all_hypre_libs = hypre.libs
|
||||
if "+lapack" in hypre:
|
||||
all_hypre_libs += hypre["lapack"].libs + hypre["blas"].libs
|
||||
|
||||
hypre_gpu_libs = ""
|
||||
if "+cuda" in hypre:
|
||||
hypre_gpu_libs = " -lcusparse -lcurand -lcublas"
|
||||
|
||||
@@ -92,6 +92,8 @@ def cmake_args(self):
|
||||
or spec.satisfies("%apple-clang")
|
||||
or spec.satisfies("%oneapi")
|
||||
or spec.satisfies("%arm")
|
||||
or spec.satisfies("%cce")
|
||||
or spec.satisfies("%rocmcc")
|
||||
):
|
||||
c_flags.append("-Wno-error=implicit-function-declaration")
|
||||
|
||||
@@ -116,6 +118,8 @@ class NetlibScalapack(ScalapackBase):
|
||||
git = "https://github.com/Reference-ScaLAPACK/scalapack"
|
||||
tags = ["e4s"]
|
||||
|
||||
maintainers("etiennemlb")
|
||||
|
||||
license("BSD-3-Clause-Open-MPI")
|
||||
|
||||
version("2.2.0", sha256="40b9406c20735a9a3009d863318cb8d3e496fb073d201c5463df810e01ab2a57")
|
||||
|
||||
@@ -15,6 +15,7 @@ class Nghttp2(AutotoolsPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("1.64.0", sha256="20e73f3cf9db3f05988996ac8b3a99ed529f4565ca91a49eb0550498e10621e8")
|
||||
version("1.63.0", sha256="9318a2cc00238f5dd6546212109fb833f977661321a2087f03034e25444d3dbb")
|
||||
version("1.62.1", sha256="d0b0b9d00500ee4aa3bfcac00145d3b1ef372fd301c35bff96cf019c739db1b4")
|
||||
version("1.62.0", sha256="482e41a46381d10adbdfdd44c1942ed5fd1a419e0ab6f4a5ff5b61468fe6f00d")
|
||||
|
||||
@@ -27,7 +27,8 @@ class OpenclClhpp(CMakePackage):
|
||||
version("2.0.10", sha256="fa27456295c3fa534ce824eb0314190a8b3ebd3ba4d93a0b1270fc65bf378f2b")
|
||||
version("2.0.9", sha256="ba8ac4977650d833804f208a1b0c198006c65c5eac7c83b25dc32cea6199f58c")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
root_cmakelists_dir = "include"
|
||||
|
||||
|
||||
@@ -58,8 +58,8 @@ class Openscenegraph(CMakePackage):
|
||||
) # Qt windowing system was moved into separate osgQt project
|
||||
depends_on("qt@4:", when="@3.2:3.5.4")
|
||||
depends_on("qt@:4", when="@:3.1")
|
||||
depends_on("libxinerama")
|
||||
depends_on("libxrandr")
|
||||
depends_on("libxinerama", when="platform=linux")
|
||||
depends_on("libxrandr", when="platform=linux")
|
||||
depends_on("libpng")
|
||||
depends_on("jasper")
|
||||
depends_on("libtiff")
|
||||
|
||||
@@ -22,7 +22,8 @@ class Pagmo2(CMakePackage):
|
||||
version("master", branch="master")
|
||||
version("2.18.0", sha256="5ad40bf3aa91857a808d6b632d9e1020341a33f1a4115d7a2b78b78fd063ae31")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("boost+system+serialization+thread")
|
||||
depends_on("intel-tbb")
|
||||
|
||||
@@ -38,7 +38,8 @@ class Pdt(AutotoolsPackage):
|
||||
version("3.19", sha256="d57234077e2e999f2acf9860ea84369a4694b50cc17fa6728e5255dc5f4a2160")
|
||||
version("3.18.1", sha256="d06c2d1793fadebf169752511e5046d7e02cf3fead6135a35c34b1fee6d6d3b2")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant("pic", default=False, description="Builds with pic")
|
||||
|
||||
@@ -50,21 +51,21 @@ def patch(self):
|
||||
filter_file(r"PDT_GXX=g\+\+ ", r"PDT_GXX=clang++ ", "ductape/Makefile")
|
||||
|
||||
def configure(self, spec, prefix):
|
||||
options = ["-prefix=%s" % prefix]
|
||||
if self.compiler.name == "xl":
|
||||
options = [f"-prefix={prefix}"]
|
||||
if spec.satisfies("%xl"):
|
||||
options.append("-XLC")
|
||||
elif self.compiler.name == "intel":
|
||||
elif spec.satisfies("%intel"):
|
||||
options.append("-icpc")
|
||||
elif self.compiler.name == "oneapi":
|
||||
elif spec.satisfies("%oneapi"):
|
||||
if spec.satisfies("@3.25.2:"):
|
||||
options.append("-icpx")
|
||||
else:
|
||||
options.append("-icpc")
|
||||
elif self.compiler.name == "gcc":
|
||||
elif spec.satisfies("%gcc"):
|
||||
options.append("-GNU")
|
||||
elif self.compiler.name in ["clang", "apple-clang", "aocc"]:
|
||||
elif spec.satisfies("%clang") or spec.satisfies("%apple-clang") or spec.satisfies("%aocc"):
|
||||
options.append("-clang")
|
||||
elif self.compiler.name == "cce":
|
||||
elif spec.satisfies("%cce"):
|
||||
options.append("-CC")
|
||||
else:
|
||||
raise InstallError("Unknown/unsupported compiler family: " + self.compiler.name)
|
||||
|
||||
@@ -11,8 +11,9 @@ class PyAzureBatch(PythonPackage):
|
||||
"""Microsoft Azure Batch Client Library for Python."""
|
||||
|
||||
homepage = "https://github.com/Azure/azure-sdk-for-python"
|
||||
pypi = "azure-batch/azure-batch-9.0.0.zip"
|
||||
pypi = "azure-batch/azure-batch-14.2.0.tar.gz"
|
||||
|
||||
version("14.2.0", sha256="c79267d6c3d3fe14a16a422ab5bbfabcbd68ed0b58b6bbcdfa0c8345c4c78532")
|
||||
version("14.0.0", sha256="165b1e99b86f821024c4fae85fb34869d407aa0ebb0ca4b96fb26d859c26c934")
|
||||
version("13.0.0", sha256="e9295de70404d276eda0dd2253d76397439abe5d8f18c1fca199c49b8d6ae30a")
|
||||
version("12.0.0", sha256="1a9b1e178984a7bf495af67bcce51f0db1e4a8a957afb29e33554a14a9674deb")
|
||||
@@ -20,7 +21,7 @@ class PyAzureBatch(PythonPackage):
|
||||
version("10.0.0", sha256="83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32d0")
|
||||
version("9.0.0", sha256="47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84")
|
||||
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.0.0/sdk/batch/azure-batch/setup.py
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.2.0/sdk/batch/azure-batch/setup.py
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
@@ -30,3 +31,11 @@ class PyAzureBatch(PythonPackage):
|
||||
with when("@:12"):
|
||||
depends_on("py-msrest@0.6.21:", when="@11:", type=("build", "run"))
|
||||
depends_on("py-msrest@0.5.0:", type=("build", "run"))
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version < Version("14.1.0"):
|
||||
return "https://pypi.io/packages/source/a/azure-batch/azure-batch-{0}.zip".format(
|
||||
version
|
||||
)
|
||||
|
||||
return super().url_for_version(version)
|
||||
|
||||
@@ -15,6 +15,7 @@ class PyAzureCore(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("1.30.2", sha256="a14dc210efcd608821aa472d9fb8e8d035d29b68993819147bc290a8ac224472")
|
||||
version("1.30.0", sha256="6f3a7883ef184722f6bd997262eddaf80cfe7e5b3e0caaaf8db1695695893d35")
|
||||
version("1.29.7", sha256="2944faf1a7ff1558b1f457cabf60f279869cabaeef86b353bed8eb032c7d8c5e")
|
||||
version("1.29.2", sha256="beb0fe88d1043d8457318e8fb841d9caa648211092eda213c16b376401f3710d")
|
||||
@@ -26,8 +27,9 @@ class PyAzureCore(PythonPackage):
|
||||
version("1.7.0", sha256="a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c")
|
||||
version("1.6.0", sha256="d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648")
|
||||
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.0/sdk/core/azure-core/setup.py
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.2/sdk/core/azure-core/setup.py
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"), when="@1.30.2:")
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-anyio@3:4", when="@1.29.6", type=("build", "run"))
|
||||
depends_on("py-requests@2.21:", when="@1.29.6:", type=("build", "run"))
|
||||
|
||||
@@ -21,6 +21,7 @@ class PyAzureIdentity(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("1.17.1", sha256="32ecc67cc73f4bd0595e4f64b1ca65cd05186f4fe6f98ed2ae9f1aa32646efea")
|
||||
version("1.15.0", sha256="4c28fc246b7f9265610eb5261d65931183d019a23d4b0e99357facb2e6c227c8")
|
||||
version("1.14.1", sha256="48e2a9dbdc59b4f095f841d867d9a8cbe4c1cdbbad8251e055561afd47b4a9b8")
|
||||
version("1.13.0", sha256="c931c27301ffa86b07b4dcf574e29da73e3deba9ab5d1fe4f445bb6a3117e260")
|
||||
@@ -28,20 +29,26 @@ class PyAzureIdentity(PythonPackage):
|
||||
version("1.3.1", sha256="5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a")
|
||||
version("1.2.0", sha256="b32acd1cdb6202bfe10d9a0858dc463d8960295da70ae18097eb3b85ab12cb91")
|
||||
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.15.0/sdk/identity/azure-identity/setup.py
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.17.1/sdk/identity/azure-identity/setup.py
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"), when="@1.16:")
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15:")
|
||||
depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:")
|
||||
depends_on("py-azure-core@1", type=("build", "run"))
|
||||
depends_on("py-azure-core@1.23:", type=("build", "run"), when="@1.16:")
|
||||
depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15")
|
||||
depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:1.14")
|
||||
depends_on("py-azure-core@1", type=("build", "run"), when="@:1.15")
|
||||
depends_on("py-cryptography@2.5:", type=("build", "run"), when="@1.12:")
|
||||
depends_on("py-cryptography@2.1.4:", type=("build", "run"))
|
||||
depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15:")
|
||||
depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:")
|
||||
depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12:")
|
||||
depends_on("py-msal@1", type=("build", "run"))
|
||||
depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:")
|
||||
depends_on("py-msal@1.24:", type=("build", "run"), when="@1.16:")
|
||||
depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15")
|
||||
depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:1.14")
|
||||
depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12")
|
||||
depends_on("py-msal@1", type=("build", "run"), when="@:1.15")
|
||||
depends_on("py-msal-extensions@0.3:", type=("build", "run"), when="@1.16:")
|
||||
depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:1.15")
|
||||
depends_on("py-msal-extensions@0.1.3:0.1", type=("build", "run"), when="@:1.11")
|
||||
depends_on("py-typing-extensions@4:", type=("build", "run"), when="@1.17:")
|
||||
|
||||
depends_on("py-six@1.12:", type=("build", "run"), when="@1.12")
|
||||
depends_on("py-six@1.6:", type=("build", "run"), when="@:1.11")
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ class PyAzureStorageBlob(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("12.22.0", sha256="b3804bb4fe8ab1c32771fa464053da772a682c2737b19da438a3f4e5e3b3736e")
|
||||
version("12.19.0", sha256="26c0a4320a34a3c2a1b74528ba6812ebcb632a04cd67b1c7377232c4b01a5897")
|
||||
version("12.18.3", sha256="d8ced0deee3367fa3d4f3d1a03cd9edadf4440c0a371f503d623fa6c807554ee")
|
||||
version("12.17.0", sha256="c14b785a17050b30fc326a315bdae6bc4a078855f4f94a4c303ad74a48dc8c63")
|
||||
@@ -28,16 +29,19 @@ class PyAzureStorageBlob(PythonPackage):
|
||||
version("12.10.0", sha256="3c7dc2c93e7ff2a731acd66a36a1f0a6266072b4154deba4894dab891285ea3a")
|
||||
version("12.9.0", sha256="cff66a115c73c90e496c8c8b3026898a3ce64100840276e9245434e28a864225")
|
||||
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.19.0/sdk/storage/azure-storage-blob/setup.py
|
||||
# https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.22.0/sdk/storage/azure-storage-blob/setup.py
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"), when="@12.20:")
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:")
|
||||
depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:")
|
||||
depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14:")
|
||||
depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:")
|
||||
depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:")
|
||||
depends_on("py-azure-core@1.10:1", type=("build", "run"))
|
||||
depends_on("py-azure-core@1.28:", type=("build", "run"), when="@12.20:")
|
||||
depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:12.19")
|
||||
depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:12.16")
|
||||
depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14")
|
||||
depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:12.13")
|
||||
depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:12.11")
|
||||
depends_on("py-azure-core@1.10:1", type=("build", "run"), when="@:12.19")
|
||||
depends_on("py-cryptography@2.1.4:", type=("build", "run"))
|
||||
depends_on("py-typing-extensions@4.6:", type=("build", "run"), when="@12.20:")
|
||||
depends_on("py-typing-extensions@4.3:", type=("build", "run"), when="@12.17:")
|
||||
depends_on("py-typing-extensions@4.0.1:", type=("build", "run"), when="@12.15:")
|
||||
depends_on("py-isodate@0.6.1:", type=("build", "run"), when="@12.15:")
|
||||
|
||||
@@ -22,6 +22,7 @@ class PyBlosc2(PythonPackage):
|
||||
version("2.0.0", sha256="f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("python@3.9:3", when="@2.2:", type=("build", "link", "run"))
|
||||
depends_on("python@3.8:3", when="@2.0", type=("build", "link", "run"))
|
||||
|
||||
@@ -12,6 +12,7 @@ class PyBoto3(PythonPackage):
|
||||
homepage = "https://github.com/boto/boto3"
|
||||
pypi = "boto3/boto3-1.10.44.tar.gz"
|
||||
|
||||
version("1.34.162", sha256="873f8f5d2f6f85f1018cbb0535b03cceddc7b655b61f66a0a56995238804f41f")
|
||||
version("1.34.44", sha256="86bcf79a56631609a9f8023fe8f53e2869702bdd4c9047c6d9f091eb39c9b0fa")
|
||||
version("1.26.26", sha256="a2349d436db6f6aa1e0def5501e4884572eb6f008f35063a359a6fa8ba3539b7")
|
||||
version("1.25.5", sha256="aec7db139429fe0f3fbe723170461192b0483b0070114a4b56351e374e0f294d")
|
||||
@@ -37,7 +38,8 @@ class PyBoto3(PythonPackage):
|
||||
depends_on("python@2.6:", when="@1.9:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
depends_on("py-botocore@1.34.44:1.34", when="@1.34", type=("build", "run"))
|
||||
depends_on("py-botocore@1.34.162:1.34", when="@1.34.162", type=("build", "run"))
|
||||
depends_on("py-botocore@1.34.44:1.34", when="@1.34.44", type=("build", "run"))
|
||||
depends_on("py-botocore@1.29.26:1.29", when="@1.26", type=("build", "run"))
|
||||
depends_on("py-botocore@1.28.5:1.28", when="@1.25", type=("build", "run"))
|
||||
depends_on("py-botocore@1.27.96:1.27", when="@1.24", type=("build", "run"))
|
||||
|
||||
@@ -12,6 +12,7 @@ class PyBotocore(PythonPackage):
|
||||
homepage = "https://github.com/boto/botocore"
|
||||
pypi = "botocore/botocore-1.13.44.tar.gz"
|
||||
|
||||
version("1.34.162", sha256="adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3")
|
||||
version("1.34.44", sha256="b0f40c54477e8e0a5c43377a927b8959a86bb8824aaef2d28db7c9c367cdefaa")
|
||||
version("1.31.41", sha256="4dad7c5a5e70940de54ebf8de3955450c1f092f43cacff8103819d1e7d5374fa")
|
||||
version("1.29.84", sha256="a36f7f6f8eae5dbd4a1cc8cb6fc747f6315500541181eff2093ee0529fc8e4bc")
|
||||
@@ -48,4 +49,9 @@ class PyBotocore(PythonPackage):
|
||||
depends_on("py-urllib3@1.25.4:1.25", type=("build", "run"), when="@1.19.0:1.19.15")
|
||||
depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.19.16:1.31.61")
|
||||
depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.31.62: ^python@:3.9")
|
||||
depends_on("py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62: ^python@3.10:")
|
||||
depends_on(
|
||||
"py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62:1.34.62 ^python@3.10:"
|
||||
)
|
||||
depends_on(
|
||||
"py-urllib3@1.25.4:2.1,2.2.1:2", type=("build", "run"), when="@1.34.63: ^python@3.10:"
|
||||
)
|
||||
|
||||
@@ -12,10 +12,13 @@ class PyEmailValidator(PythonPackage):
|
||||
homepage = "https://github.com/JoshData/python-email-validator"
|
||||
pypi = "email_validator/email_validator-1.3.1.tar.gz"
|
||||
|
||||
license("CC0-1.0")
|
||||
license("Unlicense", when="@2.1.1:", checked_by="wdconinc")
|
||||
license("CC0-1.0", when="@:2.1.0", checked_by="wdconinc")
|
||||
|
||||
version("2.2.0", sha256="cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7")
|
||||
version("1.3.1", sha256="d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-dnspython@2:", type=("build", "run"), when="@2:")
|
||||
depends_on("py-dnspython@1.15:", type=("build", "run"))
|
||||
depends_on("py-idna@2:", type=("build", "run"))
|
||||
|
||||
@@ -10,34 +10,60 @@
|
||||
class PyFastapi(PythonPackage):
|
||||
"""FastAPI framework, high performance, easy to learn, fast to code, ready for production"""
|
||||
|
||||
homepage = "https://github.com/tiangolo/fastapi"
|
||||
homepage = "https://github.com/fastapi/fastapi"
|
||||
pypi = "fastapi/fastapi-0.88.0.tar.gz"
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b")
|
||||
version("0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02")
|
||||
version("0.115.4", sha256="db653475586b091cb8b2fec2ac54a680ac6a158e07406e1abae31679e8826349")
|
||||
version("0.110.2", sha256="b53d673652da3b65e8cd787ad214ec0fe303cad00d2b529b86ce7db13f17518d")
|
||||
with default_args(deprecated=True):
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2024-24762
|
||||
version(
|
||||
"0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b"
|
||||
)
|
||||
version(
|
||||
"0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02"
|
||||
)
|
||||
|
||||
variant("all", default=False, description="Build all optional dependencies")
|
||||
|
||||
depends_on("py-hatchling@1.13:", when="@0.98:", type="build")
|
||||
depends_on("py-hatchling", type="build")
|
||||
depends_on("py-starlette@0.27", when="@0.95.2:", type=("build", "run"))
|
||||
depends_on("python@3.8:", when="@0.104:", type=("build", "run"))
|
||||
|
||||
depends_on("py-pdm-backend", when="@0.110.3:", type="build")
|
||||
depends_on("py-hatchling@1.13:", when="@0.98:0.110.2", type="build")
|
||||
depends_on("py-hatchling", when="@:0.110.2", type="build")
|
||||
|
||||
depends_on("py-starlette@0.40:0.41", when="@0.115.3:", type=("build", "run"))
|
||||
depends_on("py-starlette@0.37.2:0.40", when="@0.115.2", type=("build", "run"))
|
||||
depends_on("py-starlette@0.37.2:0.38", when="@0.112.1:0.115.1", type=("build", "run"))
|
||||
depends_on("py-starlette@0.37.2:0.37", when="@0.110.1:0.112.0", type=("build", "run"))
|
||||
depends_on("py-starlette@0.36.3:0.36", when="@0.109.2:0.110.0", type=("build", "run"))
|
||||
depends_on("py-starlette@0.35:0.35", when="@0.109.0:0.109.1", type=("build", "run"))
|
||||
depends_on("py-starlette@0.29:0.32", when="@0.108.0:0.108", type=("build", "run"))
|
||||
depends_on("py-starlette@0.28", when="@0.107.0:0.107", type=("build", "run"))
|
||||
depends_on("py-starlette@0.27", when="@0.95.2:0.106", type=("build", "run"))
|
||||
depends_on("py-starlette@0.22.0", when="@:0.89.1", type=("build", "run"))
|
||||
depends_on("py-pydantic@1.7.4:1,2.1.1:2", when="@0.101:", type=("build", "run"))
|
||||
depends_on("py-pydantic@1.7.4:1", when="@0.96.1:", type=("build", "run"))
|
||||
depends_on("py-pydantic@1.6.2:1", when="@:0.96.0", type=("build", "run"))
|
||||
depends_on("py-typing-extensions@4.8.0:", when="@0.104:", type=("build", "run"))
|
||||
|
||||
conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1")
|
||||
conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1,2.0,2.1.0")
|
||||
|
||||
with when("+all"):
|
||||
depends_on("py-httpx@0.23:", type=("build", "run"))
|
||||
depends_on("py-jinja2@2.11.2:", type=("build", "run"))
|
||||
depends_on("py-python-multipart@0.0.7:", when="@0.109.1:", type=("build", "run"))
|
||||
depends_on("py-python-multipart@0.0.5:", type=("build", "run"))
|
||||
depends_on("py-itsdangerous@1.1:", type=("build", "run"))
|
||||
depends_on("py-pyyaml@5.3.1:", type=("build", "run"))
|
||||
depends_on("py-ujson@4.0.1:", type=("build", "run"))
|
||||
depends_on("py-orjson@3.2.1:", type=("build", "run"))
|
||||
depends_on("py-email-validator@2.0.0:", when="@0.100:", type=("build", "run"))
|
||||
depends_on("py-email-validator@1.1.1:", type=("build", "run"))
|
||||
depends_on("py-uvicorn@0.12:+standard", type=("build", "run"))
|
||||
depends_on("py-pydantic-settings@2.0.0:", when="@0.100:", type=("build", "run"))
|
||||
depends_on("py-pydantic-extra-types@2.0.0:", when="@0.100:", type=("build", "run"))
|
||||
|
||||
conflicts("^py-ujson@4.0.2,4.1.0,4.2.0,4.3.0,5.0.0,5.1.0")
|
||||
|
||||
@@ -10,24 +10,37 @@ class PyFlask(PythonPackage):
|
||||
"""A simple framework for building complex web applications."""
|
||||
|
||||
homepage = "https://palletsprojects.com/p/flask/"
|
||||
pypi = "Flask/Flask-1.1.1.tar.gz"
|
||||
pypi = "flask/flask-3.0.3.tar.gz"
|
||||
git = "https://github.com/pallets/flask.git"
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("3.0.3", sha256="ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842")
|
||||
version("2.3.2", sha256="8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef")
|
||||
version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b")
|
||||
version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2")
|
||||
version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060")
|
||||
version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52")
|
||||
version("0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd")
|
||||
version("0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1")
|
||||
version("0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88")
|
||||
version("0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e")
|
||||
with default_args(deprecated=True):
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2023-30861
|
||||
version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b")
|
||||
version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2")
|
||||
version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060")
|
||||
version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52")
|
||||
version(
|
||||
"0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd"
|
||||
)
|
||||
version(
|
||||
"0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1"
|
||||
)
|
||||
version(
|
||||
"0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88"
|
||||
)
|
||||
version(
|
||||
"0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e"
|
||||
)
|
||||
|
||||
depends_on("python@3.8:", when="@2.3:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"), when="@:2")
|
||||
depends_on("py-flit-core@:3", type=("build", "run"), when="@3:")
|
||||
|
||||
depends_on("py-werkzeug@3:", when="@3:", type=("build", "run"))
|
||||
depends_on("py-werkzeug@2.3.3:", when="@2.3.2:", type=("build", "run"))
|
||||
depends_on("py-werkzeug@2.2.2:", when="@2.2.2:", type=("build", "run"))
|
||||
depends_on("py-werkzeug@2:", when="@2:", type=("build", "run"))
|
||||
@@ -44,3 +57,11 @@ class PyFlask(PythonPackage):
|
||||
depends_on("py-click@5.1:", type=("build", "run"))
|
||||
depends_on("py-blinker@1.6.2:", when="@2.3:", type=("build", "run"))
|
||||
depends_on("py-importlib-metadata@3.6:", when="@2.1: ^python@:3.9", type=("build", "run"))
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "https://files.pythonhosted.org/packages/source/f/flask/{}-{}.tar.gz"
|
||||
if self.spec.satisfies("@:0.18.3"):
|
||||
name = "Flask"
|
||||
else:
|
||||
name = "flask"
|
||||
return url.format(name, version)
|
||||
|
||||
@@ -14,7 +14,18 @@ class PyGradio(PythonPackage):
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version("3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89")
|
||||
version("5.1.0", sha256="d2153668e6de2df7a01bb33f01a074fc7716ec863c40f472d8e439439ef1e153")
|
||||
with default_args(deprecated=True):
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2024-47871
|
||||
version(
|
||||
"4.44.1", sha256="a68a52498ac6b63f8864ef84bf7866a70e7d07ebe913edf921e1d2a3708ad5ae"
|
||||
)
|
||||
version(
|
||||
"3.50.2", sha256="c6c81320566ba3e5688a1a58201d0729565a97b828b2bf6895e54f7bf25c01de"
|
||||
)
|
||||
version(
|
||||
"3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89"
|
||||
)
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
depends_on("py-hatchling", type="build")
|
||||
|
||||
@@ -19,6 +19,7 @@ class PyJoblib(PythonPackage):
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("1.4.2", sha256="2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e")
|
||||
version("1.2.0", sha256="e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018")
|
||||
version("1.1.0", sha256="4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35")
|
||||
version("1.0.1", sha256="9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7")
|
||||
@@ -35,7 +36,10 @@ class PyJoblib(PythonPackage):
|
||||
version("0.10.2", sha256="3123553bdad83b143428033537c9e1939caf4a4d8813dade6a2246948c94494b")
|
||||
version("0.10.0", sha256="49b3a0ba956eaa2f077e1ebd230b3c8d7b98afc67520207ada20a4d8b8efd071")
|
||||
|
||||
depends_on("python@3.7:", when="@1.2:", type=("build", "run"))
|
||||
depends_on("python@3.6:", when="@0.15:", type=("build", "run"))
|
||||
depends_on("python@2.7:2.8,3.4:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type=("build", "run"))
|
||||
with default_args(type=("build", "run")):
|
||||
# https://github.com/joblib/joblib/pull/1361
|
||||
depends_on("python@:3.11", when="@:1.2")
|
||||
|
||||
with default_args(type="build"):
|
||||
depends_on("py-setuptools@61.2:", when="@1.4:")
|
||||
depends_on("py-setuptools")
|
||||
|
||||
@@ -23,6 +23,7 @@ class PyKeras(PythonPackage):
|
||||
maintainers("adamjstewart")
|
||||
license("Apache-2.0")
|
||||
|
||||
version("3.7.0", sha256="a4451a5591e75dfb414d0b84a3fd2fb9c0240cc87ebe7e397f547ce10b0e67b7")
|
||||
version("3.6.0", sha256="405727525a3522ed8f9ec0b46e0667e4c65fcf714a067322c16a00d902ded41d")
|
||||
version("3.5.0", sha256="53ae4f9472ec9d9c6941c82a3fda86969724ace3b7630a94ba0a1f17ba1065c3")
|
||||
version("3.4.1", sha256="34cd9aeaa008914715149234c215657ca758e1b473bd2aab2e211ac967d1f8fe")
|
||||
@@ -74,10 +75,12 @@ class PyKeras(PythonPackage):
|
||||
)
|
||||
|
||||
with default_args(type="build"):
|
||||
# pyproject.toml
|
||||
depends_on("py-setuptools@61:", when="@3.7:")
|
||||
depends_on("py-setuptools")
|
||||
|
||||
with default_args(type=("build", "run")):
|
||||
# setup.py
|
||||
# pyproject.toml
|
||||
depends_on("python@3.9:", when="@3:")
|
||||
depends_on("python@3.8:", when="@2.12:")
|
||||
depends_on("py-absl-py", when="@2.6:")
|
||||
@@ -98,7 +101,8 @@ class PyKeras(PythonPackage):
|
||||
|
||||
# requirements-tensorflow-cuda.txt
|
||||
with when("backend=tensorflow"):
|
||||
depends_on("py-tensorflow@2.17", when="@3.5:")
|
||||
depends_on("py-tensorflow@2.18", when="@3.7:")
|
||||
depends_on("py-tensorflow@2.17", when="@3.5:3.6")
|
||||
depends_on("py-tensorflow@2.16.1:2.16", when="@3.0:3.4")
|
||||
|
||||
# requirements-jax-cuda.txt
|
||||
@@ -109,13 +113,15 @@ class PyKeras(PythonPackage):
|
||||
|
||||
# requirements-torch-cuda.txt
|
||||
with when("backend=torch"):
|
||||
depends_on("py-torch@2.4.1", when="@3.6:")
|
||||
depends_on("py-torch@2.5.1", when="@3.7:")
|
||||
depends_on("py-torch@2.4.1", when="@3.6")
|
||||
depends_on("py-torch@2.4.0", when="@3.5")
|
||||
depends_on("py-torch@2.2.1", when="@3.1:3.4")
|
||||
depends_on("py-torch@2.1.2", when="@3.0.3:3.0.5")
|
||||
depends_on("py-torch@2.1.1", when="@3.0.1:3.0.2")
|
||||
depends_on("py-torch@2.1.0", when="@3.0.0")
|
||||
depends_on("py-torchvision@0.19.1", when="@3.6:")
|
||||
depends_on("py-torchvision@0.20.1", when="@3.7:")
|
||||
depends_on("py-torchvision@0.19.1", when="@3.6")
|
||||
depends_on("py-torchvision@0.19.0", when="@3.5")
|
||||
depends_on("py-torchvision@0.17.1", when="@3.1:3.4")
|
||||
depends_on("py-torchvision@0.16.2", when="@3.0.3:3.0.5")
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
class PyNetifaces(PythonPackage):
|
||||
"""Portable network interface information"""
|
||||
|
||||
homepage = (
|
||||
"https://0xbharath.github.io/python-network-programming/libraries/netifaces/index.html"
|
||||
)
|
||||
homepage = "https://github.com/al45tair/netifaces"
|
||||
pypi = "netifaces/netifaces-0.10.5.tar.gz"
|
||||
|
||||
license("Unlicense")
|
||||
license("MIT", checked_by="wdconinc")
|
||||
|
||||
version("0.11.0", sha256="043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32")
|
||||
version("0.10.9", sha256="2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3")
|
||||
version("0.10.5", sha256="59d8ad52dd3116fcb6635e175751b250dc783fb011adba539558bd764e5d628b")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
@@ -73,6 +73,7 @@ class PyPandas(PythonPackage):
|
||||
variant("excel", when="@1.4:", default=False, description="Build with support for Excel")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
with default_args(type="build"):
|
||||
depends_on("py-meson-python@0.13.1:", when="@2.1:")
|
||||
|
||||
@@ -13,6 +13,7 @@ class PyPdmBackend(PythonPackage):
|
||||
|
||||
license("MIT", checked_by="matz-e")
|
||||
|
||||
version("2.4.3", sha256="dbd9047a7ac10d11a5227e97163b617ad5d665050476ff63867d971758200728")
|
||||
version("2.3.0", sha256="e39ed2da206d90d4a6e9eb62f6dce54ed4fa65ddf172a7d5700960d0f8a09e09")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyPydanticExtraTypes(PythonPackage):
|
||||
"""A place for pydantic types that probably shouldn't
|
||||
exist in the main pydantic lib."""
|
||||
|
||||
homepage = "https://github.com/pydantic/pydantic-extra-types"
|
||||
pypi = "pydantic_extra_types/pydantic_extra_types-2.10.0.tar.gz"
|
||||
|
||||
license("MIT", checked_by="wdconinc")
|
||||
|
||||
version("2.10.0", sha256="552c47dd18fe1d00cfed75d9981162a2f3203cf7e77e55a3d3e70936f59587b9")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
depends_on("py-hatchling", type="build")
|
||||
depends_on("py-pydantic@2.5.2:", type=("build", "run"))
|
||||
depends_on("py-typing-extensions", type=("build", "run"))
|
||||
@@ -0,0 +1,22 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyPydanticSettings(PythonPackage):
|
||||
"""Settings management using Pydantic."""
|
||||
|
||||
homepage = "https://github.com/pydantic/pydantic-settings"
|
||||
pypi = "pydantic_settings/pydantic_settings-2.6.1.tar.gz"
|
||||
|
||||
license("MIT", checked_by="wdconinc")
|
||||
|
||||
version("2.6.1", sha256="e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
depends_on("py-hatchling", type="build")
|
||||
depends_on("py-pydantic@2.7.0:", type=("build", "run"))
|
||||
depends_on("py-python-dotenv@0.21:", type=("build", "run"))
|
||||
@@ -15,8 +15,18 @@ class PyPythonMultipart(PythonPackage):
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version("0.0.17", sha256="41330d831cae6e2f22902704ead2826ea038d0419530eadff3ea80175aec5538")
|
||||
version("0.0.5", sha256="f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-setuptools", type="build", when="@:0.0.5")
|
||||
depends_on("py-hatchling", type="build", when="@0.0.6:")
|
||||
|
||||
depends_on("py-six@1.4.0:", type=("build", "run"))
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "https://files.pythonhosted.org/packages/source/p/python-multipart/{}-{}.tar.gz"
|
||||
if self.spec.satisfies("@:0.0.5"):
|
||||
name = "python-multipart"
|
||||
else:
|
||||
name = "python_multipart"
|
||||
return url.format(name, version)
|
||||
|
||||
@@ -33,7 +33,8 @@ class PyPyvista(PythonPackage):
|
||||
depends_on("pil", type=("build", "run"))
|
||||
depends_on("py-pooch", when="@0.37:", type=("build", "run"))
|
||||
depends_on("py-scooby@0.5.1:", type=("build", "run"))
|
||||
depends_on("vtk+python", type=("build", "run"))
|
||||
# https://github.com/pyvista/pyvista/issues/6857
|
||||
depends_on("vtk@:9.3+python", type=("build", "run"))
|
||||
depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run"))
|
||||
|
||||
# Historical dependencies
|
||||
|
||||
@@ -24,6 +24,10 @@ class PyPyzmq(PythonPackage):
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("26.2.0", sha256="070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f")
|
||||
version("26.1.1", sha256="a7db05d8b7cd1a8c6610e9e9aa55d525baae7a44a43e18bc3260eb3f92de96c6")
|
||||
version("26.0.3", sha256="dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a")
|
||||
version("25.1.2", sha256="93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226")
|
||||
version("25.0.2", sha256="6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149")
|
||||
version("24.0.1", sha256="216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77")
|
||||
version("22.3.0", sha256="8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c")
|
||||
@@ -39,13 +43,17 @@ class PyPyzmq(PythonPackage):
|
||||
depends_on("python@2.6:2.7,3.2:3.8", type=("build", "run"), when="@:14")
|
||||
|
||||
# pyproject.toml
|
||||
depends_on("py-setuptools", type="build")
|
||||
# https://github.com/zeromq/pyzmq/issues/1278
|
||||
# https://github.com/zeromq/pyzmq/pull/1317
|
||||
depends_on("py-setuptools@:59", when="@17:18.0", type="build")
|
||||
depends_on("py-packaging", type="build")
|
||||
with when("@26:"):
|
||||
depends_on("py-scikit-build-core +pyproject", type="build")
|
||||
with when("@:25"):
|
||||
depends_on("py-setuptools", type="build")
|
||||
# https://github.com/zeromq/pyzmq/issues/1278
|
||||
# https://github.com/zeromq/pyzmq/pull/1317
|
||||
depends_on("py-setuptools@:59", when="@17:18.0", type="build")
|
||||
|
||||
# setup.py
|
||||
depends_on("py-packaging", type="build")
|
||||
depends_on("py-cython@3:", type="build", when="@26:")
|
||||
depends_on("py-cython@0.29.35:", type="build", when="@25.1.1: ^python@3.12:")
|
||||
depends_on("py-cython@0.29:", type="build", when="@22.3.0:")
|
||||
depends_on("py-cython@0.20:", type="build", when="@18:")
|
||||
depends_on("py-cython@0.16:", type="build")
|
||||
@@ -66,7 +74,7 @@ def remove_cythonized_files(self):
|
||||
for f in find(".", "*.pyx"):
|
||||
touch(f)
|
||||
|
||||
@run_before("install")
|
||||
@run_before("install", when="@:25")
|
||||
def setup(self):
|
||||
"""Create config file listing dependency information."""
|
||||
|
||||
|
||||
@@ -11,21 +11,40 @@ class PyQuart(PythonPackage):
|
||||
Flask."""
|
||||
|
||||
homepage = "https://gitlab.com/pgjones/quart/"
|
||||
pypi = "Quart/Quart-0.16.3.tar.gz"
|
||||
pypi = "quart/quart-0.16.3.tar.gz"
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.19.8", sha256="ef567d0be7677c99890d5c6ff30e679699fe7e5fca1a90fa3b6974edd8421794")
|
||||
version("0.16.3", sha256="16521d8cf062461b158433d820fff509f98fb997ae6c28740eda061d9cba7d5e")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"), when="@0.19:")
|
||||
depends_on("python@3.7:", type=("build", "run"))
|
||||
depends_on("py-poetry-core@1:", type="build")
|
||||
depends_on("py-aiofiles", type=("build", "run"))
|
||||
depends_on("py-blinker@1.6:", type=("build", "run"), when="@0.19:")
|
||||
depends_on("py-blinker", type=("build", "run"))
|
||||
depends_on("py-click@8.0.0:", type=("build", "run"), when="@0.18.1:")
|
||||
depends_on("py-click", type=("build", "run"))
|
||||
depends_on("py-flask@3.0.0:", type=("build", "run"), when="@0.19:")
|
||||
depends_on("py-hypercorn@0.11.2:", type=("build", "run"))
|
||||
depends_on("py-itsdangerous", type=("build", "run"))
|
||||
depends_on("py-jinja2", type=("build", "run"))
|
||||
depends_on("py-toml", type=("build", "run"))
|
||||
depends_on("py-markupsafe", type=("build", "run"), when="@0.17:")
|
||||
depends_on("py-werkzeug@3:", type=("build", "run"), when="@0.19:")
|
||||
depends_on("py-werkzeug@2:", type=("build", "run"))
|
||||
depends_on("py-importlib-metadata", type=("build", "run"), when="@0.18: ^python@:3.9")
|
||||
depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7")
|
||||
depends_on("py-typing-extensions", type=("build", "run"), when="@0.19: ^python@:3.9")
|
||||
depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.7")
|
||||
|
||||
# Historical dependencies
|
||||
depends_on("py-toml", type=("build", "run"), when="@:0.17")
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "https://files.pythonhosted.org/packages/source/q/quart/{}-{}.tar.gz"
|
||||
if self.spec.satisfies("@:0.18.3"):
|
||||
name = "Quart"
|
||||
else:
|
||||
name = "quart"
|
||||
return url.format(name, version)
|
||||
|
||||
@@ -30,3 +30,6 @@ class PyRiver(PythonPackage):
|
||||
depends_on("py-numpy@1.22:", type=("build", "run"))
|
||||
depends_on("py-scipy@1.5:", type=("build", "run"))
|
||||
depends_on("py-pandas@1.3:", type=("build", "run"))
|
||||
|
||||
# https://github.com/online-ml/river/pull/1632
|
||||
depends_on("py-numpy@:1", when="@:0.21", type=("build", "run"))
|
||||
|
||||
@@ -14,6 +14,10 @@ class PyScooby(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.10.0", sha256="7ea33c262c0cc6a33c6eeeb5648df787be4f22660e53c114e5fff1b811a8854f")
|
||||
version("0.5.7", sha256="ae2c2b6f5f5d10adf7aaab32409028f1e28d3ce833664bdd1e8c2072e8da169a")
|
||||
|
||||
# https://github.com/banesullivan/scooby/pull/83
|
||||
depends_on("python@:3.11", when="@:0.5", type=("build", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-setuptools-scm", when="@0.10:", type="build")
|
||||
|
||||
@@ -15,6 +15,12 @@ class PyStarlette(PythonPackage):
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("0.41.2", sha256="9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62")
|
||||
version("0.37.2", sha256="9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823")
|
||||
version("0.36.3", sha256="90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080")
|
||||
version("0.35.1", sha256="3e2639dac3520e4f58734ed22553f950d3f3cb1001cd2eaac4d57e8cdc5f66bc")
|
||||
version("0.32.0", sha256="87c899fe3aee6a42f711380b03e1d244a21079529cb3dbe1a5109e60915e0bbb")
|
||||
version("0.28.0", sha256="7bf3da5e997e796cc202cef2bd3f96a7d9b1e1943203c2fe2b42e020bc658482")
|
||||
version("0.27.0", sha256="6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75")
|
||||
version("0.23.1", sha256="8510e5b3d670326326c5c1d4cb657cc66832193fe5d5b7015a51c7b1e1b1bf42")
|
||||
version("0.22.0", sha256="b092cbc365bea34dd6840b42861bdabb2f507f8671e642e8272d2442e08ea4ff")
|
||||
|
||||
@@ -18,7 +18,8 @@ class PyTorchCluster(PythonPackage):
|
||||
|
||||
version("1.6.3", sha256="78d5a930a5bbd0d8788df8c6d66addd68d6dd292fe3edb401e3dacba26308152")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("python", type=("build", "link", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
@@ -18,7 +18,8 @@ class PyTorchScatter(PythonPackage):
|
||||
|
||||
version("2.1.2", sha256="69b3aa435f2424ac6a1bfb6ff702da6eb73b33ca0db38fb26989c74159258e47")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("python", type=("build", "link", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
@@ -18,7 +18,8 @@ class PyTorchSplineConv(PythonPackage):
|
||||
|
||||
version("1.2.2", sha256="ed45a81da29f774665dbdd4709d7e534cdf16d2e7006dbd06957f35bd09661b2")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("python", type=("build", "link", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
|
||||
@@ -15,24 +15,50 @@ class PyWerkzeug(PythonPackage):
|
||||
|
||||
license("BSD-3-Clause", checked_by="wdconinc")
|
||||
|
||||
version("3.1.3", sha256="60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746")
|
||||
version("3.0.4", sha256="34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306")
|
||||
version("3.0.0", sha256="3ffff4dcc32db52ef3cc94dff3000a3c2846890f3a5a51800a27b909c5e770f0")
|
||||
version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8")
|
||||
version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76")
|
||||
version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f")
|
||||
version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a")
|
||||
version("0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7")
|
||||
version("0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43")
|
||||
version("0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6")
|
||||
version("0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6")
|
||||
version("0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3")
|
||||
version("0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a")
|
||||
version("0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655")
|
||||
version("0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64")
|
||||
version("0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26")
|
||||
version("0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0")
|
||||
version("0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5")
|
||||
with default_args(deprecated=True):
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2023-46136
|
||||
version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8")
|
||||
version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76")
|
||||
version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f")
|
||||
version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a")
|
||||
version(
|
||||
"0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7"
|
||||
)
|
||||
version(
|
||||
"0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43"
|
||||
)
|
||||
version(
|
||||
"0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6"
|
||||
)
|
||||
version(
|
||||
"0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6"
|
||||
)
|
||||
version(
|
||||
"0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3"
|
||||
)
|
||||
version(
|
||||
"0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a"
|
||||
)
|
||||
version(
|
||||
"0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655"
|
||||
)
|
||||
version(
|
||||
"0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64"
|
||||
)
|
||||
version(
|
||||
"0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26"
|
||||
)
|
||||
version(
|
||||
"0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0"
|
||||
)
|
||||
version(
|
||||
"0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5"
|
||||
)
|
||||
|
||||
depends_on("python@3.9:", when="@3.1:", type=("build", "run"))
|
||||
depends_on("python@3.8:", when="@2.3:", type=("build", "run"))
|
||||
depends_on("python@:3.9", when="@:0.12", type=("build", "run"))
|
||||
depends_on("py-flit-core@:3", when="@2.3.7:", type="build")
|
||||
|
||||
@@ -21,7 +21,8 @@ class Pygmo(CMakePackage):
|
||||
version("master", branch="master")
|
||||
version("2.18.0", sha256="9f081cc973297894af09f713f889870ac452bfb32b471f9f7ba08a5e0bb9a125")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant("shared", default=True, description="Build shared libraries")
|
||||
|
||||
|
||||
@@ -58,3 +58,8 @@ class RRsamtools(RPackage):
|
||||
|
||||
# this is not a listed dependency but is needed
|
||||
depends_on("curl")
|
||||
depends_on("zlib-api")
|
||||
|
||||
def patch(self):
|
||||
with working_dir("src"):
|
||||
filter_file(r"(^PKG_LIBS=)(\$\(RHTSLIB_LIBS\))", "\\1\\2 -lz", "Makevars")
|
||||
|
||||
@@ -17,6 +17,7 @@ class Raylib(CMakePackage):
|
||||
|
||||
license("Zlib", checked_by="georgemalerbo")
|
||||
|
||||
version("5.5", sha256="aea98ecf5bc5c5e0b789a76de0083a21a70457050ea4cc2aec7566935f5e258e")
|
||||
version("5.0", sha256="98f049b9ea2a9c40a14e4e543eeea1a7ec3090ebdcd329c4ca2cf98bc9793482")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
@@ -40,7 +40,8 @@ class Rocfft(CMakePackage):
|
||||
version("5.3.3", sha256="678c18710578c1fb36a0009311bb79de7607c3468f9102cfba56a866ebb7ff78")
|
||||
version("5.3.0", sha256="d655c5541c4aff4267e80e36d002fc3a55c2f84a0ae8631197c12af3bf03fa7d")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
amdgpu_targets = ROCmPackage.amdgpu_targets
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ class RocmTensile(CMakePackage):
|
||||
license("MIT")
|
||||
|
||||
maintainers("srekolam", "renjithravindrankannath", "haampie")
|
||||
version("6.2.1", sha256="29802dc65a7cea29f0e2608782c75db87e9c71eea8aeb485e856cf2861d83098")
|
||||
version("6.2.0", sha256="6f7d679bfffd1f723f2788b00fdcb1b4673b597f9f85c2cdaab3c2aa17afb33d")
|
||||
version("6.1.2", sha256="6a08190f6d9c8cc76764a68e2dd3e7af4759d4146ddc1c4b3370c7762a6f6d83")
|
||||
version("6.1.1", sha256="04fd76e6a0e9b7528e61df0721b03c0e977c145a2a1ea331d515c9167d7ac35f")
|
||||
@@ -80,6 +81,7 @@ class RocmTensile(CMakePackage):
|
||||
"6.1.1",
|
||||
"6.1.2",
|
||||
"6.2.0",
|
||||
"6.2.1",
|
||||
]:
|
||||
depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}")
|
||||
depends_on(f"hip@{ver}", when=f"@{ver}")
|
||||
|
||||
@@ -26,6 +26,7 @@ class RocprofilerRegister(CMakePackage):
|
||||
version("6.1.1", sha256="38242443d9147a04d61374de4cecee686578a3140fed17e88480f564a1f67cc7")
|
||||
version("6.1.0", sha256="c6e60447ea2ccca8d6acd8758ac00037347892b16b450e1f99ddd04cc4b6cac1")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("fmt")
|
||||
depends_on("glog")
|
||||
|
||||
@@ -41,7 +41,8 @@ class RoctracerDev(CMakePackage, ROCmPackage):
|
||||
version("5.3.3", sha256="f2cb1e6bb69ea1a628c04f984741f781ae1d8498dc58e15795bb03015f924d13")
|
||||
version("5.3.0", sha256="36f1da60863a113bb9fe2957949c661f00a702e249bb0523cda1fb755c053808")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant("asan", default=False, description="Build with address-sanitizer enabled or disabled")
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
_is_macos = sys.platform == "darwin"
|
||||
|
||||
|
||||
class Root(CMakePackage):
|
||||
"""ROOT is a data analysis framework."""
|
||||
@@ -156,7 +158,7 @@ class Root(CMakePackage):
|
||||
when="@6.32.0:6.32.02",
|
||||
)
|
||||
|
||||
if sys.platform == "darwin":
|
||||
if _is_macos:
|
||||
# Resolve non-standard use of uint, _cf_
|
||||
# https://sft.its.cern.ch/jira/browse/ROOT-7886.
|
||||
patch("math_uint.patch", when="@6.06.02")
|
||||
@@ -186,7 +188,7 @@ class Root(CMakePackage):
|
||||
# See README.md for specific notes about what ROOT configuration
|
||||
# options are or are not supported, and why.
|
||||
|
||||
variant("aqua", default=False, description="Enable Aqua interface")
|
||||
variant("aqua", default=_is_macos, description="Enable native macOS (Cocoa) interface")
|
||||
variant("arrow", default=False, description="Enable Arrow interface")
|
||||
variant("cuda", when="@6.08.00:", default=False, description="Enable CUDA support")
|
||||
variant("cudnn", when="@6.20.02:", default=False, description="Enable cuDNN support")
|
||||
@@ -288,7 +290,7 @@ class Root(CMakePackage):
|
||||
variant(
|
||||
"webgui", default=True, description="Enable web-based UI components of ROOT", when="+root7"
|
||||
)
|
||||
variant("x", default=True, description="Enable set of graphical options")
|
||||
variant("x", default=(not _is_macos), description="Enable set of graphical options")
|
||||
variant("xml", default=True, description="Enable XML parser interface")
|
||||
variant("xrootd", default=False, description="Build xrootd file server and its client")
|
||||
|
||||
@@ -429,7 +431,7 @@ class Root(CMakePackage):
|
||||
conflicts("target=ppc64le:", when="@:6.24")
|
||||
|
||||
# Incompatible variants
|
||||
if sys.platform == "darwin":
|
||||
if _is_macos:
|
||||
conflicts("+opengl", when="~x ~aqua", msg="root+opengl requires X or Aqua")
|
||||
# https://github.com/root-project/root/issues/7160
|
||||
conflicts("+aqua", when="~opengl", msg="+aqua requires OpenGL to be enabled")
|
||||
@@ -455,15 +457,15 @@ class Root(CMakePackage):
|
||||
conflicts("%clang@16:", when="@:6.26.07", msg="clang 16+ support was added in root 6.26.08")
|
||||
|
||||
# See https://github.com/spack/spack/pull/44826
|
||||
if sys.platform == "darwin" and macos_version() == Version("12"):
|
||||
if _is_macos and macos_version() == Version("12"):
|
||||
conflicts("@:6.27", when="+python", msg="macOS 12 python support for 6.28: only")
|
||||
|
||||
# See https://github.com/root-project/root/issues/11714
|
||||
if sys.platform == "darwin" and macos_version() >= Version("13"):
|
||||
if _is_macos and macos_version() >= Version("13"):
|
||||
conflicts("@:6.26.09", msg="macOS 13 support was added in root 6.26.10")
|
||||
|
||||
# See https://github.com/root-project/root/issues/16219
|
||||
if sys.platform == "darwin" and macos_version() >= Version("15"):
|
||||
if _is_macos and macos_version() >= Version("15"):
|
||||
conflicts("@:6.32.05", msg="macOS 15 support was added in root 6.32.06")
|
||||
|
||||
# ROOT <6.14 is incompatible with Python >=3.7, which is the minimum supported by spack
|
||||
@@ -627,8 +629,6 @@ def cmake_args(self):
|
||||
# Options related to ROOT's ability to download and build its own
|
||||
# dependencies. Per Spack convention, this should generally be avoided.
|
||||
|
||||
afterimage_enabled = ("+x" in self.spec) if "platform=darwin" not in self.spec else True
|
||||
|
||||
options += [
|
||||
define("builtin_cfitsio", False),
|
||||
define("builtin_davix", False),
|
||||
@@ -655,7 +655,12 @@ def cmake_args(self):
|
||||
]
|
||||
|
||||
if self.spec.satisfies("@:6.32"):
|
||||
options.append(define("builtin_afterimage", afterimage_enabled))
|
||||
options.append(
|
||||
define(
|
||||
"builtin_afterimage",
|
||||
("+x" in self.spec) if "platform=darwin" not in self.spec else True,
|
||||
)
|
||||
)
|
||||
|
||||
# Features
|
||||
options += [
|
||||
@@ -764,7 +769,7 @@ def cmake_args(self):
|
||||
|
||||
# #################### Compiler options ####################
|
||||
|
||||
if sys.platform == "darwin" and self.compiler.cc == "gcc":
|
||||
if _is_macos and self.compiler.cc == "gcc":
|
||||
cflags = "-D__builtin_unreachable=__builtin_trap"
|
||||
options.extend([define("CMAKE_C_FLAGS", cflags), define("CMAKE_CXX_FLAGS", cflags)])
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ class Rsync(AutotoolsPackage):
|
||||
"""An open source utility that provides fast incremental file transfer."""
|
||||
|
||||
homepage = "https://rsync.samba.org"
|
||||
url = "https://download.samba.org/pub/rsync/src/rsync-3.2.4.tar.gz"
|
||||
url = "https://download.samba.org/pub/rsync/src/rsync-3.3.0.tar.gz"
|
||||
|
||||
license("GPL-3.0-or-later")
|
||||
|
||||
@@ -20,16 +20,42 @@ class Rsync(AutotoolsPackage):
|
||||
version("3.2.7", sha256="4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb")
|
||||
version("3.2.6", sha256="fb3365bab27837d41feaf42e967c57bd3a47bc8f10765a3671efd6a3835454d3")
|
||||
version("3.2.5", sha256="2ac4d21635cdf791867bc377c35ca6dda7f50d919a58be45057fd51600c69aba")
|
||||
version("3.2.4", sha256="6f761838d08052b0b6579cf7f6737d93e47f01f4da04c5d24d3447b7f2a5fad1")
|
||||
version("3.2.3", sha256="becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e")
|
||||
version("3.2.2", sha256="644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8")
|
||||
version("3.1.3", sha256="55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0")
|
||||
version("3.1.2", sha256="ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2")
|
||||
version("3.1.1", sha256="7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
# Releases before 3.2.5 are deprecated because of CVE-2022-29154
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2022-29154
|
||||
version(
|
||||
"3.2.4",
|
||||
sha256="6f761838d08052b0b6579cf7f6737d93e47f01f4da04c5d24d3447b7f2a5fad1",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"3.2.3",
|
||||
sha256="becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"3.2.2",
|
||||
sha256="644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"3.1.3",
|
||||
sha256="55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"3.1.2",
|
||||
sha256="ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"3.1.1",
|
||||
sha256="7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621",
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("zlib-api")
|
||||
depends_on("popt")
|
||||
depends_on("openssl", when="@3.2:")
|
||||
|
||||
@@ -304,6 +304,9 @@ class Seacas(CMakePackage):
|
||||
when="@:2023-10-24",
|
||||
)
|
||||
|
||||
# Based on install-tpl.sh script, cereal seems to only be used when faodel enabled
|
||||
depends_on("cereal", when="@2021-04-02: +faodel")
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.prepend_path("PYTHONPATH", self.prefix.lib)
|
||||
|
||||
@@ -486,6 +489,15 @@ def cmake_args(self):
|
||||
if pkg.lower() in spec:
|
||||
options.append(define(pkg + "_ROOT", spec[pkg.lower()].prefix))
|
||||
|
||||
if "+faodel" in spec:
|
||||
# faodel headers are under $faodel_prefix/include/faodel but seacas
|
||||
# leaves off the faodel part
|
||||
faodel_incdir = spec["faodel"].prefix.include
|
||||
faodel_incdir2 = spec["faodel"].prefix.include.faodel
|
||||
faodel_incdirs = [faodel_incdir, faodel_incdir2]
|
||||
options.append(define("Faodel_INCLUDE_DIRS", ";".join(faodel_incdirs)))
|
||||
options.append(define("Faodel_LIBRARY_DIRS", spec["faodel"].prefix.lib))
|
||||
|
||||
options.append(from_variant("TPL_ENABLE_ADIOS2", "adios2"))
|
||||
if "+adios2" in spec:
|
||||
options.append(define("ADIOS2_ROOT", spec["adios2"].prefix))
|
||||
|
||||
@@ -190,9 +190,6 @@ def edit(self, spec, prefix):
|
||||
spec["netcdf-fortran"].prefix
|
||||
)
|
||||
)
|
||||
libs_arg.append(
|
||||
"-L{0}/lib -lhdf5_fortran -lhdf5".format(spec["hdf5"].prefix)
|
||||
)
|
||||
|
||||
if "+metis" in spec:
|
||||
libs_arg.append("-L{0} -lmetis".format(self.spec["metis"].prefix.lib))
|
||||
|
||||
@@ -22,7 +22,8 @@ class Voropp(CMakePackage):
|
||||
version("master", branch="master")
|
||||
version("0.4.6", sha256="ef7970071ee2ce3800daa8723649ca069dc4c71cc25f0f7d22552387f3ea437e")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
patch("voro++-0.4.6-cmake.patch", when="@0.4.6")
|
||||
|
||||
|
||||
@@ -243,6 +243,7 @@ class Warpx(CMakePackage, PythonExtension):
|
||||
variant("shared", default=True, description="Build a shared version of the library")
|
||||
variant("tprof", default=True, description="Enable tiny profiling features")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
for v in ["24.10", "24.08", "develop"]:
|
||||
|
||||
Reference in New Issue
Block a user