Compare commits
76 Commits
develop-20
...
develop-20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb36bb2a8f | ||
|
|
8dcf860888 | ||
|
|
a5b7cb6e6f | ||
|
|
34c0bfefa6 | ||
|
|
ea5db048f3 | ||
|
|
e68a17f2c6 | ||
|
|
4af9ec3d8a | ||
|
|
eb90e2c894 | ||
|
|
763f444d63 | ||
|
|
6614c4322d | ||
|
|
983422facf | ||
|
|
d0bdd66238 | ||
|
|
3a50d32299 | ||
|
|
50ee3624c0 | ||
|
|
2840cb54b5 | ||
|
|
5c482d0d7e | ||
|
|
f3ad990b55 | ||
|
|
977603cd96 | ||
|
|
1f919255fd | ||
|
|
5140a9b6a3 | ||
|
|
1732ad0af4 | ||
|
|
e7510ae292 | ||
|
|
0c224ba4a7 | ||
|
|
86b4a867ef | ||
|
|
6049e5f6eb | ||
|
|
0339690a59 | ||
|
|
2bae1b7e00 | ||
|
|
ae5b605f99 | ||
|
|
35898d94d2 | ||
|
|
7e00bd5014 | ||
|
|
1f3aefb0a3 | ||
|
|
d4601d0e53 | ||
|
|
935660e3d5 | ||
|
|
17bfc41841 | ||
|
|
49b38e3a78 | ||
|
|
66f078ff84 | ||
|
|
304a63507a | ||
|
|
c7afc0eb5f | ||
|
|
57cde78c56 | ||
|
|
b01f6308d5 | ||
|
|
13709bb7b7 | ||
|
|
661ae1f230 | ||
|
|
287e1039f5 | ||
|
|
015dc4ee2e | ||
|
|
46165982b1 | ||
|
|
c9a111946e | ||
|
|
62160021c1 | ||
|
|
3290e2c189 | ||
|
|
2a9fc3452a | ||
|
|
2ea8a2e6ae | ||
|
|
fe4a4ddcf9 | ||
|
|
c45714fd3c | ||
|
|
523d12d9a8 | ||
|
|
5340e0184d | ||
|
|
bca7698138 | ||
|
|
5c26ce5385 | ||
|
|
02137dda17 | ||
|
|
4abac88895 | ||
|
|
79c2a55e00 | ||
|
|
71c169293c | ||
|
|
bcc5ded205 | ||
|
|
379a5d8fa0 | ||
|
|
d8c2782949 | ||
|
|
6dde6ca887 | ||
|
|
8f8c262fb3 | ||
|
|
93b8e771b6 | ||
|
|
48088ee24a | ||
|
|
c7df258ca6 | ||
|
|
b8e8fa2dcd | ||
|
|
8e885f4eb2 | ||
|
|
116308fa17 | ||
|
|
5eb4d858cb | ||
|
|
8dd5f36b68 | ||
|
|
e3ce3ab266 | ||
|
|
0618cb98d1 | ||
|
|
3b4a27ce7b |
2
.github/workflows/audit.yaml
vendored
2
.github/workflows/audit.yaml
vendored
@@ -43,7 +43,7 @@ jobs:
|
||||
. share/spack/setup-env.sh
|
||||
$(which spack) audit packages
|
||||
$(which spack) audit externals
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1 # @v2.1.0
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab # @v2.1.0
|
||||
if: ${{ inputs.with_coverage == 'true' }}
|
||||
with:
|
||||
flags: unittests,audits
|
||||
|
||||
2
.github/workflows/build-containers.yml
vendored
2
.github/workflows/build-containers.yml
vendored
@@ -96,7 +96,7 @@ jobs:
|
||||
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226
|
||||
uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
|
||||
|
||||
8
.github/workflows/unit_tests.yaml
vendored
8
.github/workflows/unit_tests.yaml
vendored
@@ -91,7 +91,7 @@ jobs:
|
||||
UNIT_TEST_COVERAGE: ${{ matrix.python-version == '3.11' }}
|
||||
run: |
|
||||
share/spack/qa/run-unit-tests
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
|
||||
with:
|
||||
flags: unittests,linux,${{ matrix.concretizer }}
|
||||
# Test shell integration
|
||||
@@ -122,7 +122,7 @@ jobs:
|
||||
COVERAGE: true
|
||||
run: |
|
||||
share/spack/qa/run-shell-tests
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
|
||||
with:
|
||||
flags: shelltests,linux
|
||||
|
||||
@@ -181,7 +181,7 @@ jobs:
|
||||
SPACK_TEST_SOLVER: clingo
|
||||
run: |
|
||||
share/spack/qa/run-unit-tests
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1 # @v2.1.0
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab # @v2.1.0
|
||||
with:
|
||||
flags: unittests,linux,clingo
|
||||
# Run unit tests on MacOS
|
||||
@@ -216,6 +216,6 @@ jobs:
|
||||
$(which spack) solve zlib
|
||||
common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x)
|
||||
$(which spack) unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
|
||||
with:
|
||||
flags: unittests,macos
|
||||
|
||||
4
.github/workflows/windows_python.yml
vendored
4
.github/workflows/windows_python.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
./share/spack/qa/validate_last_exit.ps1
|
||||
coverage combine -a
|
||||
coverage xml
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
|
||||
with:
|
||||
flags: unittests,windows
|
||||
unit-tests-cmd:
|
||||
@@ -57,7 +57,7 @@ jobs:
|
||||
./share/spack/qa/validate_last_exit.ps1
|
||||
coverage combine -a
|
||||
coverage xml
|
||||
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
|
||||
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
|
||||
with:
|
||||
flags: unittests,windows
|
||||
build-abseil:
|
||||
|
||||
@@ -6,7 +6,7 @@ python-levenshtein==0.25.0
|
||||
docutils==0.20.1
|
||||
pygments==2.17.2
|
||||
urllib3==2.2.1
|
||||
pytest==8.0.1
|
||||
pytest==8.0.2
|
||||
isort==5.13.2
|
||||
black==24.2.0
|
||||
flake8==7.0.0
|
||||
|
||||
@@ -950,14 +950,10 @@ def _main(argv=None):
|
||||
parser.print_help()
|
||||
return 1
|
||||
|
||||
# -h, -H, and -V are special as they do not require a command, but
|
||||
# all the other options do nothing without a command.
|
||||
# version is special as it does not require a command or loading and additional infrastructure
|
||||
if args.version:
|
||||
print(get_version())
|
||||
return 0
|
||||
elif args.help:
|
||||
sys.stdout.write(parser.format_help(level=args.help))
|
||||
return 0
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# This part of the `main()` sets up Spack's configuration.
|
||||
@@ -996,6 +992,12 @@ def _main(argv=None):
|
||||
print_setup_info(*args.print_shell_vars.split(","))
|
||||
return 0
|
||||
|
||||
# -h and -H are special as they do not require a command, but
|
||||
# all the other options do nothing without a command.
|
||||
if args.help:
|
||||
sys.stdout.write(parser.format_help(level=args.help))
|
||||
return 0
|
||||
|
||||
# At this point we've considered all the options to spack itself, so we
|
||||
# need a command or we're done.
|
||||
if not args.command:
|
||||
|
||||
@@ -566,6 +566,7 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
|
||||
provided: Dict["spack.spec.Spec", Set["spack.spec.Spec"]]
|
||||
provided_together: Dict["spack.spec.Spec", List[Set[str]]]
|
||||
patches: Dict["spack.spec.Spec", List["spack.patch.Patch"]]
|
||||
variants: Dict[str, Tuple["spack.variant.Variant", "spack.spec.Spec"]]
|
||||
|
||||
#: By default, packages are not virtual
|
||||
#: Virtual packages override this attribute
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import spack.util.path
|
||||
|
||||
|
||||
def get_projection(projections, spec):
|
||||
"""
|
||||
@@ -11,7 +13,7 @@ def get_projection(projections, spec):
|
||||
all_projection = None
|
||||
for spec_like, projection in projections.items():
|
||||
if spec.satisfies(spec_like):
|
||||
return projection
|
||||
return spack.util.path.substitute_path_variables(projection)
|
||||
elif spec_like == "all":
|
||||
all_projection = projection
|
||||
all_projection = spack.util.path.substitute_path_variables(projection)
|
||||
return all_projection
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
import types
|
||||
import typing
|
||||
import warnings
|
||||
from typing import Callable, Dict, List, NamedTuple, Optional, Sequence, Set, Tuple, Union
|
||||
from typing import Callable, Dict, Iterator, List, NamedTuple, Optional, Set, Tuple, Type, Union
|
||||
|
||||
import archspec.cpu
|
||||
|
||||
@@ -258,7 +258,7 @@ def remove_node(spec: spack.spec.Spec, facts: List[AspFunction]) -> List[AspFunc
|
||||
return list(filter(lambda x: x.args[0] not in ("node", "virtual_node"), facts))
|
||||
|
||||
|
||||
def _create_counter(specs, tests):
|
||||
def _create_counter(specs: List[spack.spec.Spec], tests: bool):
|
||||
strategy = spack.config.CONFIG.get("concretizer:duplicates:strategy", "none")
|
||||
if strategy == "full":
|
||||
return FullDuplicatesCounter(specs, tests=tests)
|
||||
@@ -897,35 +897,41 @@ def __iter__(self):
|
||||
return iter(self.data)
|
||||
|
||||
|
||||
# types for condition caching in solver setup
|
||||
ConditionSpecKey = Tuple[str, Optional[TransformFunction]]
|
||||
ConditionIdFunctionPair = Tuple[int, List[AspFunction]]
|
||||
ConditionSpecCache = Dict[str, Dict[ConditionSpecKey, ConditionIdFunctionPair]]
|
||||
|
||||
|
||||
class SpackSolverSetup:
|
||||
"""Class to set up and run a Spack concretization solve."""
|
||||
|
||||
def __init__(self, tests=False):
|
||||
self.gen = None # set by setup()
|
||||
def __init__(self, tests: bool = False):
|
||||
# these are all initialized in setup()
|
||||
self.gen: "ProblemInstanceBuilder" = ProblemInstanceBuilder()
|
||||
self.possible_virtuals: Set[str] = set()
|
||||
|
||||
self.assumptions = []
|
||||
self.declared_versions = collections.defaultdict(list)
|
||||
self.possible_versions = collections.defaultdict(set)
|
||||
self.deprecated_versions = collections.defaultdict(set)
|
||||
self.assumptions: List[Tuple["clingo.Symbol", bool]] = [] # type: ignore[name-defined]
|
||||
self.declared_versions: Dict[str, List[DeclaredVersion]] = collections.defaultdict(list)
|
||||
self.possible_versions: Dict[str, Set[GitOrStandardVersion]] = collections.defaultdict(set)
|
||||
self.deprecated_versions: Dict[str, Set[GitOrStandardVersion]] = collections.defaultdict(
|
||||
set
|
||||
)
|
||||
|
||||
self.possible_virtuals = None
|
||||
self.possible_compilers = []
|
||||
self.possible_oses = set()
|
||||
self.variant_values_from_specs = set()
|
||||
self.version_constraints = set()
|
||||
self.target_constraints = set()
|
||||
self.default_targets = []
|
||||
self.compiler_version_constraints = set()
|
||||
self.post_facts = []
|
||||
self.possible_compilers: List = []
|
||||
self.possible_oses: Set = set()
|
||||
self.variant_values_from_specs: Set = set()
|
||||
self.version_constraints: Set = set()
|
||||
self.target_constraints: Set = set()
|
||||
self.default_targets: List = []
|
||||
self.compiler_version_constraints: Set = set()
|
||||
self.post_facts: List = []
|
||||
|
||||
# (ID, CompilerSpec) -> dictionary of attributes
|
||||
self.compiler_info = collections.defaultdict(dict)
|
||||
self.reusable_and_possible: ConcreteSpecsByHash = ConcreteSpecsByHash()
|
||||
|
||||
self.reusable_and_possible = ConcreteSpecsByHash()
|
||||
|
||||
self._id_counter = itertools.count()
|
||||
self._trigger_cache = collections.defaultdict(dict)
|
||||
self._effect_cache = collections.defaultdict(dict)
|
||||
self._id_counter: Iterator[int] = itertools.count()
|
||||
self._trigger_cache: ConditionSpecCache = collections.defaultdict(dict)
|
||||
self._effect_cache: ConditionSpecCache = collections.defaultdict(dict)
|
||||
|
||||
# Caches to optimize the setup phase of the solver
|
||||
self.target_specs_cache = None
|
||||
@@ -937,8 +943,8 @@ def __init__(self, tests=False):
|
||||
self.concretize_everything = True
|
||||
|
||||
# Set during the call to setup
|
||||
self.pkgs = None
|
||||
self.explicitly_required_namespaces = {}
|
||||
self.pkgs: Set[str] = set()
|
||||
self.explicitly_required_namespaces: Dict[str, str] = {}
|
||||
|
||||
def pkg_version_rules(self, pkg):
|
||||
"""Output declared versions of a package.
|
||||
@@ -1222,6 +1228,38 @@ def variant_rules(self, pkg):
|
||||
|
||||
self.gen.newline()
|
||||
|
||||
def _get_condition_id(
|
||||
self,
|
||||
named_cond: spack.spec.Spec,
|
||||
cache: ConditionSpecCache,
|
||||
body: bool,
|
||||
transform: Optional[TransformFunction] = None,
|
||||
) -> int:
|
||||
"""Get the id for one half of a condition (either a trigger or an imposed constraint).
|
||||
|
||||
Construct a key from the condition spec and any associated transformation, and
|
||||
cache the ASP functions that they imply. The saved functions will be output
|
||||
later in ``trigger_rules()`` and ``effect_rules()``.
|
||||
|
||||
Returns:
|
||||
The id of the cached trigger or effect.
|
||||
|
||||
"""
|
||||
pkg_cache = cache[named_cond.name]
|
||||
|
||||
named_cond_key = (str(named_cond), transform)
|
||||
result = pkg_cache.get(named_cond_key)
|
||||
if result:
|
||||
return result[0]
|
||||
|
||||
cond_id = next(self._id_counter)
|
||||
requirements = self.spec_clauses(named_cond, body=body)
|
||||
if transform:
|
||||
requirements = transform(named_cond, requirements)
|
||||
pkg_cache[named_cond_key] = (cond_id, requirements)
|
||||
|
||||
return cond_id
|
||||
|
||||
def condition(
|
||||
self,
|
||||
required_spec: spack.spec.Spec,
|
||||
@@ -1247,7 +1285,8 @@ def condition(
|
||||
"""
|
||||
named_cond = required_spec.copy()
|
||||
named_cond.name = named_cond.name or name
|
||||
assert named_cond.name, "must provide name for anonymous conditions!"
|
||||
if not named_cond.name:
|
||||
raise ValueError(f"Must provide a name for anonymous condition: '{named_cond}'")
|
||||
|
||||
# Check if we can emit the requirements before updating the condition ID counter.
|
||||
# In this way, if a condition can't be emitted but the exception is handled in the caller,
|
||||
@@ -1257,35 +1296,19 @@ def condition(
|
||||
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition(condition_id)))
|
||||
self.gen.fact(fn.condition_reason(condition_id, msg))
|
||||
|
||||
cache = self._trigger_cache[named_cond.name]
|
||||
|
||||
named_cond_key = (str(named_cond), transform_required)
|
||||
if named_cond_key not in cache:
|
||||
trigger_id = next(self._id_counter)
|
||||
requirements = self.spec_clauses(named_cond, body=True, required_from=name)
|
||||
|
||||
if transform_required:
|
||||
requirements = transform_required(named_cond, requirements)
|
||||
|
||||
cache[named_cond_key] = (trigger_id, requirements)
|
||||
trigger_id, requirements = cache[named_cond_key]
|
||||
trigger_id = self._get_condition_id(
|
||||
named_cond, cache=self._trigger_cache, body=True, transform=transform_required
|
||||
)
|
||||
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition_trigger(condition_id, trigger_id)))
|
||||
|
||||
if not imposed_spec:
|
||||
return condition_id
|
||||
|
||||
cache = self._effect_cache[named_cond.name]
|
||||
imposed_spec_key = (str(imposed_spec), transform_imposed)
|
||||
if imposed_spec_key not in cache:
|
||||
effect_id = next(self._id_counter)
|
||||
requirements = self.spec_clauses(imposed_spec, body=False, required_from=name)
|
||||
|
||||
if transform_imposed:
|
||||
requirements = transform_imposed(imposed_spec, requirements)
|
||||
|
||||
cache[imposed_spec_key] = (effect_id, requirements)
|
||||
effect_id, requirements = cache[imposed_spec_key]
|
||||
effect_id = self._get_condition_id(
|
||||
imposed_spec, cache=self._effect_cache, body=False, transform=transform_imposed
|
||||
)
|
||||
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition_effect(condition_id, effect_id)))
|
||||
|
||||
return condition_id
|
||||
|
||||
def impose(self, condition_id, imposed_spec, node=True, name=None, body=False):
|
||||
@@ -1387,23 +1410,13 @@ def virtual_preferences(self, pkg_name, func):
|
||||
|
||||
def provider_defaults(self):
|
||||
self.gen.h2("Default virtual providers")
|
||||
msg = (
|
||||
"Internal Error: possible_virtuals is not populated. Please report to the spack"
|
||||
" maintainers"
|
||||
)
|
||||
assert self.possible_virtuals is not None, msg
|
||||
self.virtual_preferences(
|
||||
"all", lambda v, p, i: self.gen.fact(fn.default_provider_preference(v, p, i))
|
||||
)
|
||||
|
||||
def provider_requirements(self):
|
||||
self.gen.h2("Requirements on virtual providers")
|
||||
msg = (
|
||||
"Internal Error: possible_virtuals is not populated. Please report to the spack"
|
||||
" maintainers"
|
||||
)
|
||||
parser = RequirementParser(spack.config.CONFIG)
|
||||
assert self.possible_virtuals is not None, msg
|
||||
for virtual_str in sorted(self.possible_virtuals):
|
||||
rules = parser.rules_from_virtual(virtual_str)
|
||||
if rules:
|
||||
@@ -1602,35 +1615,57 @@ def flag_defaults(self):
|
||||
fn.compiler_version_flag(compiler.name, compiler.version, name, flag)
|
||||
)
|
||||
|
||||
def spec_clauses(self, *args, **kwargs):
|
||||
"""Wrap a call to `_spec_clauses()` into a try/except block that
|
||||
raises a comprehensible error message in case of failure.
|
||||
def spec_clauses(
|
||||
self,
|
||||
spec: spack.spec.Spec,
|
||||
*,
|
||||
body: bool = False,
|
||||
transitive: bool = True,
|
||||
expand_hashes: bool = False,
|
||||
concrete_build_deps=False,
|
||||
required_from: Optional[str] = None,
|
||||
) -> List[AspFunction]:
|
||||
"""Wrap a call to `_spec_clauses()` into a try/except block with better error handling.
|
||||
|
||||
Arguments are as for ``_spec_clauses()`` except ``required_from``.
|
||||
|
||||
Arguments:
|
||||
required_from: name of package that caused this call.
|
||||
"""
|
||||
requestor = kwargs.pop("required_from", None)
|
||||
try:
|
||||
clauses = self._spec_clauses(*args, **kwargs)
|
||||
clauses = self._spec_clauses(
|
||||
spec,
|
||||
body=body,
|
||||
transitive=transitive,
|
||||
expand_hashes=expand_hashes,
|
||||
concrete_build_deps=concrete_build_deps,
|
||||
)
|
||||
except RuntimeError as exc:
|
||||
msg = str(exc)
|
||||
if requestor:
|
||||
msg += ' [required from package "{0}"]'.format(requestor)
|
||||
if required_from:
|
||||
msg += f" [required from package '{required_from}']"
|
||||
raise RuntimeError(msg)
|
||||
return clauses
|
||||
|
||||
def _spec_clauses(
|
||||
self, spec, body=False, transitive=True, expand_hashes=False, concrete_build_deps=False
|
||||
):
|
||||
self,
|
||||
spec: spack.spec.Spec,
|
||||
*,
|
||||
body: bool = False,
|
||||
transitive: bool = True,
|
||||
expand_hashes: bool = False,
|
||||
concrete_build_deps: bool = False,
|
||||
) -> List[AspFunction]:
|
||||
"""Return a list of clauses for a spec mandates are true.
|
||||
|
||||
Arguments:
|
||||
spec (spack.spec.Spec): the spec to analyze
|
||||
body (bool): if True, generate clauses to be used in rule bodies
|
||||
(final values) instead of rule heads (setters).
|
||||
transitive (bool): if False, don't generate clauses from
|
||||
dependencies (default True)
|
||||
expand_hashes (bool): if True, descend into hashes of concrete specs
|
||||
(default False)
|
||||
concrete_build_deps (bool): if False, do not include pure build deps
|
||||
of concrete specs (as they have no effect on runtime constraints)
|
||||
spec: the spec to analyze
|
||||
body: if True, generate clauses to be used in rule bodies (final values) instead
|
||||
of rule heads (setters).
|
||||
transitive: if False, don't generate clauses from dependencies (default True)
|
||||
expand_hashes: if True, descend into hashes of concrete specs (default False)
|
||||
concrete_build_deps: if False, do not include pure build deps of concrete specs
|
||||
(as they have no effect on runtime constraints)
|
||||
|
||||
Normally, if called with ``transitive=True``, ``spec_clauses()`` just generates
|
||||
hashes for the dependency requirements of concrete specs. If ``expand_hashes``
|
||||
@@ -1640,7 +1675,7 @@ def _spec_clauses(
|
||||
"""
|
||||
clauses = []
|
||||
|
||||
f = _Body if body else _Head
|
||||
f: Union[Type[_Head], Type[_Body]] = _Body if body else _Head
|
||||
|
||||
if spec.name:
|
||||
clauses.append(f.node(spec.name) if not spec.virtual else f.virtual_node(spec.name))
|
||||
@@ -1729,8 +1764,9 @@ def _spec_clauses(
|
||||
# dependencies
|
||||
if spec.concrete:
|
||||
# older specs do not have package hashes, so we have to do this carefully
|
||||
if getattr(spec, "_package_hash", None):
|
||||
clauses.append(fn.attr("package_hash", spec.name, spec._package_hash))
|
||||
package_hash = getattr(spec, "_package_hash", None)
|
||||
if package_hash:
|
||||
clauses.append(fn.attr("package_hash", spec.name, package_hash))
|
||||
clauses.append(fn.attr("hash", spec.name, spec.dag_hash()))
|
||||
|
||||
edges = spec.edges_from_dependents()
|
||||
@@ -1789,7 +1825,7 @@ def _spec_clauses(
|
||||
return clauses
|
||||
|
||||
def define_package_versions_and_validate_preferences(
|
||||
self, possible_pkgs, *, require_checksum: bool, allow_deprecated: bool
|
||||
self, possible_pkgs: Set[str], *, require_checksum: bool, allow_deprecated: bool
|
||||
):
|
||||
"""Declare any versions in specs not declared in packages."""
|
||||
packages_yaml = spack.config.get("packages")
|
||||
@@ -1822,7 +1858,7 @@ def define_package_versions_and_validate_preferences(
|
||||
if pkg_name not in packages_yaml or "version" not in packages_yaml[pkg_name]:
|
||||
continue
|
||||
|
||||
version_defs = []
|
||||
version_defs: List[GitOrStandardVersion] = []
|
||||
|
||||
for vstr in packages_yaml[pkg_name]["version"]:
|
||||
v = vn.ver(vstr)
|
||||
@@ -2033,13 +2069,6 @@ def target_defaults(self, specs):
|
||||
|
||||
def virtual_providers(self):
|
||||
self.gen.h2("Virtual providers")
|
||||
msg = (
|
||||
"Internal Error: possible_virtuals is not populated. Please report to the spack"
|
||||
" maintainers"
|
||||
)
|
||||
assert self.possible_virtuals is not None, msg
|
||||
|
||||
# what provides what
|
||||
for vspec in sorted(self.possible_virtuals):
|
||||
self.gen.fact(fn.virtual(vspec))
|
||||
self.gen.newline()
|
||||
@@ -2236,7 +2265,7 @@ def define_concrete_input_specs(self, specs, possible):
|
||||
|
||||
def setup(
|
||||
self,
|
||||
specs: Sequence[spack.spec.Spec],
|
||||
specs: List[spack.spec.Spec],
|
||||
*,
|
||||
reuse: Optional[List[spack.spec.Spec]] = None,
|
||||
allow_deprecated: bool = False,
|
||||
|
||||
@@ -94,6 +94,9 @@ def test_get_executables(working_env, mock_executable):
|
||||
external = SpackCommand("external")
|
||||
|
||||
|
||||
# TODO: this test should be made to work, but in the meantime it is
|
||||
# causing intermittent (spurious) CI failures on all PRs
|
||||
@pytest.mark.skipif(sys.platform == "win32", reason="Test fails intermittently on Windows")
|
||||
def test_find_external_cmd_not_buildable(mutable_config, working_env, mock_executable):
|
||||
"""When the user invokes 'spack external find --not-buildable', the config
|
||||
for any package where Spack finds an external version should be marked as
|
||||
@@ -248,6 +251,7 @@ def _determine_variants(cls, exes, version_str):
|
||||
assert gcc.external_path == os.path.sep + os.path.join("opt", "gcc", "bin")
|
||||
|
||||
|
||||
@pytest.mark.not_on_windows("Fails spuriously on Windows")
|
||||
def test_new_entries_are_reported_correctly(mock_executable, mutable_config, monkeypatch):
|
||||
# Prepare an environment to detect a fake gcc
|
||||
gcc_exe = mock_executable("gcc", output="echo 4.2.1")
|
||||
|
||||
@@ -141,6 +141,7 @@ def test_partial_install_delete_prefix_and_stage(install_mockery, mock_fetch, wo
|
||||
assert s.package.spec.installed
|
||||
|
||||
|
||||
@pytest.mark.not_on_windows("Fails spuriously on Windows")
|
||||
@pytest.mark.disable_clean_stage_check
|
||||
def test_failing_overwrite_install_should_keep_previous_installation(
|
||||
mock_fetch, install_mockery, working_env
|
||||
|
||||
@@ -906,6 +906,13 @@ def test_version_list_normalization():
|
||||
assert ver("1.0:2.0,=1.0,ref=1.0") == ver(["1.0:2.0"])
|
||||
|
||||
|
||||
def test_version_list_connected_union_of_disjoint_ranges():
|
||||
# Make sure that we also simplify lists of ranges if their intersection is empty, but their
|
||||
# union is connected.
|
||||
assert ver("1.0:2.0,2.1,2.2:3,4:6") == ver(["1.0:6"])
|
||||
assert ver("1.0:1.2,1.3:2") == ver("1.0:1.5,1.6:2")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("version", ["=1.2", "git.ref=1.2", "1.2"])
|
||||
def test_version_comparison_with_list_fails(version):
|
||||
vlist = VersionList(["=1.3"])
|
||||
|
||||
@@ -695,26 +695,35 @@ def satisfies(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionLis
|
||||
def overlaps(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]) -> bool:
|
||||
return self.intersects(other)
|
||||
|
||||
def union(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]):
|
||||
def _union_if_not_disjoint(
|
||||
self, other: Union["ClosedOpenRange", ConcreteVersion]
|
||||
) -> Optional["ClosedOpenRange"]:
|
||||
"""Same as union, but returns None when the union is not connected. This function is not
|
||||
implemented for version lists as right-hand side, as that makes little sense."""
|
||||
if isinstance(other, StandardVersion):
|
||||
return self if self.lo <= other < self.hi else VersionList([self, other])
|
||||
return self if self.lo <= other < self.hi else None
|
||||
|
||||
if isinstance(other, GitVersion):
|
||||
return self if self.lo <= other.ref_version < self.hi else VersionList([self, other])
|
||||
return self if self.lo <= other.ref_version < self.hi else None
|
||||
|
||||
if isinstance(other, ClosedOpenRange):
|
||||
# Notice <= cause we want union(1:2, 3:4) = 1:4.
|
||||
if self.lo <= other.hi and other.lo <= self.hi:
|
||||
return ClosedOpenRange(min(self.lo, other.lo), max(self.hi, other.hi))
|
||||
return (
|
||||
ClosedOpenRange(min(self.lo, other.lo), max(self.hi, other.hi))
|
||||
if self.lo <= other.hi and other.lo <= self.hi
|
||||
else None
|
||||
)
|
||||
|
||||
return VersionList([self, other])
|
||||
raise TypeError(f"Unexpected type {type(other)}")
|
||||
|
||||
def union(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]):
|
||||
if isinstance(other, VersionList):
|
||||
v = other.copy()
|
||||
v.add(self)
|
||||
return v
|
||||
|
||||
raise ValueError(f"Unexpected type {type(other)}")
|
||||
result = self._union_if_not_disjoint(other)
|
||||
return result if result is not None else VersionList([self, other])
|
||||
|
||||
def intersection(self, other: Union["ClosedOpenRange", ConcreteVersion]):
|
||||
# range - version -> singleton or nothing.
|
||||
@@ -732,19 +741,20 @@ class VersionList:
|
||||
|
||||
def __init__(self, vlist=None):
|
||||
self.versions: List[StandardVersion, GitVersion, ClosedOpenRange] = []
|
||||
if vlist is not None:
|
||||
if isinstance(vlist, str):
|
||||
vlist = from_string(vlist)
|
||||
if isinstance(vlist, VersionList):
|
||||
self.versions = vlist.versions
|
||||
else:
|
||||
self.versions = [vlist]
|
||||
if vlist is None:
|
||||
pass
|
||||
elif isinstance(vlist, str):
|
||||
vlist = from_string(vlist)
|
||||
if isinstance(vlist, VersionList):
|
||||
self.versions = vlist.versions
|
||||
else:
|
||||
for v in vlist:
|
||||
self.add(ver(v))
|
||||
self.versions = [vlist]
|
||||
else:
|
||||
for v in vlist:
|
||||
self.add(ver(v))
|
||||
|
||||
def add(self, item):
|
||||
if isinstance(item, ConcreteVersion):
|
||||
def add(self, item: Union[StandardVersion, GitVersion, ClosedOpenRange, "VersionList"]):
|
||||
if isinstance(item, (StandardVersion, GitVersion)):
|
||||
i = bisect_left(self, item)
|
||||
# Only insert when prev and next are not intersected.
|
||||
if (i == 0 or not item.intersects(self[i - 1])) and (
|
||||
@@ -755,16 +765,22 @@ def add(self, item):
|
||||
elif isinstance(item, ClosedOpenRange):
|
||||
i = bisect_left(self, item)
|
||||
|
||||
# Note: can span multiple concrete versions to the left,
|
||||
# For instance insert 1.2: into [1.2, hash=1.2, 1.3]
|
||||
# would bisect to i = 1.
|
||||
while i > 0 and item.intersects(self[i - 1]):
|
||||
item = item.union(self[i - 1])
|
||||
# Note: can span multiple concrete versions to the left (as well as to the right).
|
||||
# For instance insert 1.2: into [1.2, hash=1.2, 1.3, 1.4:1.5]
|
||||
# would bisect at i = 1 and merge i = 0 too.
|
||||
while i > 0:
|
||||
union = item._union_if_not_disjoint(self[i - 1])
|
||||
if union is None: # disjoint
|
||||
break
|
||||
item = union
|
||||
del self.versions[i - 1]
|
||||
i -= 1
|
||||
|
||||
while i < len(self) and item.intersects(self[i]):
|
||||
item = item.union(self[i])
|
||||
while i < len(self):
|
||||
union = item._union_if_not_disjoint(self[i])
|
||||
if union is None:
|
||||
break
|
||||
item = union
|
||||
del self.versions[i]
|
||||
|
||||
self.versions.insert(i, item)
|
||||
|
||||
@@ -330,7 +330,7 @@ protected-publish:
|
||||
|
||||
e4s-generate:
|
||||
extends: [ ".e4s", ".generate-x86_64"]
|
||||
image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01
|
||||
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
|
||||
|
||||
e4s-build:
|
||||
extends: [ ".e4s", ".build" ]
|
||||
@@ -353,7 +353,7 @@ e4s-build:
|
||||
|
||||
e4s-neoverse-v2-generate:
|
||||
extends: [ ".e4s-neoverse-v2", ".generate-neoverse-v2" ]
|
||||
image: ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01
|
||||
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
|
||||
|
||||
e4s-neoverse-v2-build:
|
||||
extends: [ ".e4s-neoverse-v2", ".build" ]
|
||||
@@ -376,7 +376,7 @@ e4s-neoverse-v2-build:
|
||||
|
||||
e4s-neoverse_v1-generate:
|
||||
extends: [ ".e4s-neoverse_v1", ".generate-neoverse_v1" ]
|
||||
image: ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01
|
||||
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
|
||||
|
||||
e4s-neoverse_v1-build:
|
||||
extends: [ ".e4s-neoverse_v1", ".build" ]
|
||||
@@ -399,7 +399,7 @@ e4s-neoverse_v1-build:
|
||||
|
||||
e4s-rocm-external-generate:
|
||||
extends: [ ".e4s-rocm-external", ".generate-x86_64"]
|
||||
image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01
|
||||
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm5.7.1:2024.03.01
|
||||
|
||||
e4s-rocm-external-build:
|
||||
extends: [ ".e4s-rocm-external", ".build" ]
|
||||
|
||||
@@ -151,7 +151,6 @@ spack:
|
||||
|
||||
# - alquimia # pflotran: petsc-3.19.4-c6pmpdtpzarytxo434zf76jqdkhdyn37/lib/petsc/conf/rules:169: material_aux.o] Error 1: fortran errors
|
||||
# - amrex # disabled temporarily pending resolution of unreproducible CI failure
|
||||
# - archer # subsumed by llvm +omp_tsan
|
||||
# - axom # axom: CMake Error at axom/sidre/cmake_install.cmake:154 (file): file INSTALL cannot find "/tmp/gitlab-runner-2/spack-stage/spack-stage-axom-0.8.1-jvol6riu34vuyqvrd5ft2gyhrxdqvf63/spack-build-jvol6ri/lib/fortran/axom_spio.mod": No such file or directory.
|
||||
# - bricks # bricks: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
|
||||
# - dealii # llvm@14.0.6: ?; intel-tbb@2020.3: clang-15: error: unknown argument: '-flifetime-dse=1'; assimp@5.2.5: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
|
||||
|
||||
@@ -147,7 +147,6 @@ spack:
|
||||
# HOLDING THESE BACK UNTIL CRAY SLES CAPACITY IS EXPANDED AT UO
|
||||
# - alquimia
|
||||
# - amrex
|
||||
# - archer
|
||||
# - axom
|
||||
# - bricks
|
||||
# - dealii
|
||||
|
||||
@@ -7,7 +7,7 @@ spack:
|
||||
|
||||
packages:
|
||||
all:
|
||||
require: '%gcc@11.4.0 target=neoverse_v2'
|
||||
require: '%gcc target=neoverse_v2'
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
@@ -31,18 +31,13 @@ spack:
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
mpi:
|
||||
require: mpich
|
||||
mpich:
|
||||
require: '~wrapperrpath ~hwloc'
|
||||
ncurses:
|
||||
require: '@6.3 +termlib'
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
boost:
|
||||
version: [1.79.0]
|
||||
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
|
||||
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
|
||||
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
|
||||
@@ -156,6 +151,7 @@ spack:
|
||||
- umap
|
||||
- umpire
|
||||
- upcxx
|
||||
- veloc
|
||||
- wannier90
|
||||
- xyce +mpi +shared +pymi +pymi_static_tpls
|
||||
# INCLUDED IN ECP DAV CPU
|
||||
@@ -170,15 +166,15 @@ spack:
|
||||
- py-cinemasci
|
||||
- sz
|
||||
- unifyfs
|
||||
- veloc
|
||||
- laghos
|
||||
# - visit # silo: https://github.com/spack/spack/issues/39538
|
||||
- vtk-m
|
||||
- zfp
|
||||
# --
|
||||
# - archer # part of llvm +omp_tsan
|
||||
# - bricks ~cuda # not respecting target=aarch64?
|
||||
# - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
|
||||
# - geopm # geopm: https://github.com/spack/spack/issues/38795
|
||||
# - glvis # glvis: https://github.com/spack/spack/issues/42839
|
||||
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
|
||||
# - variorum # variorum: https://github.com/spack/spack/issues/38786
|
||||
|
||||
@@ -188,7 +184,9 @@ spack:
|
||||
- py-jax
|
||||
- py-jupyterlab
|
||||
- py-matplotlib
|
||||
- py-mpi4py
|
||||
- py-notebook
|
||||
- py-numba
|
||||
- py-numpy
|
||||
- py-openai
|
||||
- py-pandas
|
||||
@@ -351,7 +349,7 @@ spack:
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01"
|
||||
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: E4S ARM Neoverse V2
|
||||
|
||||
@@ -7,7 +7,7 @@ spack:
|
||||
|
||||
packages:
|
||||
all:
|
||||
require: '%gcc@11.4.0 target=neoverse_v1'
|
||||
require: '%gcc target=neoverse_v1'
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
@@ -35,12 +35,9 @@ spack:
|
||||
require: mpich
|
||||
mpich:
|
||||
require: '~wrapperrpath ~hwloc'
|
||||
ncurses:
|
||||
require: '@6.3 +termlib'
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
boost:
|
||||
version: [1.79.0]
|
||||
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
|
||||
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
|
||||
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
|
||||
@@ -95,6 +92,7 @@ spack:
|
||||
- hypre
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- laghos
|
||||
- lammps
|
||||
- lbann
|
||||
- legion
|
||||
@@ -173,13 +171,34 @@ spack:
|
||||
- vtk-m
|
||||
- zfp
|
||||
# --
|
||||
# - archer # part of llvm +omp_tsan
|
||||
# - bricks ~cuda # not respecting target=aarch64?
|
||||
# - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
|
||||
# - geopm # geopm: https://github.com/spack/spack/issues/38795
|
||||
# - glvis # glvis: https://github.com/spack/spack/issues/42839
|
||||
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
|
||||
# - variorum # variorum: https://github.com/spack/spack/issues/38786
|
||||
|
||||
# PYTHON PACKAGES
|
||||
- opencv +python3
|
||||
- py-horovod
|
||||
- py-jax
|
||||
- py-jupyterlab
|
||||
- py-matplotlib
|
||||
- py-mpi4py
|
||||
- py-notebook
|
||||
- py-numba
|
||||
- py-numpy
|
||||
- py-openai
|
||||
- py-pandas
|
||||
- py-plotly
|
||||
- py-pooch
|
||||
- py-pytest
|
||||
- py-scikit-learn
|
||||
- py-scipy
|
||||
- py-seaborn
|
||||
- py-tensorflow
|
||||
- py-torch
|
||||
|
||||
# CUDA NOARCH
|
||||
- flux-core +cuda
|
||||
- hpctoolkit +cuda
|
||||
@@ -281,25 +300,6 @@ spack:
|
||||
# - slepc +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
|
||||
# - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
|
||||
|
||||
# PYTHON PACKAGES
|
||||
- opencv +python3
|
||||
- py-horovod
|
||||
- py-jax
|
||||
- py-jupyterlab
|
||||
- py-matplotlib
|
||||
- py-notebook
|
||||
- py-numpy
|
||||
- py-openai
|
||||
- py-pandas
|
||||
- py-plotly
|
||||
- py-pooch
|
||||
- py-pytest
|
||||
- py-scikit-learn
|
||||
- py-scipy
|
||||
- py-seaborn
|
||||
- py-tensorflow
|
||||
- py-torch
|
||||
|
||||
# CUDA 90
|
||||
- amrex +cuda cuda_arch=90
|
||||
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
|
||||
@@ -349,7 +349,7 @@ spack:
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01"
|
||||
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: E4S ARM Neoverse V1
|
||||
|
||||
@@ -13,9 +13,10 @@ spack:
|
||||
- "%oneapi"
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
tbb: [intel-tbb]
|
||||
variants: +mpi
|
||||
gl:
|
||||
require: osmesa
|
||||
elfutils:
|
||||
variants: ~nls
|
||||
gcc-runtime:
|
||||
@@ -38,14 +39,10 @@ spack:
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
mpi:
|
||||
require: 'mpich@4:'
|
||||
mpich:
|
||||
require: '~wrapperrpath ~hwloc'
|
||||
py-cryptography:
|
||||
require: '@38.0.1'
|
||||
unzip:
|
||||
require: '%gcc'
|
||||
binutils:
|
||||
@@ -63,8 +60,6 @@ spack:
|
||||
require: '%gcc'
|
||||
openssh:
|
||||
require: '%gcc'
|
||||
libffi:
|
||||
require: "@3.4.4"
|
||||
dyninst:
|
||||
require: "%gcc"
|
||||
bison:
|
||||
@@ -108,6 +103,7 @@ spack:
|
||||
- hypre
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- laghos
|
||||
- lammps
|
||||
- lbann
|
||||
- legion
|
||||
@@ -193,16 +189,14 @@ spack:
|
||||
# - upcxx # upcxx: /opt/intel/oneapi/mpi/2021.10.0//libfabric/bin/fi_info: error while loading shared libraries: libfabric.so.1: cannot open shared object file: No such file or directory
|
||||
# --
|
||||
# - bricks ~cuda # bricks: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
|
||||
# - glvis ^llvm # glvis: https://github.com/spack/spack/issues/42839
|
||||
# - pdt # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
|
||||
# - quantum-espresso # quantum-espresso@7.2 /i3fqdx5: warning: <unknown>:0:0: loop not unroll-and-jammed: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering
|
||||
# - tau +mpi +python +syscall # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
|
||||
|
||||
# PYTHON PACKAGES
|
||||
- opencv +python3
|
||||
# - py-horovod # error
|
||||
# - py-jax # error
|
||||
- py-jupyterlab
|
||||
# - py-matplotlib # error
|
||||
- py-notebook
|
||||
- py-numpy
|
||||
- py-openai
|
||||
@@ -213,8 +207,13 @@ spack:
|
||||
- py-scikit-learn
|
||||
- py-scipy
|
||||
- py-seaborn
|
||||
# - py-tensorflow # error
|
||||
# - py-torch # error
|
||||
- py-mpi4py
|
||||
- py-numba
|
||||
# - py-horovod # error
|
||||
# - py-jax # error
|
||||
# - py-matplotlib # error
|
||||
# - py-tensorflow # error
|
||||
# - py-torch # error
|
||||
|
||||
# GPU
|
||||
- amrex +sycl
|
||||
|
||||
@@ -32,8 +32,6 @@ spack:
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
mpi:
|
||||
require: mpich
|
||||
mpich:
|
||||
@@ -74,7 +72,6 @@ spack:
|
||||
- drishti
|
||||
- dxt-explorer
|
||||
- dyninst
|
||||
# - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
|
||||
- exaworks
|
||||
- flecsi
|
||||
- flit
|
||||
@@ -97,6 +94,7 @@ spack:
|
||||
- hypre
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- laghos
|
||||
- lammps
|
||||
- lbann
|
||||
- legion
|
||||
@@ -158,6 +156,7 @@ spack:
|
||||
- upcxx
|
||||
- wannier90
|
||||
- xyce +mpi +shared +pymi +pymi_static_tpls
|
||||
# - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
|
||||
# INCLUDED IN ECP DAV CPU
|
||||
- adios2
|
||||
- ascent
|
||||
@@ -176,20 +175,21 @@ spack:
|
||||
- vtk-m
|
||||
- zfp
|
||||
# --
|
||||
# - archer # part of llvm +omp_tsan
|
||||
# - dealii # fltk: https://github.com/spack/spack/issues/38791
|
||||
# - geopm # geopm: https://github.com/spack/spack/issues/38798
|
||||
# - glvis # glvis: https://github.com/spack/spack/issues/42839
|
||||
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs: gcc: error: unrecognized command line option '-mno-sse2'; did you mean '-mno-isel'? gcc: error: unrecognized command line option '-mno-avx2'
|
||||
# - phist +mpi # ghost@develop: gcc-9: error: unrecognized command line option '-march=native'; did you mean '-mcpu=native'?
|
||||
# - variorum # variorum: https://github.com/spack/spack/issues/38786
|
||||
|
||||
# PYTHON PACKAGES
|
||||
- opencv +python3
|
||||
# - py-horovod # py-torch, py-tensorflow
|
||||
- py-jax
|
||||
- py-jupyterlab
|
||||
- py-matplotlib
|
||||
- py-mpi4py
|
||||
- py-notebook
|
||||
- py-numba
|
||||
- py-numpy
|
||||
- py-openai
|
||||
- py-pandas
|
||||
@@ -199,8 +199,9 @@ spack:
|
||||
- py-scikit-learn
|
||||
- py-scipy
|
||||
- py-seaborn
|
||||
# - py-tensorflow # error
|
||||
# - py-torch # error
|
||||
# - py-horovod # py-torch, py-tensorflow
|
||||
# - py-tensorflow # error
|
||||
# - py-torch # error
|
||||
|
||||
# CUDA NOARCH
|
||||
- bricks +cuda
|
||||
|
||||
@@ -10,49 +10,15 @@ spack:
|
||||
require: '%gcc target=x86_64_v3'
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
variants: +mpi
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
elfutils:
|
||||
variants: ~nls
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
libfabric:
|
||||
variants: fabrics=sockets,tcp,udp,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
trilinos:
|
||||
variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
|
||||
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
|
||||
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
mpi:
|
||||
require: mpich
|
||||
mpich:
|
||||
require: '~wrapperrpath ~hwloc'
|
||||
ncurses:
|
||||
require: '@6.3 +termlib'
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
boost:
|
||||
version: [1.79.0]
|
||||
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
|
||||
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
|
||||
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
|
||||
cxxstd=17 visibility=global
|
||||
libffi:
|
||||
require: "@3.4.4"
|
||||
vtk-m:
|
||||
require: "+examples"
|
||||
cuda:
|
||||
version: [11.8.0]
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
paraview:
|
||||
# Don't build GUI support or GLX rendering for HPC/container deployments
|
||||
require: "@5.11 ~qt+osmesa"
|
||||
@@ -61,181 +27,181 @@ spack:
|
||||
comgr:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: comgr@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: comgr@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hip-rocclr:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hip-rocclr@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/hip
|
||||
- spec: hip-rocclr@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/hip
|
||||
hipblas:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipblas@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hipblas@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hipcub:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipcub@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hipcub@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hipfft:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipfft@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hipfft@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hipsparse:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipsparse@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hipsparse@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
miopen-hip:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: miopen-hip@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: miopen-hip@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
miopengemm:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: miopengemm@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: miopengemm@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rccl:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rccl@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rccl@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocblas:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocblas@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocblas@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocfft:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocfft@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocfft@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-clang-ocl:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-clang-ocl@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-clang-ocl@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-cmake:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-cmake@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-cmake@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-dbgapi:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-dbgapi@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-dbgapi@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-debug-agent:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-debug-agent@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-debug-agent@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-device-libs:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-device-libs@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-device-libs@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-gdb:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-gdb@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-gdb@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
rocm-opencl:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-opencl@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/opencl
|
||||
- spec: rocm-opencl@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/opencl
|
||||
rocm-smi-lib:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocm-smi-lib@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: rocm-smi-lib@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hip:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hip@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: hip@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
extra_attributes:
|
||||
compilers:
|
||||
c: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
c++: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
hip: /opt/rocm-5.4.3/hip/bin/hipcc
|
||||
c: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
c++: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
hip: /opt/rocm-5.7.1/hip/bin/hipcc
|
||||
hipify-clang:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipify-clang@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: hipify-clang@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
llvm-amdgpu:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: llvm-amdgpu@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/llvm
|
||||
- spec: llvm-amdgpu@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/llvm
|
||||
extra_attributes:
|
||||
compilers:
|
||||
c: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
cxx: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
c: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
cxx: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
hsakmt-roct:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hsakmt-roct@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hsakmt-roct@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
hsa-rocr-dev:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hsa-rocr-dev@5.4.3
|
||||
prefix: /opt/rocm-5.4.3/
|
||||
- spec: hsa-rocr-dev@5.7.1
|
||||
prefix: /opt/rocm-5.7.1/
|
||||
extra_atributes:
|
||||
compilers:
|
||||
c: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
cxx: /opt/rocm-5.4.3/llvm/bin/clang++
|
||||
c: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
cxx: /opt/rocm-5.7.1/llvm/bin/clang++
|
||||
roctracer-dev-api:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: roctracer-dev-api@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: roctracer-dev-api@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
roctracer-dev:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: roctracer-dev@4.5.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocprim:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocprim@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocprim@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocrand:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocrand@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocrand@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
hipsolver:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: hipsolver@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: hipsolver@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocsolver:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocsolver@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocsolver@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocsparse:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocsparse@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocsparse@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocthrust:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocthrust@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocthrust@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
rocprofiler-dev:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: rocprofiler-dev@5.4.3
|
||||
prefix: /opt/rocm-5.4.3
|
||||
- spec: rocprofiler-dev@5.7.1
|
||||
prefix: /opt/rocm-5.7.1
|
||||
|
||||
specs:
|
||||
# ROCM NOARCH
|
||||
@@ -262,7 +228,7 @@ spack:
|
||||
- mfem +rocm amdgpu_target=gfx908
|
||||
- petsc +rocm amdgpu_target=gfx908
|
||||
- raja ~openmp +rocm amdgpu_target=gfx908
|
||||
- slate +rocm amdgpu_target=gfx908
|
||||
# - slate +rocm amdgpu_target=gfx908 # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
|
||||
- slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
|
||||
- strumpack ~slate +rocm amdgpu_target=gfx908
|
||||
- sundials +rocm amdgpu_target=gfx908
|
||||
@@ -303,7 +269,7 @@ spack:
|
||||
- mfem +rocm amdgpu_target=gfx90a
|
||||
- petsc +rocm amdgpu_target=gfx90a
|
||||
- raja ~openmp +rocm amdgpu_target=gfx90a
|
||||
- slate +rocm amdgpu_target=gfx90a
|
||||
# - slate +rocm amdgpu_target=gfx90a # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
|
||||
- slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
|
||||
- strumpack ~slate +rocm amdgpu_target=gfx90a
|
||||
- sundials +rocm amdgpu_target=gfx90a
|
||||
@@ -327,7 +293,7 @@ spack:
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01"
|
||||
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm5.7.1:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: E4S ROCm External
|
||||
|
||||
@@ -31,18 +31,13 @@ spack:
|
||||
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
|
||||
xz:
|
||||
variants: +pic
|
||||
mesa:
|
||||
version: [21.3.8]
|
||||
mpi:
|
||||
require: mpich
|
||||
mpich:
|
||||
require: '~wrapperrpath ~hwloc'
|
||||
ncurses:
|
||||
require: '@6.3 +termlib'
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
boost:
|
||||
version: [1.79.0]
|
||||
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
|
||||
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
|
||||
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
|
||||
@@ -106,6 +101,7 @@ spack:
|
||||
- julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly
|
||||
- kokkos +openmp
|
||||
- kokkos-kernels +openmp
|
||||
- laghos
|
||||
- lammps
|
||||
- lbann
|
||||
- legion
|
||||
@@ -187,8 +183,8 @@ spack:
|
||||
- vtk-m
|
||||
- zfp
|
||||
# --
|
||||
# - archer # submerged into llvm +libomp_tsan
|
||||
# - geopm # geopm: https://github.com/spack/spack/issues/38795
|
||||
# - glvis # glvis: https://github.com/spack/spack/issues/42839
|
||||
|
||||
# PYTHON PACKAGES
|
||||
- opencv +python3
|
||||
@@ -196,7 +192,9 @@ spack:
|
||||
- py-jax
|
||||
- py-jupyterlab
|
||||
- py-matplotlib
|
||||
- py-mpi4py
|
||||
- py-notebook
|
||||
- py-numba
|
||||
- py-numpy
|
||||
- py-openai
|
||||
- py-pandas
|
||||
@@ -209,198 +207,198 @@ spack:
|
||||
- py-tensorflow
|
||||
- py-torch
|
||||
|
||||
# CUDA NOARCH
|
||||
- bricks +cuda
|
||||
- flux-core +cuda
|
||||
- hpctoolkit +cuda
|
||||
- papi +cuda
|
||||
- tau +mpi +cuda +syscall
|
||||
# --
|
||||
# - legion +cuda # legion: needs NVIDIA driver
|
||||
# # CUDA NOARCH
|
||||
# - bricks +cuda
|
||||
# - flux-core +cuda
|
||||
# - hpctoolkit +cuda
|
||||
# - papi +cuda
|
||||
# - tau +mpi +cuda +syscall
|
||||
# # --
|
||||
# # - legion +cuda # legion: needs NVIDIA driver
|
||||
|
||||
# CUDA 80
|
||||
- amrex +cuda cuda_arch=80
|
||||
- arborx +cuda cuda_arch=80 ^kokkos +wrapper
|
||||
- cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
|
||||
- caliper +cuda cuda_arch=80
|
||||
- chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
|
||||
- cusz +cuda cuda_arch=80
|
||||
- dealii +cuda cuda_arch=80
|
||||
- ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # +ascent fails because fides fetch error
|
||||
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
|
||||
- flecsi +cuda cuda_arch=80
|
||||
- ginkgo +cuda cuda_arch=80
|
||||
- gromacs +cuda cuda_arch=80
|
||||
- heffte +cuda cuda_arch=80
|
||||
- hpx +cuda cuda_arch=80
|
||||
- hypre +cuda cuda_arch=80
|
||||
- kokkos +wrapper +cuda cuda_arch=80
|
||||
- kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80
|
||||
- libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80
|
||||
- magma +cuda cuda_arch=80
|
||||
- mfem +cuda cuda_arch=80
|
||||
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
|
||||
- omega-h +cuda cuda_arch=80
|
||||
- parsec +cuda cuda_arch=80
|
||||
- petsc +cuda cuda_arch=80
|
||||
- py-torch +cuda cuda_arch=80
|
||||
- raja +cuda cuda_arch=80
|
||||
- slate +cuda cuda_arch=80
|
||||
- slepc +cuda cuda_arch=80
|
||||
- strumpack ~slate +cuda cuda_arch=80
|
||||
- sundials +cuda cuda_arch=80
|
||||
- superlu-dist +cuda cuda_arch=80
|
||||
- tasmanian +cuda cuda_arch=80
|
||||
- trilinos +cuda cuda_arch=80
|
||||
- umpire ~shared +cuda cuda_arch=80
|
||||
# INCLUDED IN ECP DAV CUDA
|
||||
# - adios2 +cuda cuda_arch=80
|
||||
# - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
|
||||
# - paraview +cuda cuda_arch=80
|
||||
# - vtk-m +cuda cuda_arch=80
|
||||
# - zfp +cuda cuda_arch=80
|
||||
# --
|
||||
# - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
|
||||
# - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
|
||||
# - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
|
||||
# - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
|
||||
# # CUDA 80
|
||||
# - amrex +cuda cuda_arch=80
|
||||
# - arborx +cuda cuda_arch=80 ^kokkos +wrapper
|
||||
# - cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
|
||||
# - caliper +cuda cuda_arch=80
|
||||
# - chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
|
||||
# - cusz +cuda cuda_arch=80
|
||||
# - dealii +cuda cuda_arch=80
|
||||
# - ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # +ascent fails because fides fetch error
|
||||
# - exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
|
||||
# - flecsi +cuda cuda_arch=80
|
||||
# - ginkgo +cuda cuda_arch=80
|
||||
# - gromacs +cuda cuda_arch=80
|
||||
# - heffte +cuda cuda_arch=80
|
||||
# - hpx +cuda cuda_arch=80
|
||||
# - hypre +cuda cuda_arch=80
|
||||
# - kokkos +wrapper +cuda cuda_arch=80
|
||||
# - kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80
|
||||
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80
|
||||
# - magma +cuda cuda_arch=80
|
||||
# - mfem +cuda cuda_arch=80
|
||||
# - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
|
||||
# - omega-h +cuda cuda_arch=80
|
||||
# - parsec +cuda cuda_arch=80
|
||||
# - petsc +cuda cuda_arch=80
|
||||
# - py-torch +cuda cuda_arch=80
|
||||
# - raja +cuda cuda_arch=80
|
||||
# - slate +cuda cuda_arch=80
|
||||
# - slepc +cuda cuda_arch=80
|
||||
# - strumpack ~slate +cuda cuda_arch=80
|
||||
# - sundials +cuda cuda_arch=80
|
||||
# - superlu-dist +cuda cuda_arch=80
|
||||
# - tasmanian +cuda cuda_arch=80
|
||||
# - trilinos +cuda cuda_arch=80
|
||||
# - umpire ~shared +cuda cuda_arch=80
|
||||
# # INCLUDED IN ECP DAV CUDA
|
||||
# # - adios2 +cuda cuda_arch=80
|
||||
# # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
|
||||
# # - paraview +cuda cuda_arch=80
|
||||
# # - vtk-m +cuda cuda_arch=80
|
||||
# # - zfp +cuda cuda_arch=80
|
||||
# # --
|
||||
# # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
|
||||
# # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
|
||||
# # - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
|
||||
# # - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
|
||||
|
||||
# CUDA 90
|
||||
- amrex +cuda cuda_arch=90
|
||||
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
|
||||
- cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
|
||||
- caliper +cuda cuda_arch=90
|
||||
- chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
|
||||
- cusz +cuda cuda_arch=90
|
||||
- flecsi +cuda cuda_arch=90
|
||||
- ginkgo +cuda cuda_arch=90
|
||||
- gromacs +cuda cuda_arch=90
|
||||
- heffte +cuda cuda_arch=90
|
||||
- hpx +cuda cuda_arch=90
|
||||
- kokkos +wrapper +cuda cuda_arch=90
|
||||
- kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
|
||||
- libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90
|
||||
- magma +cuda cuda_arch=90
|
||||
- mfem +cuda cuda_arch=90
|
||||
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
|
||||
- parsec +cuda cuda_arch=90
|
||||
- petsc +cuda cuda_arch=90
|
||||
- py-torch +cuda cuda_arch=90
|
||||
- raja +cuda cuda_arch=90
|
||||
- slate +cuda cuda_arch=90
|
||||
- slepc +cuda cuda_arch=90
|
||||
- strumpack ~slate +cuda cuda_arch=90
|
||||
- sundials +cuda cuda_arch=90
|
||||
- superlu-dist +cuda cuda_arch=90
|
||||
- trilinos +cuda cuda_arch=90
|
||||
- umpire ~shared +cuda cuda_arch=90
|
||||
# INCLUDED IN ECP DAV CUDA
|
||||
- adios2 +cuda cuda_arch=90
|
||||
# - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
|
||||
# - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
|
||||
- vtk-m +cuda cuda_arch=90
|
||||
- zfp +cuda cuda_arch=90
|
||||
# --
|
||||
# - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
|
||||
# - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
|
||||
# - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # paraview: incompatible cuda_arch; vtk-m: CMake Error at CMake/VTKmWrappers.cmake:413 (message): vtkm_cont needs to be built STATIC as CUDA doesn't support virtual methods across dynamic library boundaries. You need to set the CMake opt ion BUILD_SHARED_LIBS to `OFF` or (better) turn VTKm_NO_DEPRECATED_VIRTUAL to `ON`.
|
||||
# - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
|
||||
# - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
|
||||
# - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
|
||||
# - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
|
||||
# - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
|
||||
# - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
|
||||
# # CUDA 90
|
||||
# - amrex +cuda cuda_arch=90
|
||||
# - arborx +cuda cuda_arch=90 ^kokkos +wrapper
|
||||
# - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
|
||||
# - caliper +cuda cuda_arch=90
|
||||
# - chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
|
||||
# - cusz +cuda cuda_arch=90
|
||||
# - flecsi +cuda cuda_arch=90
|
||||
# - ginkgo +cuda cuda_arch=90
|
||||
# - gromacs +cuda cuda_arch=90
|
||||
# - heffte +cuda cuda_arch=90
|
||||
# - hpx +cuda cuda_arch=90
|
||||
# - kokkos +wrapper +cuda cuda_arch=90
|
||||
# - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
|
||||
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90
|
||||
# - magma +cuda cuda_arch=90
|
||||
# - mfem +cuda cuda_arch=90
|
||||
# - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
|
||||
# - parsec +cuda cuda_arch=90
|
||||
# - petsc +cuda cuda_arch=90
|
||||
# - py-torch +cuda cuda_arch=90
|
||||
# - raja +cuda cuda_arch=90
|
||||
# - slate +cuda cuda_arch=90
|
||||
# - slepc +cuda cuda_arch=90
|
||||
# - strumpack ~slate +cuda cuda_arch=90
|
||||
# - sundials +cuda cuda_arch=90
|
||||
# - superlu-dist +cuda cuda_arch=90
|
||||
# - trilinos +cuda cuda_arch=90
|
||||
# - umpire ~shared +cuda cuda_arch=90
|
||||
# # INCLUDED IN ECP DAV CUDA
|
||||
# - adios2 +cuda cuda_arch=90
|
||||
# # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
|
||||
# # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
|
||||
# - vtk-m +cuda cuda_arch=90
|
||||
# - zfp +cuda cuda_arch=90
|
||||
# # --
|
||||
# # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
|
||||
# # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
|
||||
# # - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # paraview: incompatible cuda_arch; vtk-m: CMake Error at CMake/VTKmWrappers.cmake:413 (message): vtkm_cont needs to be built STATIC as CUDA doesn't support virtual methods across dynamic library boundaries. You need to set the CMake opt ion BUILD_SHARED_LIBS to `OFF` or (better) turn VTKm_NO_DEPRECATED_VIRTUAL to `ON`.
|
||||
# # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
|
||||
# # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
|
||||
# # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
|
||||
# # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
|
||||
# # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
|
||||
# # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
|
||||
|
||||
# ROCM NOARCH
|
||||
- hpctoolkit +rocm
|
||||
- tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
|
||||
# # ROCM NOARCH
|
||||
# - hpctoolkit +rocm
|
||||
# - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
|
||||
|
||||
# ROCM 908
|
||||
- adios2 +kokkos +rocm amdgpu_target=gfx908
|
||||
- amrex +rocm amdgpu_target=gfx908
|
||||
- arborx +rocm amdgpu_target=gfx908
|
||||
- cabana +rocm amdgpu_target=gfx908
|
||||
- caliper +rocm amdgpu_target=gfx908
|
||||
- chai ~benchmarks +rocm amdgpu_target=gfx908
|
||||
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
|
||||
- gasnet +rocm amdgpu_target=gfx908
|
||||
- ginkgo +rocm amdgpu_target=gfx908
|
||||
- heffte +rocm amdgpu_target=gfx908
|
||||
- hpx +rocm amdgpu_target=gfx908
|
||||
- hypre +rocm amdgpu_target=gfx908
|
||||
- kokkos +rocm amdgpu_target=gfx908
|
||||
- legion +rocm amdgpu_target=gfx908
|
||||
- magma ~cuda +rocm amdgpu_target=gfx908
|
||||
- mfem +rocm amdgpu_target=gfx908
|
||||
- petsc +rocm amdgpu_target=gfx908
|
||||
- raja ~openmp +rocm amdgpu_target=gfx908
|
||||
- slate +rocm amdgpu_target=gfx908
|
||||
- slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
|
||||
- strumpack ~slate +rocm amdgpu_target=gfx908
|
||||
- sundials +rocm amdgpu_target=gfx908
|
||||
- superlu-dist +rocm amdgpu_target=gfx908
|
||||
- tasmanian ~openmp +rocm amdgpu_target=gfx908
|
||||
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
|
||||
- umpire +rocm amdgpu_target=gfx908
|
||||
- upcxx +rocm amdgpu_target=gfx908
|
||||
# INCLUDED IN ECP DAV ROCM
|
||||
# - hdf5
|
||||
# - hdf5-vol-async
|
||||
# - hdf5-vol-cache
|
||||
# - hdf5-vol-log
|
||||
# - libcatalyst
|
||||
- paraview +rocm amdgpu_target=gfx908
|
||||
# - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
|
||||
# --
|
||||
# - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
|
||||
# - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
|
||||
# - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
|
||||
# # ROCM 908
|
||||
# - adios2 +kokkos +rocm amdgpu_target=gfx908
|
||||
# - amrex +rocm amdgpu_target=gfx908
|
||||
# - arborx +rocm amdgpu_target=gfx908
|
||||
# - cabana +rocm amdgpu_target=gfx908
|
||||
# - caliper +rocm amdgpu_target=gfx908
|
||||
# - chai ~benchmarks +rocm amdgpu_target=gfx908
|
||||
# - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
|
||||
# - gasnet +rocm amdgpu_target=gfx908
|
||||
# - ginkgo +rocm amdgpu_target=gfx908
|
||||
# - heffte +rocm amdgpu_target=gfx908
|
||||
# - hpx +rocm amdgpu_target=gfx908
|
||||
# - hypre +rocm amdgpu_target=gfx908
|
||||
# - kokkos +rocm amdgpu_target=gfx908
|
||||
# - legion +rocm amdgpu_target=gfx908
|
||||
# - magma ~cuda +rocm amdgpu_target=gfx908
|
||||
# - mfem +rocm amdgpu_target=gfx908
|
||||
# - petsc +rocm amdgpu_target=gfx908
|
||||
# - raja ~openmp +rocm amdgpu_target=gfx908
|
||||
# - slate +rocm amdgpu_target=gfx908
|
||||
# - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
|
||||
# - strumpack ~slate +rocm amdgpu_target=gfx908
|
||||
# - sundials +rocm amdgpu_target=gfx908
|
||||
# - superlu-dist +rocm amdgpu_target=gfx908
|
||||
# - tasmanian ~openmp +rocm amdgpu_target=gfx908
|
||||
# - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
|
||||
# - umpire +rocm amdgpu_target=gfx908
|
||||
# - upcxx +rocm amdgpu_target=gfx908
|
||||
# # INCLUDED IN ECP DAV ROCM
|
||||
# # - hdf5
|
||||
# # - hdf5-vol-async
|
||||
# # - hdf5-vol-cache
|
||||
# # - hdf5-vol-log
|
||||
# # - libcatalyst
|
||||
# - paraview +rocm amdgpu_target=gfx908
|
||||
# # - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
|
||||
# # --
|
||||
# # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
|
||||
# # - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
|
||||
# # - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
|
||||
|
||||
# ROCM 90a
|
||||
- adios2 +kokkos +rocm amdgpu_target=gfx90a
|
||||
- amrex +rocm amdgpu_target=gfx90a
|
||||
- arborx +rocm amdgpu_target=gfx90a
|
||||
- cabana +rocm amdgpu_target=gfx90a
|
||||
- caliper +rocm amdgpu_target=gfx90a
|
||||
- chai ~benchmarks +rocm amdgpu_target=gfx90a
|
||||
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
|
||||
- gasnet +rocm amdgpu_target=gfx90a
|
||||
- ginkgo +rocm amdgpu_target=gfx90a
|
||||
- heffte +rocm amdgpu_target=gfx90a
|
||||
- hpx +rocm amdgpu_target=gfx90a
|
||||
- hypre +rocm amdgpu_target=gfx90a
|
||||
- kokkos +rocm amdgpu_target=gfx90a
|
||||
- legion +rocm amdgpu_target=gfx90a
|
||||
- magma ~cuda +rocm amdgpu_target=gfx90a
|
||||
- mfem +rocm amdgpu_target=gfx90a
|
||||
- petsc +rocm amdgpu_target=gfx90a
|
||||
- raja ~openmp +rocm amdgpu_target=gfx90a
|
||||
- slate +rocm amdgpu_target=gfx90a
|
||||
- slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
|
||||
- strumpack ~slate +rocm amdgpu_target=gfx90a
|
||||
- sundials +rocm amdgpu_target=gfx90a
|
||||
- superlu-dist +rocm amdgpu_target=gfx90a
|
||||
- tasmanian ~openmp +rocm amdgpu_target=gfx90a
|
||||
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a
|
||||
- umpire +rocm amdgpu_target=gfx90a
|
||||
- upcxx +rocm amdgpu_target=gfx90a
|
||||
# INCLUDED IN ECP DAV ROCM
|
||||
# - hdf5
|
||||
# - hdf5-vol-async
|
||||
# - hdf5-vol-cache
|
||||
# - hdf5-vol-log
|
||||
# - libcatalyst
|
||||
- paraview +rocm amdgpu_target=gfx90a
|
||||
# - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
|
||||
# --
|
||||
# - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
|
||||
# - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
|
||||
# - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
|
||||
# # ROCM 90a
|
||||
# - adios2 +kokkos +rocm amdgpu_target=gfx90a
|
||||
# - amrex +rocm amdgpu_target=gfx90a
|
||||
# - arborx +rocm amdgpu_target=gfx90a
|
||||
# - cabana +rocm amdgpu_target=gfx90a
|
||||
# - caliper +rocm amdgpu_target=gfx90a
|
||||
# - chai ~benchmarks +rocm amdgpu_target=gfx90a
|
||||
# - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
|
||||
# - gasnet +rocm amdgpu_target=gfx90a
|
||||
# - ginkgo +rocm amdgpu_target=gfx90a
|
||||
# - heffte +rocm amdgpu_target=gfx90a
|
||||
# - hpx +rocm amdgpu_target=gfx90a
|
||||
# - hypre +rocm amdgpu_target=gfx90a
|
||||
# - kokkos +rocm amdgpu_target=gfx90a
|
||||
# - legion +rocm amdgpu_target=gfx90a
|
||||
# - magma ~cuda +rocm amdgpu_target=gfx90a
|
||||
# - mfem +rocm amdgpu_target=gfx90a
|
||||
# - petsc +rocm amdgpu_target=gfx90a
|
||||
# - raja ~openmp +rocm amdgpu_target=gfx90a
|
||||
# - slate +rocm amdgpu_target=gfx90a
|
||||
# - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
|
||||
# - strumpack ~slate +rocm amdgpu_target=gfx90a
|
||||
# - sundials +rocm amdgpu_target=gfx90a
|
||||
# - superlu-dist +rocm amdgpu_target=gfx90a
|
||||
# - tasmanian ~openmp +rocm amdgpu_target=gfx90a
|
||||
# - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a
|
||||
# - umpire +rocm amdgpu_target=gfx90a
|
||||
# - upcxx +rocm amdgpu_target=gfx90a
|
||||
# # INCLUDED IN ECP DAV ROCM
|
||||
# # - hdf5
|
||||
# # - hdf5-vol-async
|
||||
# # - hdf5-vol-cache
|
||||
# # - hdf5-vol-log
|
||||
# # - libcatalyst
|
||||
# - paraview +rocm amdgpu_target=gfx90a
|
||||
# # - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
|
||||
# # --
|
||||
# # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
|
||||
# # - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
|
||||
# # - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01"
|
||||
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: E4S
|
||||
|
||||
@@ -33,6 +33,11 @@ class Aocc(Package):
|
||||
|
||||
maintainers("amd-toolchain-support")
|
||||
|
||||
version(
|
||||
ver="4.2.0",
|
||||
sha256="ed5a560ec745b24dc0685ccdcbde914843fb2f2dfbfce1ba592de4ffbce1ccab",
|
||||
url="https://download.amd.com/developer/eula/aocc/aocc-4-2/aocc-compiler-4.2.0.tar",
|
||||
)
|
||||
version(
|
||||
ver="4.1.0",
|
||||
sha256="5b04bfdb751c68dfb9470b34235d76efa80a6b662a123c3375b255982cb52acd",
|
||||
@@ -56,7 +61,6 @@ class Aocc(Package):
|
||||
depends_on("zlib-api")
|
||||
depends_on("ncurses")
|
||||
depends_on("libtool")
|
||||
depends_on("texinfo")
|
||||
|
||||
variant(
|
||||
"license-agreed",
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --color=auto --color=auto -Naur a/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java
|
||||
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java 1980-01-01 00:00:00
|
||||
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java 2024-02-15 13:36:37
|
||||
@@ -143,7 +143,7 @@
|
||||
LabelConstants.EXPERIMENTAL_EXTERNAL_PATH_PREFIX.getRelative(
|
||||
execPath.relativeTo(execRoot.getParentDirectory()));
|
||||
} else {
|
||||
- absolutePathProblems.add(execPathFragment.getPathString());
|
||||
+ // absolutePathProblems.add(execPathFragment.getPathString());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -18,10 +18,23 @@ class Bazel(Package):
|
||||
homepage = "https://bazel.build/"
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-dist.zip"
|
||||
|
||||
maintainers("LydDeb")
|
||||
|
||||
tags = ["build-tools"]
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version("7.0.2", sha256="dea2b90575d43ef3e41c402f64c2481844ecbf0b40f8548b75a204a4d504e035")
|
||||
version("7.0.1", sha256="596b13e071d27c43343ec8f5d263cb5312fafe7ef8702401f7ed492f182f4e6c")
|
||||
version("7.0.0", sha256="477e54f6374001f439a9471ba1de9d7824daf129db95510849ecc5e19ce88170")
|
||||
version("6.5.0", sha256="fc89da919415289f29e4ff18a5e01270ece9a6fe83cb60967218bac4a3bb3ed2")
|
||||
version("6.4.0", sha256="bd88ff602c8bbb29ee82ba2a6b12ad092d51ec668c6577f9628f18e48ff4e51e")
|
||||
version("6.3.2", sha256="8cd7feac58193be2bcba451ba6688a46824d37ca6359ff58e0d44eb98f042948")
|
||||
version("6.3.1", sha256="2676319e86c5aeab142dccd42434364a33aa330a091c13562b7de87a10e68775")
|
||||
version("6.3.0", sha256="902198981b1d26112fc05913e79f1b3e9772c3f95594caf85619d041ba06ede0")
|
||||
version("6.2.1", sha256="4cf4d264bff388ee0012735728630d23832d3c9d021383b2fadceadb0775dd6b")
|
||||
version("6.2.0", sha256="f1e8f788637ac574d471d619d2096baaca04a19b57a034399e079633db441945")
|
||||
version("6.1.2", sha256="6fb3ee22fe9fa86d82e173572d504c089f10825d749725592626e090b38c9679")
|
||||
version("6.1.1", sha256="6b900f26d676c7eca1d2e7dff9b71890dabd3ff59cab2a2d2178bc8a0395342a")
|
||||
version("6.1.0", sha256="c4b85675541cf66ee7cb71514097fdd6c5fc0e02527243617a4f20ca6b4f2932")
|
||||
version("6.0.0", sha256="7bc0c5145c19a56d82a08fce6908c5e1a0e75e4fbfb3b6f12b4deae7f4b38cbc")
|
||||
@@ -33,6 +46,7 @@ class Bazel(Package):
|
||||
version("5.1.1", sha256="7f5d3bc1d344692b2400f3765fd4b5c0b636eb4e7a8a7b17923095c7b56a4f78")
|
||||
version("5.1.0", sha256="4de301f509fc6d0cbc697b2017384ecdc94df8f36245bbcbedc7ea6780acc9f5")
|
||||
version("5.0.0", sha256="072dd62d237dbc11e0bac02e118d8c2db4d0ba3ba09f1a0eb1e2a460fb8419db")
|
||||
version("4.2.4", sha256="d5ba2ef28da5275f22e832aaa7f9319c61ea5db9b6a3e23b28a6a64ad03078f3")
|
||||
version("4.2.3", sha256="b0e84d0538f3ec2b95a49bae31a5066f0967281a3ca99965016fbe178acd2d3d")
|
||||
version("4.2.2", sha256="9981d0d53a356c4e87962847750a97c9e8054e460854748006c80f0d7e2b2d33")
|
||||
version("4.2.1", sha256="12ea7aa11e2bdb12de1dceb9939a22e96f5a480437cb17c123379d8e0fdf5e82")
|
||||
@@ -66,7 +80,6 @@ class Bazel(Package):
|
||||
)
|
||||
|
||||
# https://bazel.build/install/compile-source#bootstrap-unix-prereq
|
||||
depends_on("java", type=("build", "run"))
|
||||
depends_on("java@11", when="@5.3:", type=("build", "run"))
|
||||
depends_on("java@8,11", when="@3.3:5.2", type=("build", "run"))
|
||||
depends_on("java@8", when="@0.6:3.2", type=("build", "run"))
|
||||
@@ -84,10 +97,11 @@ class Bazel(Package):
|
||||
patch("compile-0.29.patch")
|
||||
|
||||
# Disable dependency search
|
||||
patch("cppcompileaction-0.3.2.patch", when="+nodepfail")
|
||||
patch("cppcompileaction-7.0.0.patch", when="@7: +nodepfail")
|
||||
patch("cppcompileaction-0.3.2.patch", when="@:6 +nodepfail")
|
||||
|
||||
# https://github.com/bazelbuild/bazel/issues/17956
|
||||
patch("apple-clang-14.0.3.patch", when="@:5.4.0,6.0:6.1")
|
||||
patch("apple-clang-14.0.3.patch", when="@:4.2.3,5:6.1.1")
|
||||
|
||||
# https://github.com/bazelbuild/bazel/issues/17958
|
||||
patch(
|
||||
@@ -120,6 +134,39 @@ class Bazel(Package):
|
||||
|
||||
executables = ["^bazel$"]
|
||||
|
||||
# Download resources to perform offline build with bazel.
|
||||
# The following URLs and sha256 are in the file distdir_deps.bzl at the root of bazel sources.
|
||||
resource_dictionary = {}
|
||||
resource_dictionary["bazel_skylib"] = {
|
||||
"url": "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.1/bazel-skylib-1.0.1.tar.gz",
|
||||
"sha256": "f1c8360c01fcf276778d3519394805dc2a71a64274a3a0908bc9edff7b5aebc8",
|
||||
"when": "@4:6",
|
||||
}
|
||||
resource_dictionary["zulu_11_56_19"] = {
|
||||
"url": "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz",
|
||||
"sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247",
|
||||
"when": "@6",
|
||||
}
|
||||
resource_dictionary["zulu_11_50_19"] = {
|
||||
"url": "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_x64.tar.gz",
|
||||
"sha256": "b8e8a63b79bc312aa90f3558edbea59e71495ef1a9c340e38900dd28a1c579f3",
|
||||
"when": "@5",
|
||||
}
|
||||
resource_dictionary["zulu_11_37_17"] = {
|
||||
"url": "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
|
||||
"sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
|
||||
"when": "@4",
|
||||
}
|
||||
for resource_name in resource_dictionary.keys():
|
||||
resource(
|
||||
when=resource_dictionary[resource_name]["when"],
|
||||
name=resource_name,
|
||||
url=resource_dictionary[resource_name]["url"],
|
||||
sha256=resource_dictionary[resource_name]["sha256"],
|
||||
destination="archive",
|
||||
expand=False,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def determine_version(cls, exe):
|
||||
output = Executable(exe)("version", output=str, error=str)
|
||||
@@ -132,14 +179,24 @@ def setup_build_environment(self, env):
|
||||
env.set("BAZEL_LINKOPTS", "")
|
||||
env.set("BAZEL_LINKLIBS", "-lstdc++")
|
||||
|
||||
env.set(
|
||||
"EXTRA_BAZEL_ARGS",
|
||||
# Spack's logs don't handle colored output well
|
||||
"--color=no --host_javabase=@local_jdk//:jdk"
|
||||
# Enable verbose output for failures
|
||||
" --verbose_failures --jobs={0}".format(make_jobs),
|
||||
# .WARNING: Option 'host_javabase' is deprecated
|
||||
# Use local java installation
|
||||
args = "--color=no --define=ABSOLUTE_JAVABASE={0} --verbose_failures --jobs={1}".format(
|
||||
self.spec["java"].prefix, make_jobs
|
||||
)
|
||||
|
||||
resource_stages = self.stage[1:]
|
||||
for _resource in resource_stages:
|
||||
try:
|
||||
resource_name = _resource.resource.name
|
||||
if self.spec.satisfies(self.resource_dictionary[resource_name]["when"]):
|
||||
archive_path = _resource.source_path
|
||||
args += " --distdir={0}".format(archive_path)
|
||||
except AttributeError:
|
||||
continue
|
||||
|
||||
env.set("EXTRA_BAZEL_ARGS", args)
|
||||
|
||||
@run_before("install")
|
||||
def bootstrap(self):
|
||||
bash = which("bash")
|
||||
|
||||
13
var/spack/repos/builtin/packages/bdsim/c++-standard.patch
Normal file
13
var/spack/repos/builtin/packages/bdsim/c++-standard.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4750d9a..7b10b57 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -5,7 +5,7 @@ if (CMAKE_VERSION VERSION_LESS 3.9.0)
|
||||
cmake_policy(SET CMP0042 OLD)
|
||||
endif()
|
||||
|
||||
-set(CMAKE_CXX_STANDARD 11)
|
||||
+set(CMAKE_CXX_STANDARD 11 CACHE STRING "")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
include(GenerateExportHeader)
|
||||
@@ -22,7 +22,9 @@ class Bdsim(CMakePackage):
|
||||
|
||||
license("GPL-3.0-or-later")
|
||||
|
||||
version("develop", branch="develop")
|
||||
version("master", branch="master")
|
||||
version("1.7.6", sha256="92f53aa0a9fbd3cafd218f9e58ae4d1e7115733e641191c1658243fefb436600")
|
||||
version("1.7.0", sha256="713ce3c9d94f340ca774ce1803e0c4f992b904dbc28ce4129713abe883e98683")
|
||||
version("1.6.0", sha256="e3241d2d097cb4e22249e315c1474da9b3657b9c6893232d9f9e543a5323f717")
|
||||
|
||||
depends_on("cmake")
|
||||
@@ -32,3 +34,10 @@ class Bdsim(CMakePackage):
|
||||
depends_on("clhep")
|
||||
depends_on("flex")
|
||||
depends_on("bison")
|
||||
|
||||
patch("c++-standard.patch", when="@:1.7.6")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
args.append(f"-DCMAKE_CXX_STANDARD={self.spec['root'].variants['cxxstd'].value}")
|
||||
return args
|
||||
|
||||
@@ -50,15 +50,15 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
|
||||
version("3.0.4", sha256="b67fd2daae7a64b5ba862c66c07c1addb9e6b1b05c5f2049392cfd8a2172952e")
|
||||
version("2.7", sha256="19bbe7374fd602f7a6654c131c21a15aebdc06cc89493e8ff250cb7f9ed0a831")
|
||||
|
||||
variant("color", default=False, description="Enable experimental colored output", when="@3.4:")
|
||||
|
||||
# https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00008.html
|
||||
patch("parallel.patch", when="@3.4.2")
|
||||
|
||||
provides("yacc")
|
||||
|
||||
depends_on("gettext", when="@3.4:")
|
||||
depends_on("diffutils", type="build")
|
||||
depends_on("m4", type=("build", "run"))
|
||||
depends_on("perl", type="build")
|
||||
depends_on("gettext", when="+color")
|
||||
depends_on("m4@1.4.6:", type=("build", "run"))
|
||||
|
||||
patch("pgi.patch", when="@3.0.4")
|
||||
# The NVIDIA compilers do not currently support some GNU builtins.
|
||||
|
||||
@@ -26,6 +26,8 @@ class Btop(MakefilePackage, CMakePackage):
|
||||
|
||||
variant("gpu", default=False, description="Enable GPU support", when="build_system=cmake")
|
||||
|
||||
depends_on("cmake@3.24:", type="build", when="@1.3.0: build_system=cmake")
|
||||
|
||||
# Fix linking GPU support, by adding an explicit "target_link_libraries" to ${CMAKE_DL_LIBS}
|
||||
patch("link-dl.patch", when="+gpu")
|
||||
|
||||
|
||||
@@ -69,6 +69,7 @@ def cmake_args(self):
|
||||
self.define("BUILD_TESTS", self.run_tests),
|
||||
self.define("BUILD_BENCHMARKS", self.run_tests),
|
||||
self.define("BUILD_EXAMPLES", self.run_tests),
|
||||
self.define("BUILD_FUZZERS", self.run_tests),
|
||||
]
|
||||
|
||||
return args
|
||||
|
||||
@@ -58,7 +58,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("blt", type="build")
|
||||
depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0:")
|
||||
|
||||
patch("gcc-13-missing-header.patch", when="@:2022.10 %gcc@13:")
|
||||
patch("libstdc++-13-missing-header.patch", when="@:2022.10")
|
||||
|
||||
conflicts("^blt@:0.3.6", when="+rocm")
|
||||
|
||||
|
||||
@@ -75,15 +75,14 @@ def cmake_args(self):
|
||||
"CMAKE_CXX_COMPILER", "{0}/bin/clang++".format(spec["llvm-amdgpu"].prefix)
|
||||
),
|
||||
self.define("CMAKE_C_COMPILER", "{0}/bin/clang".format(spec["llvm-amdgpu"].prefix)),
|
||||
self.define("HIP_PATH", spec["hip"].prefix),
|
||||
self.define("HIP_ROOT_DIR", "{0}".format(spec["hip"].prefix)),
|
||||
self.define("CMAKE_CXX_FLAGS", "-O3"),
|
||||
self.define("CMAKE_BUILD_TYPE", "Release"),
|
||||
]
|
||||
if "auto" not in self.spec.variants["amdgpu_target"]:
|
||||
args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target"))
|
||||
args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target"))
|
||||
if self.spec.satisfies("@5.6.0:"):
|
||||
args.append(self.define("INSTANCES_ONLY", "ON"))
|
||||
if self.spec.satisfies("@:5.7"):
|
||||
args.append(self.define("CMAKE_CXX_FLAGS", "-O3"))
|
||||
return args
|
||||
|
||||
def build(self, spec, prefix):
|
||||
|
||||
@@ -26,6 +26,7 @@ class Dd4hep(CMakePackage):
|
||||
license("LGPL-3.0-or-later")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.28", sha256="b28d671eda0154073873a044a384486e66f1f200065deca99537aa84f07328ad")
|
||||
version("1.27.2", sha256="09d8acd743d010274562b856d39e2a88aeaf89cf287a4148f52223b0cd960ab2")
|
||||
version("1.27.1", sha256="e66ae726c0a9a55e5603024a7f8a48ffbc5613ea36e5f892e9a90d87833f92e0")
|
||||
version("1.27", sha256="51fbd0f91f2511261d9b01e4b3528c658bea1ea1b5d67b25b6812615e782a902")
|
||||
|
||||
@@ -45,23 +45,13 @@ class Delphes(CMakePackage):
|
||||
|
||||
variant("pythia8", default=True, description="build with pythia8")
|
||||
|
||||
variant(
|
||||
"cxxstd",
|
||||
default="17",
|
||||
values=("14", "17"),
|
||||
multi=False,
|
||||
description="Use the specified C++ standard when building.",
|
||||
)
|
||||
|
||||
depends_on("cmake", type="build")
|
||||
depends_on("root cxxstd=14", when="cxxstd=14")
|
||||
depends_on("root cxxstd=17", when="cxxstd=17")
|
||||
depends_on("root")
|
||||
depends_on("pythia8", when="+pythia8")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
# C++ Standard
|
||||
args.append("-DCMAKE_CXX_STANDARD=%s" % self.spec.variants["cxxstd"].value)
|
||||
args.append(f"-DCMAKE_CXX_STANDARD={self.spec['root'].variants['cxxstd'].value}")
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
|
||||
@@ -23,6 +23,7 @@ class DoubleBatchedFftLibrary(CMakePackage):
|
||||
|
||||
version("main", branch="main")
|
||||
version("develop", branch="develop")
|
||||
version("0.5.0", sha256="cbd2ecf039cc40830e57a8af8295abf2083ce3b1a333279a8c17762f41131fff")
|
||||
version("0.4.0", sha256="f3518012b632c92c2a933d70a040d6b0eee2d631ab6b1881a192a8d1624f242d")
|
||||
version("0.3.6", sha256="ff163251d77d3c686563141e871c702bf4997c0302d53616add55d6cf9b02d28")
|
||||
|
||||
|
||||
@@ -10,9 +10,18 @@ class Eigenexa(AutotoolsPackage):
|
||||
"""EigenExa is a high-performance eigenvalue solver."""
|
||||
|
||||
homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/"
|
||||
url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz"
|
||||
|
||||
version("2.6", sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95")
|
||||
version("2.12", sha256="2a33999b09d4434a5ce2fbd18cabbfee1cff0b2a12df7ded1f67127157b08f86")
|
||||
version("2.11", sha256="87dee8ac13f410a007e82df2688fa7f143883229dac729fd20836f4a28fac43d")
|
||||
version("2.10", sha256="5b1806e132b191d23680b34fbc286d676ba20f58ee754122087a3ec3cacb8fa3")
|
||||
version("2.9", sha256="8788922035bf67abf1a7aecf8e30dd7564de387fda4ecd11c6b4cf9259d25990")
|
||||
version("2.8", sha256="3ee846d4db10336d393738eadab2f1c941dfc8fb501f2a4baf0823f0ff938f56")
|
||||
version("2.7", sha256="490f3d0217a8c101e66e785229baaba5b4d674508bc9a5aca6cc5fa074f3a8aa")
|
||||
version(
|
||||
"2.6",
|
||||
sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95",
|
||||
url="https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz",
|
||||
)
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
@@ -23,11 +32,16 @@ class Eigenexa(AutotoolsPackage):
|
||||
depends_on("scalapack")
|
||||
|
||||
patch("fj_compiler.patch", when="%fj")
|
||||
patch("gcc_compiler.patch", when="%gcc")
|
||||
patch("gcc_compiler.patch", when="@:2.6.99 %gcc")
|
||||
|
||||
parallel = False
|
||||
force_autoreconf = True
|
||||
|
||||
def url_for_version(self, version):
|
||||
return "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-{0}.{1}".format(
|
||||
version, "tar.gz" if version >= Version("2.7") else ".tgz"
|
||||
)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("FC", self.spec["mpi"].mpifc, force=True)
|
||||
env.set("F77", self.spec["mpi"].mpif77, force=True)
|
||||
@@ -47,6 +61,13 @@ def setup_build_environment(self, env):
|
||||
),
|
||||
)
|
||||
|
||||
if self.spec.satisfies("%gcc@10:"):
|
||||
fflags = "-fallow-argument-mismatch"
|
||||
if self.spec.satisfies("@:2.8"):
|
||||
fflags += " -fallow-invalid-boz"
|
||||
env.set("FCFLAGS", fflags)
|
||||
env.set("FFLAGS", fflags)
|
||||
|
||||
@run_after("install")
|
||||
def cache_test_sources(self):
|
||||
"""Save off benchmark files for stand-alone tests."""
|
||||
|
||||
@@ -66,6 +66,10 @@ class Fdb(CMakePackage):
|
||||
when="@5.7.1:5.7.10+tools",
|
||||
)
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
return find_libraries("libfdb5", root=self.prefix, shared=True, recursive=True)
|
||||
|
||||
def cmake_args(self):
|
||||
enable_build_tools = "+tools" in self.spec
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("legion+shared", when="backend=legion @:1")
|
||||
depends_on("legion+hdf5", when="backend=legion +hdf5 @:1")
|
||||
depends_on("legion build_type=Debug", when="backend=legion +debug_backend")
|
||||
depends_on("legion@cr", when="backend=legion @:1")
|
||||
depends_on("legion@master", when="backend=legion @:1")
|
||||
depends_on("hpx@1.4.1 cxxstd=17 malloc=system max_cpu_count=128", when="backend=hpx @:1")
|
||||
depends_on("hpx build_type=Debug", when="backend=hpx +debug_backend")
|
||||
depends_on("googletest@1.8.1+gmock", when="@:1")
|
||||
@@ -113,7 +113,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda @2.0:")
|
||||
depends_on("kokkos +rocm", when="+kokkos +rocm @2.0:")
|
||||
depends_on("kokkos +openmp", when="+kokkos +openmp @2.0:")
|
||||
depends_on("legion@cr", when="backend=legion @2.0:")
|
||||
depends_on("legion@master", when="backend=legion @2.0:")
|
||||
depends_on("legion+shared", when="backend=legion +shared @2.0:")
|
||||
depends_on("legion+hdf5", when="backend=legion +hdf5 @2.0:")
|
||||
depends_on("legion+kokkos", when="backend=legion +kokkos @2.0:")
|
||||
|
||||
@@ -26,6 +26,7 @@ class Garfieldpp(CMakePackage):
|
||||
variant("examples", default=False, description="Build garfield examples")
|
||||
|
||||
version("master", branch="master")
|
||||
version("5.0", sha256="453e83c2829f57046c471a691e7cd9630650a3c6a696f3be6e86bf2d5159e7b3")
|
||||
version("4.0", sha256="82bc1f0395213bd30a7cd854426e6757d0b4155e99ffd4405355c9648fa5ada3")
|
||||
version("3.0", sha256="c1282427a784658bc38b71c8e8cfc8c9f5202b185f0854d85f7c9c5a747c5406")
|
||||
|
||||
|
||||
@@ -47,7 +47,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
|
||||
variant("sycl", default=False, description="Enable SYCL backend")
|
||||
variant("develtools", default=False, description="Compile with develtools enabled")
|
||||
variant("hwloc", default=False, description="Enable HWLOC support")
|
||||
variant("mpi", default=False, description="Enable MPI support")
|
||||
variant("sde", default=False, description="Enable PAPI SDE support", when="@1.7.0:")
|
||||
variant("mpi", default=False, description="Enable MPI support", when="@1.5.0:")
|
||||
|
||||
depends_on("cmake@3.9:", type="build", when="@:1.3.0")
|
||||
depends_on("cmake@3.13:", type="build", when="@1.4.0:1.6.0")
|
||||
@@ -68,6 +69,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
|
||||
# setup for rocthrust, this needs to also be added here.
|
||||
depends_on("rocprim", when="+rocm")
|
||||
depends_on("hwloc@2.1:", when="+hwloc")
|
||||
# TODO: replace with the next PAPI version when available (>7.0.1.0)
|
||||
depends_on("papi@master+sde", when="+sde")
|
||||
|
||||
depends_on("googletest", type="test")
|
||||
depends_on("numactl", type="test", when="+hwloc")
|
||||
@@ -78,7 +81,6 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
conflicts("%gcc@:5.2.9")
|
||||
conflicts("+rocm", when="@:1.1.1")
|
||||
conflicts("+mpi", when="@:1.4.0")
|
||||
|
||||
# ROCm 4.1.0 breaks platform settings which breaks Ginkgo's HIP support.
|
||||
conflicts("^hip@4.1.0:", when="@:1.3.0")
|
||||
@@ -151,6 +153,7 @@ def cmake_args(self):
|
||||
from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||
from_variant("GINKGO_JACOBI_FULL_OPTIMIZATIONS", "full_optimizations"),
|
||||
from_variant("GINKGO_BUILD_HWLOC", "hwloc"),
|
||||
from_variant("GINKGO_WITH_PAPI_SDE", "sde"),
|
||||
from_variant("GINKGO_DEVEL_TOOLS", "develtools"),
|
||||
# As we are not exposing benchmarks, examples, tests nor doc
|
||||
# as part of the installation, disable building them altogether.
|
||||
|
||||
28
var/spack/repos/builtin/packages/gpuscout/package.py
Normal file
28
var/spack/repos/builtin/packages/gpuscout/package.py
Normal file
@@ -0,0 +1,28 @@
|
||||
# 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 Gpuscout(CMakePackage, CudaPackage):
|
||||
"""GPUscout: A tool for discovering data movement-related bottlenecks on NVidia GPUs."""
|
||||
|
||||
homepage = "https://github.com/caps-tum/GPUscout"
|
||||
url = "https://github.com/caps-tum/GPUscout/archive/refs/tags/v0.2.1.tar.gz"
|
||||
git = "https://github.com/caps-tum/GPUscout.git"
|
||||
|
||||
maintainers("stepanvanecek")
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version(
|
||||
"0.2.1",
|
||||
sha256="78db030c443b971358905460c53c514134c18ebca9cafc26bfcfa297ff17683b",
|
||||
extension="tar.gz",
|
||||
)
|
||||
version("master", branch="master")
|
||||
|
||||
depends_on("cmake@3.27:", type="build")
|
||||
depends_on("cuda@12:")
|
||||
@@ -38,8 +38,8 @@ class Imagemagick(AutotoolsPackage):
|
||||
depends_on("ghostscript-fonts", when="+ghostscript")
|
||||
|
||||
# TODO: are these actually required?
|
||||
depends_on("libsm")
|
||||
depends_on("libtool")
|
||||
depends_on("libsm", when="platform=linux")
|
||||
depends_on("libtool", when="platform=linux")
|
||||
|
||||
def configure_args(self):
|
||||
args = []
|
||||
|
||||
@@ -27,6 +27,8 @@ class Legion(CMakePackage, ROCmPackage):
|
||||
|
||||
maintainers("pmccormick", "streichler", "elliottslaughter")
|
||||
tags = ["e4s"]
|
||||
version("23.12.0", tag="legion-23.12.0", commit="8fea67ee694a5d9fb27232a7976af189d6c98456")
|
||||
version("23.09.0", tag="legion-23.09.0", commit="7304dfcf9b69005dd3e65e9ef7d5bd49122f9b49")
|
||||
version("23.06.0", tag="legion-23.06.0", commit="7b5ff2fb9974511c28aec8d97b942f26105b5f6d")
|
||||
version("23.03.0", tag="legion-23.03.0", commit="12f6051c9d75229d00ac0b31d6be1ff2014f7e6a")
|
||||
version("22.12.0", tag="legion-22.12.0", commit="9ed6f4d6b579c4f17e0298462e89548a4f0ed6e5")
|
||||
@@ -39,7 +41,6 @@ class Legion(CMakePackage, ROCmPackage):
|
||||
version("21.03.0", tag="legion-21.03.0", commit="0cf9ddd60c227c219c8973ed0580ddc5887c9fb2")
|
||||
version("stable", branch="stable")
|
||||
version("master", branch="master")
|
||||
version("cr", branch="control_replication")
|
||||
|
||||
depends_on("cmake@3.16:", type="build")
|
||||
# TODO: Need to spec version of MPI v3 for use of the low-level MPI transport
|
||||
@@ -74,7 +75,7 @@ class Legion(CMakePackage, ROCmPackage):
|
||||
|
||||
# https://github.com/spack/spack/issues/37232#issuecomment-1553376552
|
||||
patch("hip-offload-arch.patch", when="@23.03.0 +rocm")
|
||||
patch("update-hip-path-legion-23.06.0.patch", when="@23.06.0 ^hip@6.0 +rocm")
|
||||
patch("update-hip-path-legion-23.06.0.patch", when="@23.06.0:23.12.0 ^hip@6.0 +rocm")
|
||||
|
||||
def patch(self):
|
||||
if "network=gasnet conduit=ofi-slingshot11 ^cray-mpich+wrappers" in self.spec:
|
||||
|
||||
@@ -43,10 +43,6 @@ class Libevent(AutotoolsPackage):
|
||||
depends_on("openssl@:1.0", when="@:2.0+openssl")
|
||||
depends_on("openssl", when="+openssl")
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("libtool", type="build")
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version >= Version("2.0.22"):
|
||||
url = "https://github.com/libevent/libevent/releases/download/release-{0}-stable/libevent-{0}-stable.tar.gz"
|
||||
@@ -60,9 +56,6 @@ def libs(self):
|
||||
libs = find_libraries("libevent", root=self.prefix, shared=True, recursive=True)
|
||||
return LibraryList(libs)
|
||||
|
||||
def autoreconf(self, spec, prefix):
|
||||
autoreconf("--force", "--install", "--symlink")
|
||||
|
||||
def configure_args(self):
|
||||
spec = self.spec
|
||||
configure_args = []
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import os
|
||||
|
||||
from spack.build_systems.generic import GenericBuilder
|
||||
from spack.build_systems import cmake, generic
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -22,6 +22,16 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
|
||||
version("1.3.4", sha256="fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e")
|
||||
version("1.3.2", sha256="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692")
|
||||
|
||||
variant("shared", default=True, description="Build shared library", when="build_system=cmake")
|
||||
variant(
|
||||
"pic",
|
||||
default=True,
|
||||
description="Produce position-independent code (for shared libs)",
|
||||
when="build_system=cmake",
|
||||
)
|
||||
|
||||
requires("+pic", when="+shared")
|
||||
|
||||
# Backport a patch that fixes an unsigned typedef problem on macOS:
|
||||
# https://github.com/xiph/ogg/pull/64
|
||||
patch(
|
||||
@@ -37,7 +47,17 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
|
||||
)
|
||||
|
||||
|
||||
class GenericBuilder(GenericBuilder):
|
||||
class CMakeBuilder(cmake.CMakeBuilder):
|
||||
def cmake_args(self):
|
||||
base_cmake_args = [
|
||||
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
|
||||
]
|
||||
|
||||
return base_cmake_args
|
||||
|
||||
|
||||
class GenericBuilder(generic.GenericBuilder):
|
||||
phases = ["build", "install"]
|
||||
|
||||
def is_64bit(self):
|
||||
|
||||
@@ -23,6 +23,9 @@ class LinaroForge(Package):
|
||||
maintainers("kenche-linaro")
|
||||
|
||||
if platform.machine() in ["aarch64", "arm64"]:
|
||||
version(
|
||||
"23.1.2", sha256="8c01f4768a8f784f0bfa78c82dbd39e5077bbc6880b6f3c3704019eecfca5b3a"
|
||||
)
|
||||
version(
|
||||
"23.1.1", sha256="6e95a9c9f894caad073e58590733c4ce4489aec0d8db6553050e71a59e41e6f8"
|
||||
)
|
||||
@@ -47,6 +50,9 @@ class LinaroForge(Package):
|
||||
"21.1.3", sha256="4a4ff7372aad5a31fc9e18b7b6c493691ab37d8d44a3158584e62d1ab82b0eeb"
|
||||
)
|
||||
elif platform.machine() == "ppc64le":
|
||||
version(
|
||||
"23.1.2", sha256="5c588a6b7391d75cced4016936d0c5a00023431269339432738ff33b860487b3"
|
||||
)
|
||||
version(
|
||||
"23.1.1", sha256="9d4dfa440ef1cc9c6a7cb4f7eeec49fc77f0b6b75864fbe018a41783ac5fc5df"
|
||||
)
|
||||
@@ -74,6 +80,9 @@ class LinaroForge(Package):
|
||||
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
||||
)
|
||||
elif platform.machine() == "x86_64":
|
||||
version(
|
||||
"23.1.2", sha256="675d2d8e4510afefa0405eecb46ac8bf440ff35a5a40d5507dc12d29678a22bf"
|
||||
)
|
||||
version(
|
||||
"23.1.1", sha256="6dcd39fc582088eb4b13233ae1e9b38e12bfa07babf77d89b869473a3c2b66e6"
|
||||
)
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 710c4a97891a17b7c8a6ecde01c9ab747becc69b Mon Sep 17 00:00:00 2001
|
||||
From: Renjith Ravindran <Renjith.RavindranKannath@amd.com>
|
||||
Date: Tue, 13 Feb 2024 06:47:02 +0000
|
||||
Subject: [PATCH] adding roctracer-dev include and library path
|
||||
|
||||
---
|
||||
src/CMakeLists.txt | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 7866ad1..8c83b3b 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -714,6 +714,8 @@ set(MIOPEN_CK_LINK_FLAGS composable_kernel::device_operations hip::host)
|
||||
endif()
|
||||
|
||||
target_include_directories(MIOpen SYSTEM PUBLIC $<BUILD_INTERFACE:${HALF_INCLUDE_DIR}>)
|
||||
+target_include_directories(MIOpen SYSTEM PUBLIC "${NLOHMANN_JSON_INCLUDE}")
|
||||
+target_include_directories(MIOpen SYSTEM PUBLIC "${ROCTRACER_INCLUDE_DIR}")
|
||||
target_include_directories(MIOpen SYSTEM PRIVATE ${BZIP2_INCLUDE_DIR})
|
||||
# Workaround : change in rocm-cmake was causing linking error so had to add ${CMAKE_DL_LIBS}
|
||||
# We can remove ${CMAKE_DL_LIBS} once root cause is identified.
|
||||
@@ -855,7 +857,7 @@ if(NOT WIN32 AND NOT APPLE)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
- target_link_libraries(MIOpen PRIVATE roctx64)
|
||||
+ target_link_libraries(MIOpen PRIVATE "${ROCTRACER_LIB_DIR}/libroctx64.so")
|
||||
endif()
|
||||
|
||||
############################################################
|
||||
--
|
||||
2.39.3
|
||||
|
||||
@@ -53,11 +53,12 @@ class MiopenHip(CMakePackage):
|
||||
depends_on("half")
|
||||
depends_on("zlib-api")
|
||||
|
||||
patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.4.0:")
|
||||
patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.4.0:5.7")
|
||||
patch("0002-add-include-dir-miopen-hip-6.0.0.patch", when="@6.0")
|
||||
patch(
|
||||
"https://github.com/ROCm/MIOpen/pull/2276/commits/f60aa1ff89f8fb596b4a6a4c70aa7d557803db87.patch?full_index=1",
|
||||
sha256="c777d9f4cd2bbfec632b38620c0f70bb0cce8da1",
|
||||
when="@5.7:",
|
||||
when="@5.7",
|
||||
)
|
||||
|
||||
for ver in [
|
||||
@@ -93,6 +94,8 @@ class MiopenHip(CMakePackage):
|
||||
for ver in ["5.4.0", "5.4.3", "5.5.0"]:
|
||||
depends_on("nlohmann-json", type="link")
|
||||
depends_on(f"rocmlir@{ver}", when=f"@{ver}")
|
||||
for ver in ["6.0.0", "6.0.2"]:
|
||||
depends_on("roctracer-dev@" + ver, when="@" + ver)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
lib_dir = self.spec["zlib-api"].libs.directories[0]
|
||||
@@ -147,4 +150,9 @@ def cmake_args(self):
|
||||
args.append(
|
||||
"-DNLOHMANN_JSON_INCLUDE={0}".format(self.spec["nlohmann-json"].prefix.include)
|
||||
)
|
||||
if self.spec.satisfies("@6.0.0:"):
|
||||
args.append(
|
||||
"-DROCTRACER_INCLUDE_DIR={0}".format(self.spec["roctracer-dev"].prefix.include)
|
||||
)
|
||||
args.append("-DROCTRACER_LIB_DIR={0}".format(self.spec["roctracer-dev"].prefix.lib))
|
||||
return args
|
||||
|
||||
@@ -203,7 +203,7 @@ def _fix_dtrace_shebang(self, env):
|
||||
copy(dtrace, dtrace_copy)
|
||||
filter_file(
|
||||
"^#!/usr/bin/python",
|
||||
"#!/usr/bin/env {0}".format(os.path.basename(self.spec["python"].command)),
|
||||
"#!/usr/bin/env {0}".format(os.path.basename(str(self.spec["python"].command))),
|
||||
dtrace_copy,
|
||||
)
|
||||
# To have our own copy of dtrace in PATH, we need to
|
||||
|
||||
@@ -17,6 +17,7 @@ class Nccl(MakefilePackage, CudaPackage):
|
||||
maintainers("adamjstewart")
|
||||
libraries = ["libnccl.so"]
|
||||
|
||||
version("2.20.3-1", sha256="19456bd63ca7d23a8319cbbdbaaf6c25949dd51161a9f8809f6b7453282983dd")
|
||||
version("2.19.3-1", sha256="1c5474553afedb88e878c772f13d6f90b9226b3f2971dfa6f873adb9443100c2")
|
||||
version("2.18.5-1", sha256="16ac98f3e926c024ce48e10ab220e19ce734adc48c423cfd55ad6f509bd1179f")
|
||||
version("2.18.3-1", sha256="6477d83c9edbb34a0ebce6d751a1b32962bc6415d75d04972b676c6894ceaef9")
|
||||
|
||||
32
var/spack/repos/builtin/packages/ncvis/package.py
Normal file
32
var/spack/repos/builtin/packages/ncvis/package.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 2013-2023 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 Ncvis(CMakePackage):
|
||||
"""A NetCDF file viewer. ncvis is inspired by David Pierce's
|
||||
most excellent ncview utility."""
|
||||
|
||||
homepage = "https://github.com/SEATStandards/ncvis"
|
||||
url = "https://github.com/SEATStandards/ncvis/archive/refs/tags/2022.08.28.tar.gz"
|
||||
git = "https://github.com/SEATStandards/ncvis.git"
|
||||
|
||||
maintainers("vanderwb")
|
||||
|
||||
version(
|
||||
"2022.08.28", sha256="a522926739b2a05ef0b436fe67a2014557f9e5fecf3b7d7700964e9006a4bf3e"
|
||||
)
|
||||
|
||||
depends_on("cmake", type="build")
|
||||
depends_on("netcdf-c", type="link")
|
||||
depends_on("wxwidgets+opengl", type="link")
|
||||
|
||||
@run_after("install")
|
||||
def install_resources(self):
|
||||
install_tree("resources", self.prefix.resources)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set("NCVIS_RESOURCE_DIR", self.prefix.resources)
|
||||
@@ -351,6 +351,24 @@ def cmake_args(self):
|
||||
base_cmake_args.append(self.define("NC_FIND_SHARED_LIBS", False))
|
||||
return base_cmake_args
|
||||
|
||||
@run_after("install")
|
||||
def patch_hdf5_pkgconfigcmake(self):
|
||||
"""
|
||||
Incorrect hdf5 library names are put in the package config and config.cmake files
|
||||
due to incorrectly using hdf5 target names
|
||||
https://github.com/spack/spack/pull/42878
|
||||
"""
|
||||
|
||||
pkgconfig_file = find(self.prefix, "netcdf.pc", recursive=True)
|
||||
cmakeconfig_file = find(self.prefix, "netCDFTargets.cmake", recursive=True)
|
||||
ncconfig_file = find(self.prefix, "nc-config", recursive=True)
|
||||
settingsconfig_file = find(self.prefix, "libnetcdf.settings", recursive=True)
|
||||
|
||||
files = pkgconfig_file + cmakeconfig_file + ncconfig_file + settingsconfig_file
|
||||
|
||||
filter_file("hdf5-shared", "hdf5", *files, ignore_absent=True)
|
||||
filter_file("hdf5_hl-shared", "hdf5_hl", *files, ignore_absent=True)
|
||||
|
||||
|
||||
class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
|
||||
@property
|
||||
|
||||
@@ -85,6 +85,17 @@ class Openexr(CMakePackage, AutotoolsPackage):
|
||||
with when("build_system=cmake"):
|
||||
depends_on("cmake@3.12:", type="build")
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
# Override because libs have different case than Spack package name
|
||||
name = "libOpenEXR*"
|
||||
# We expect libraries to be in either lib64 or lib directory
|
||||
for root in (self.prefix.lib64, self.prefix.lib):
|
||||
liblist = find_libraries(name, root=root, shared=True, recursive=False)
|
||||
if liblist:
|
||||
break
|
||||
return liblist
|
||||
|
||||
|
||||
class CMakeBuilder(CMakeBuilder):
|
||||
def cmake_args(self):
|
||||
|
||||
@@ -689,11 +689,13 @@ def configure(self, spec, prefix):
|
||||
"CGAL": [
|
||||
("BOOST_ARCH_PATH", spec["boost"].prefix),
|
||||
("CGAL_ARCH_PATH", spec["cgal"].prefix),
|
||||
("MPFR_ARCH_PATH", spec["mpfr"].prefix),
|
||||
(
|
||||
"LD_LIBRARY_PATH",
|
||||
foam_add_lib(
|
||||
pkglib(spec["boost"], "${BOOST_ARCH_PATH}"),
|
||||
pkglib(spec["cgal"], "${CGAL_ARCH_PATH}"),
|
||||
pkglib(spec["mpfr"], "${MPFR_ARCH_PATH}"),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -587,7 +587,7 @@ class Openmpi(AutotoolsPackage, CudaPackage):
|
||||
with when("~internal-pmix"):
|
||||
depends_on("pmix@1", when="@2")
|
||||
depends_on("pmix@3.2:", when="@4:")
|
||||
depends_on("pmix@4.2:", when="@5:")
|
||||
depends_on("pmix@4.2.4:", when="@5:")
|
||||
|
||||
# pmix@4.2.3 contains a breaking change, compat fixed in openmpi@4.1.6
|
||||
# See https://www.mail-archive.com/announce@lists.open-mpi.org//msg00158.html
|
||||
|
||||
@@ -31,7 +31,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
version("master", branch="master", submodules=True)
|
||||
version(
|
||||
"5.12.0-RC2", sha256="5f43b1affee928a807b373024aefc8947f444247f9f4c3965bd52a836b95566b"
|
||||
"5.12.0-RC3", sha256="6aaa46ff295126707294482e6ba24bd0ec0d68cf6bb5f56f145f8bcc53fc3f70"
|
||||
)
|
||||
version(
|
||||
"5.11.2",
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# 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 PerlApacheLogformatCompiler(PerlPackage):
|
||||
"""Compile a log format string to perl-code"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Apache::LogFormat::Compiler"
|
||||
url = (
|
||||
"https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz"
|
||||
)
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.36", sha256="94509503ee74ea820183d070c11630ee5bc0fd8c12cb74fae953ed62e4a1ac17")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-http-message", type=("build", "test"))
|
||||
depends_on("perl-module-build-tiny@0.035:", type=("build"))
|
||||
depends_on("perl-posix-strftime-compiler@0.30:", type=("build", "run", "test"))
|
||||
depends_on("perl-test-mocktime", type=("build", "test"))
|
||||
depends_on("perl-test-requires", type=("build", "test"))
|
||||
depends_on("perl-try-tiny@0.12:", type=("build", "test"))
|
||||
depends_on("perl-uri", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Apache::LogFormat::Compiler; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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 PerlCacheMemcached(PerlPackage):
|
||||
"""Client library for memcached (memory cache daemon)"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Cache::Memcached"
|
||||
url = "https://cpan.metacpan.org/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
version("1.30", sha256="31b3c51ec0eaaf03002e2cc8e3d7d5cbe61919cfdada61c008eb9853acac42a9")
|
||||
|
||||
depends_on("perl-string-crc32", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Cache::Memcached; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,25 @@
|
||||
# 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 PerlCanaryStability(PerlPackage):
|
||||
"""Canary to check perl compatibility for schmorp's modules"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Canary::Stability"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
version("2013", sha256="a5c91c62cf95fcb868f60eab5c832908f6905221013fea2bce3ff57046d7b6ea")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Canary::Stability; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,70 @@
|
||||
# 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 PerlCatalystRuntime(PerlPackage):
|
||||
"""The Catalyst Framework Runtime"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Catalyst::Test"
|
||||
url = "https://cpan.metacpan.org/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("5.90131", sha256="9d641efacf0f9935e6ecb98f5a3b476c961b1f819bd2f8f23a647d1d867e1849")
|
||||
|
||||
depends_on("perl@5.8.3:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-cgi-simple", type=("build", "run", "test"))
|
||||
depends_on("perl-cgi-struct", type=("build", "run", "test"))
|
||||
depends_on("perl-class-c3-adopt-next@0.07:", type=("build", "run", "test"))
|
||||
depends_on("perl-class-load@0.12:", type=("build", "run", "test"))
|
||||
depends_on("perl-data-dump", type=("build", "run", "test"))
|
||||
depends_on("perl-data-optlist", type=("build", "run", "test"))
|
||||
depends_on("perl-hash-multivalue", type=("build", "run", "test"))
|
||||
depends_on("perl-html-parser", type=("build", "run", "test"))
|
||||
depends_on("perl-http-body@1.22:", type=("build", "run", "test"))
|
||||
depends_on("perl-http-message", type=("build", "run", "test"))
|
||||
depends_on("perl-json-maybexs@1.000000:", type=("build", "run", "test"))
|
||||
depends_on("perl-libwww-perl@5.837:", type=("build", "run", "test"))
|
||||
depends_on("perl-module-pluggable@4.7:", type=("build", "run", "test"))
|
||||
depends_on("perl-moose@2.1400:", type=("build", "run", "test"))
|
||||
depends_on("perl-moosex-emulate-class-accessor-fast@0.00903:", type=("build", "run", "test"))
|
||||
depends_on("perl-moosex-getopt@0.48:", type=("build", "run", "test"))
|
||||
depends_on("perl-moosex-methodattributes", type=("build", "run", "test"))
|
||||
depends_on("perl-mro-compat", type=("build", "run", "test"))
|
||||
depends_on("perl-namespace-clean@0.23:", type=("build", "run", "test"))
|
||||
depends_on("perl-path-class@0.09:", type=("build", "run", "test"))
|
||||
depends_on("perl-perlio-utf8-strict", type=("build", "run", "test"))
|
||||
depends_on("perl-plack@0.9991:", type=("build", "run", "test"))
|
||||
depends_on(
|
||||
"perl-plack-middleware-fixmissingbodyinredirect@0.09:", type=("build", "run", "test")
|
||||
)
|
||||
depends_on("perl-plack-middleware-methodoverride@0.12:", type=("build", "run", "test"))
|
||||
depends_on("perl-plack-middleware-removeredundantbody@0.03:", type=("build", "run", "test"))
|
||||
depends_on("perl-plack-middleware-reverseproxy@0.04:", type=("build", "run", "test"))
|
||||
depends_on("perl-plack-test-externalserver", type=("build", "run", "test"))
|
||||
depends_on("perl-safe-isa", type=("build", "run", "test"))
|
||||
depends_on("perl-stream-buffered", type=("build", "run", "test"))
|
||||
depends_on("perl-string-rewriteprefix@0.004:", type=("build", "run", "test"))
|
||||
depends_on("perl-sub-exporter", type=("build", "run", "test"))
|
||||
depends_on("perl-task-weaken", type=("build", "run", "test"))
|
||||
depends_on("perl-test-fatal", type=("build", "test"))
|
||||
depends_on("perl-text-simpletable@0.03:", type=("build", "run", "test"))
|
||||
depends_on("perl-tree-simple@1.15:", type=("build", "run", "test"))
|
||||
depends_on("perl-tree-simple-visitorfactory", type=("build", "run", "test"))
|
||||
depends_on("perl-try-tiny@0.17:", type=("build", "run", "test"))
|
||||
depends_on("perl-uri@1.65:", type=("build", "run", "test"))
|
||||
depends_on("perl-uri-ws@0.03:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Catalyst::Test; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
30
var/spack/repos/builtin/packages/perl-cgi-simple/package.py
Normal file
30
var/spack/repos/builtin/packages/perl-cgi-simple/package.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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 PerlCgiSimple(PerlPackage):
|
||||
"""A Simple totally OO CGI interface that is CGI.pm compliant"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/CGI::Simple"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MA/MANWAR/CGI-Simple-1.281.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.281", sha256="4d58103fdfa5c8e1ed076b15d5cafb7001b2886cb3396f00564a881eb324e5a7")
|
||||
|
||||
depends_on("perl-test-exception", type=("build", "test"))
|
||||
depends_on("perl-test-nowarnings", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use CGI::Simple; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
29
var/spack/repos/builtin/packages/perl-cgi-struct/package.py
Normal file
29
var/spack/repos/builtin/packages/perl-cgi-struct/package.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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 PerlCgiStruct(PerlPackage):
|
||||
"""Build structures from CGI data"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/CGI::Struct"
|
||||
url = "https://cpan.metacpan.org/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("BSD")
|
||||
|
||||
version("1.21", sha256="d13d8da7fdcd6d906054e4760fc28a718aec91bd3cf067a58927fb7cb1c09d6c")
|
||||
|
||||
depends_on("perl-test-deep", type=("build", "link"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use CGI::Struct; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,32 @@
|
||||
# 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 PerlClassC3AdoptNext(PerlPackage):
|
||||
"""Make NEXT suck less"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Class::C3::Adopt::NEXT"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.14", sha256="85676225aadb76e8666a6abe2e0659d40eb4581ad6385b170eea4e1d6bf34bf7")
|
||||
|
||||
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.039:", type=("build"))
|
||||
depends_on("perl-mro-compat", type=("build", "run", "test"))
|
||||
depends_on("perl-test-exception@0.27:", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Class::C3::Adopt::NEXT; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,32 @@
|
||||
# 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 PerlCookieBaker(PerlPackage):
|
||||
"""Cookie string generator / parser"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Cookie::Baker"
|
||||
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.12.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.12", sha256="9b04df5d47dcd45ac4299626a10ec990fb40c94ee5a6300c3a88bdfb3575ec29")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.035:", type=("build"))
|
||||
depends_on("perl-test-time", type=("build", "test"))
|
||||
depends_on("perl-uri", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Cookie::Baker; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
29
var/spack/repos/builtin/packages/perl-data-dump/package.py
Normal file
29
var/spack/repos/builtin/packages/perl-data-dump/package.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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 PerlDataDump(PerlPackage):
|
||||
"""Pretty printing of data structures"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Data::Dump"
|
||||
url = "https://cpan.metacpan.org/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.25", sha256="a4aa6e0ddbf39d5ad49bddfe0f89d9da864e3bc00f627125d1bc580472f53fbd")
|
||||
|
||||
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Data::Dump; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,29 @@
|
||||
# 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 PerlDevelStacktraceAshtml(PerlPackage):
|
||||
"""Displays stack trace in HTML"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Devel::StackTrace::AsHTML"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.15", sha256="6283dbe2197e2f20009cc4b449997742169cdd951bfc44cbc6e62c2a962d3147")
|
||||
|
||||
depends_on("perl-devel-stacktrace", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Devel::StackTrace::AsHTML; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlFilesysNotifySimple(PerlPackage):
|
||||
"""Simple and dumb file system watcher"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Filesys::Notify::Simple"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.14", sha256="1fda712d4ba5e1868159ed35f6f8efbfae9d435d6376f5606d533bcb080555a4")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-test-sharedfork", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Filesys::Notify::Simple; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,31 @@
|
||||
# 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 PerlGetoptLongDescriptive(PerlPackage):
|
||||
"""Getopt::Long, but simpler and more powerful"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Getopt::Long::Descriptive"
|
||||
url = "https://cpan.metacpan.org/authors/id/H/HD/HDP/Getopt-Long-Descriptive-0.088.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.088", sha256="5008d3694280087e03280208637916ba968013c54bee863a3c3e1185368f9e65")
|
||||
|
||||
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-params-validate@0.97:", type=("build", "run", "test"))
|
||||
depends_on("perl-sub-exporter@0.972:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Getopt::Long::Descriptive; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,29 @@
|
||||
# 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 PerlHashMultivalue(PerlPackage):
|
||||
"""Store multiple values per key"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Hash::MultiValue"
|
||||
url = "https://cpan.metacpan.org/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.16", sha256="66181df7aa68e2786faf6895c88b18b95c800a8e4e6fb4c07fd176410a3c73f4")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Hash::MultiValue; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
30
var/spack/repos/builtin/packages/perl-http-body/package.py
Normal file
30
var/spack/repos/builtin/packages/perl-http-body/package.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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 PerlHttpBody(PerlPackage):
|
||||
"""HTTP Body Parser"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/HTTP::Body"
|
||||
url = "https://cpan.metacpan.org/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.22", sha256="fc0d2c585b3bd1532d92609965d589e0c87cd380e7cca42fb9ad0a1311227297")
|
||||
|
||||
depends_on("perl-http-message", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-test-deep", type=("build", "link"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use HTTP::Body; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,36 @@
|
||||
# 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 PerlHttpEntityParser(PerlPackage):
|
||||
"""PSGI compliant HTTP Entity Parser"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/HTTP::Entity::Parser"
|
||||
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.25", sha256="3a8cd0d8cba3d17cd8c04ee82d7341dfaa247dbdd94a49eb94b53f69e483ec3a")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-hash-multivalue", type=("build", "run", "test"))
|
||||
depends_on("perl-http-message@6:", type=("build", "test"))
|
||||
depends_on("perl-http-multipartparser", type=("build", "run", "test"))
|
||||
depends_on("perl-json-maybexs@1.003007:", type=("build", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.035:", type=("build"))
|
||||
depends_on("perl-stream-buffered", type=("build", "run", "test"))
|
||||
depends_on("perl-www-form-urlencoded@0.23:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use HTTP::Entity::Parser; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,32 @@
|
||||
# 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 PerlHttpHeadersFast(PerlPackage):
|
||||
"""Faster implementation of HTTP::Headers"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/HTTP::Headers::Fast"
|
||||
url = "https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.22", sha256="cc431db68496dd884db4bc0c0b7112c1f4a4f1dc68c4f5a3caa757a1e7481b48")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-http-date", type=("build", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.035:", type=("build"))
|
||||
depends_on("perl-test-requires", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use HTTP::Headers::Fast; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlHttpMultipartparser(PerlPackage):
|
||||
"""HTTP MultiPart Parser"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/HTTP::MultiPartParser"
|
||||
url = "https://cpan.metacpan.org/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.02", sha256="5eddda159f54d16f868e032440ac2b024e55aac48931871b62627f1a16d00b12")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-test-deep", type=("build", "link"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use HTTP::MultiPartParser; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
33
var/spack/repos/builtin/packages/perl-json-any/package.py
Normal file
33
var/spack/repos/builtin/packages/perl-json-any/package.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# 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 PerlJsonAny(PerlPackage):
|
||||
"""(DEPRECATED) Wrapper Class for the various JSON classes"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/JSON::Any"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.40", sha256="083256255a48094fd9ac1239e0fea8a10a2383a9cd1ef4b1c7264ede1b4400ab")
|
||||
|
||||
depends_on("perl@5.8.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-test-fatal", type=("build", "test"))
|
||||
depends_on("perl-test-needs", type=("build", "test"))
|
||||
depends_on("perl-test-warnings@0.009:", type=("build", "test"))
|
||||
depends_on("perl-test-without-module", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use JSON::Any; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
32
var/spack/repos/builtin/packages/perl-json-xs/package.py
Normal file
32
var/spack/repos/builtin/packages/perl-json-xs/package.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# 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 PerlJsonXs(PerlPackage):
|
||||
"""JSON serialising/deserialising, done correctly and fast"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/JSON::XS"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
version("4.03", sha256="515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068")
|
||||
|
||||
depends_on("perl-canary-stability", type=("build"))
|
||||
depends_on("perl-common-sense", type=("build", "run", "test"))
|
||||
depends_on("perl-types-serialiser", type=("build", "run", "test"))
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("PERL_CANARY_STABILITY_NOPROMPT", "1")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use JSON::XS; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
29
var/spack/repos/builtin/packages/perl-mojolicious/package.py
Normal file
29
var/spack/repos/builtin/packages/perl-mojolicious/package.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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 PerlMojolicious(PerlPackage):
|
||||
"""Real-time web framework"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Mojolicious"
|
||||
url = "https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojolicious-9.35.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-2.0")
|
||||
|
||||
version("9.35", sha256="6a4a446ee07fca7c6db72f5d817540d6833009cb8de7cce4c6fb24a15ee7d46b")
|
||||
|
||||
depends_on("perl@5.16.0:", type=("build", "link", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Mojolicious; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,31 @@
|
||||
# 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 PerlMoosexEmulateClassAccessorFast(PerlPackage):
|
||||
"""Emulate Class::Accessor::Fast behavior using Moose attributes"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/MooseX::Emulate::Class::Accessor::Fast"
|
||||
url = "https://cpan.metacpan.org/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.009032", sha256="82eeb7ef1f0d25418ae406ea26912b241428d4b2ab9510d5e9deb3f72c187994")
|
||||
|
||||
depends_on("perl-moose@0.84:", type=("build", "run", "test"))
|
||||
depends_on("perl-namespace-clean", type=("build", "run", "test"))
|
||||
depends_on("perl-test-exception", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use MooseX::Emulate::Class::Accessor::Fast; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,42 @@
|
||||
# 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 PerlMoosexGetopt(PerlPackage):
|
||||
"""A Moose role for processing command line options"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/MooseX::Getopt"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-Getopt-0.76.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.76", sha256="ff8731bd2b1df83347dfb6afe9ca15c04d2ecd8b288e5793d095eaf956b6b028")
|
||||
|
||||
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-getopt-long-descriptive@0.088:", type=("build", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.034:", type=("build"))
|
||||
depends_on("perl-module-runtime", type=("build", "test"))
|
||||
depends_on("perl-moose", type=("build", "run", "test"))
|
||||
depends_on("perl-moosex-role-parameterized@1.01:", type=("build", "run", "test"))
|
||||
depends_on("perl-namespace-autoclean", type=("build", "run", "test"))
|
||||
depends_on("perl-path-tiny@0.009:", type=("build", "test"))
|
||||
depends_on("perl-test-deep", type=("build", "test"))
|
||||
depends_on("perl-test-fatal@0.003:", type=("build", "test"))
|
||||
depends_on("perl-test-needs", type=("build", "test"))
|
||||
depends_on("perl-test-trap", type=("build", "test"))
|
||||
depends_on("perl-test-warnings@0.009:", type=("build", "test"))
|
||||
depends_on("perl-try-tiny", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use MooseX::Getopt; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,34 @@
|
||||
# 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 PerlMoosexMethodattributes(PerlPackage):
|
||||
"""Code attribute introspection"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/MooseX::MethodAttributes"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.32", sha256="cb33886574b7d2dd39c42c0dcdc707acdb0aec7dbbde9a21c0422660368c197b")
|
||||
|
||||
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-moose", type=("build", "run", "test"))
|
||||
depends_on("perl-moosex-role-parameterized", type=("build", "test"))
|
||||
depends_on("perl-namespace-autoclean@0.08:", type=("build", "run", "test"))
|
||||
depends_on("perl-test-fatal", type=("build", "test"))
|
||||
depends_on("perl-test-needs", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use MooseX::MethodAttributes; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,37 @@
|
||||
# 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 PerlMoosexRoleParameterized(PerlPackage):
|
||||
"""Moose roles with composition parameters"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/MooseX::Role::Parameterized"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.11", sha256="1cfe766c5d7f0ecab57f733dcca430a2a2acd6b995757141b940ade3692bec9e")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-cpan-meta-check@0.011:", type=("build", "test"))
|
||||
depends_on("perl-module-build-tiny@0.034:", type=("build"))
|
||||
depends_on("perl-module-runtime", type=("build", "run", "test"))
|
||||
depends_on("perl-moose@2.0300:", type=("build", "run", "test"))
|
||||
depends_on("perl-namespace-autoclean", type=("build", "run", "test"))
|
||||
depends_on("perl-namespace-clean@0.19:", type=("build", "run", "test"))
|
||||
depends_on("perl-test-fatal", type=("build", "test"))
|
||||
depends_on("perl-test-needs", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use MooseX::Role::Parameterized; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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 PerlNetCidrLite(PerlPackage):
|
||||
"""Perl extension for merging IPv4 or IPv6 CIDR addresses"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Net::CIDR::Lite"
|
||||
url = "https://cpan.metacpan.org/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.22", sha256="4317d8cb341a617b9e0888da43c09cdffffcb0c9edf7b8c9928d742a563b8517")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Net::CIDR::Lite; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
27
var/spack/repos/builtin/packages/perl-path-class/package.py
Normal file
27
var/spack/repos/builtin/packages/perl-path-class/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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 PerlPathClass(PerlPackage):
|
||||
"""Cross-platform path specification manipulation"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Path::Class"
|
||||
url = "https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.37", sha256="654781948602386f2cb2e4473a739f17dc6953d92aabc2498a4ca2561bc248ce")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Path::Class; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,34 @@
|
||||
# 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 PerlPlackMiddlewareFixmissingbodyinredirect(PerlPackage):
|
||||
"""Plack::Middleware which sets body for redirect response, if it's not already set"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack::Middleware::FixMissingBodyInRedirect"
|
||||
url = "https://cpan.metacpan.org/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.12", sha256="6c22d069f5a57ac206d4659b28b8869bb9270640bb955efddd451dcc58cdb391")
|
||||
|
||||
depends_on("perl-html-parser", type=("build", "run", "test"))
|
||||
depends_on("perl-http-message", type=("build", "test"))
|
||||
depends_on("perl-plack", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = [
|
||||
"-we",
|
||||
'use strict; use Plack::Middleware::FixMissingBodyInRedirect; print("OK\n")',
|
||||
]
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,31 @@
|
||||
# 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 PerlPlackMiddlewareMethodoverride(PerlPackage):
|
||||
"""Override REST methods to Plack apps via POST"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack::Middleware::MethodOverride"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.20", sha256="dbfb5a2efb48bfeb01cb3ae1e1c677e155dc7bfe210c7e7f221bae3cb6aab5f1")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-plack", type=("build", "run", "test"))
|
||||
depends_on("perl-uri", type=("build", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Plack::Middleware::MethodOverride; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlPlackMiddlewareRemoveredundantbody(PerlPackage):
|
||||
"""Plack::Middleware which removes body for HTTP response if it's not required"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack::Middleware::RemoveRedundantBody"
|
||||
url = "https://cpan.metacpan.org/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.09", sha256="80d45f93d6b7290b0bd8b3cedd84a37fc501456cc3dec02ec7aad81c0018087e")
|
||||
|
||||
depends_on("perl-http-message", type=("build", "test"))
|
||||
depends_on("perl-plack", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Plack::Middleware::RemoveRedundantBody; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlPlackMiddlewareReverseproxy(PerlPackage):
|
||||
"""Supports app to run as a reverse proxy backend"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack::Middleware::ReverseProxy"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.16", sha256="874931d37d07667ba0d0f37903b94511071f4191feb73fa45765da2b8c15a128")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-plack@0.9988:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Plack::Middleware::ReverseProxy; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,34 @@
|
||||
# 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 PerlPlackTestExternalserver(PerlPackage):
|
||||
"""Run HTTP tests on external live servers"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack::Test::ExternalServer"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.02", sha256="5baf5c57fe0c06412deec9c5abe7952ab8a04f8c47b4bbd8e9e9982268903ed0")
|
||||
|
||||
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-http-message", type=("build", "test"))
|
||||
depends_on("perl-libwww-perl", type=("build", "run", "test"))
|
||||
depends_on("perl-plack", type=("build", "test"))
|
||||
depends_on("perl-test-tcp", type=("build", "test"))
|
||||
depends_on("perl-uri", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Plack::Test::ExternalServer; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
46
var/spack/repos/builtin/packages/perl-plack/package.py
Normal file
46
var/spack/repos/builtin/packages/perl-plack/package.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# 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 PerlPlack(PerlPackage):
|
||||
"""Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Plack"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-1.0051.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.0051", sha256="bebde91c42298ed6ec8e6c82b21433a1b49aa39412c247f3905b80f955acf77b")
|
||||
|
||||
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-apache-logformat-compiler@0.33:", type=("build", "run", "test"))
|
||||
depends_on("perl-cookie-baker@0.07:", type=("build", "run", "test"))
|
||||
depends_on("perl-devel-stacktrace@1.23:", type=("build", "run", "test"))
|
||||
depends_on("perl-devel-stacktrace-ashtml@0.11:", type=("build", "run", "test"))
|
||||
depends_on("perl-file-sharedir@1.00:", type=("build", "run", "test"))
|
||||
depends_on("perl-file-sharedir-install@0.06:", type=("build"))
|
||||
depends_on("perl-filesys-notify-simple", type=("build", "run", "test"))
|
||||
depends_on("perl-hash-multivalue@0.05:", type=("build", "run", "test"))
|
||||
depends_on("perl-http-entity-parser@0.25:", type=("build", "run", "test"))
|
||||
depends_on("perl-http-headers-fast@0.18:", type=("build", "run", "test"))
|
||||
depends_on("perl-http-message@5.814:", type=("build", "run", "test"))
|
||||
depends_on("perl-stream-buffered@0.02:", type=("build", "run", "test"))
|
||||
depends_on("perl-test-requires", type=("build", "test"))
|
||||
depends_on("perl-test-tcp@2.15:", type=("build", "run", "test"))
|
||||
depends_on("perl-try-tiny", type=("build", "run", "test"))
|
||||
depends_on("perl-uri@1.59:", type=("build", "run", "test"))
|
||||
depends_on("perl-www-form-urlencoded@0.23:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Plack; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlPosixStrftimeCompiler(PerlPackage):
|
||||
"""GNU C library compatible strftime for loggers and servers"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/POSIX::strftime::Compiler"
|
||||
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.46.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.46", sha256="bf88873248ef88cc5e68ed074493496be684ec334e11273d4654306dd9dae485")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-module-build-tiny@0.035:", type=("build"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use POSIX::strftime::Compiler; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
25
var/spack/repos/builtin/packages/perl-readonly-xs/package.py
Normal file
25
var/spack/repos/builtin/packages/perl-readonly-xs/package.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# 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 PerlReadonlyXs(PerlPackage):
|
||||
"""Companion module for Readonly.pm, to speed up read-only scalar variables."""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Readonly::XS"
|
||||
url = "https://cpan.metacpan.org/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("1.05", sha256="8ae5c4e85299e5c8bddd1b196f2eea38f00709e0dc0cb60454dc9114ae3fff0d")
|
||||
|
||||
depends_on("perl-readonly@1.02:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
# This module can not be "use"d.
|
||||
pass
|
||||
@@ -0,0 +1,29 @@
|
||||
# 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 PerlStreamBuffered(PerlPackage):
|
||||
"""Temporary buffer to save bytes"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Stream::Buffered"
|
||||
url = "https://cpan.metacpan.org/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.03", sha256="9b2d4390b5de6b0cf4558e4ad04317a73c5e13dd19af29149c4e47c37fb2423b")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Stream::Buffered; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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 PerlStringCrc32(PerlPackage):
|
||||
"""Perl interface for cyclic redundancy check generation"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/String::CRC32"
|
||||
url = "https://cpan.metacpan.org/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("CC0-1.0 OR SSLeay")
|
||||
|
||||
version("2.100", sha256="9706093b2d068b6715d35b4c58f51558e37960083202129fbb00a57e19a74713")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use String::CRC32; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,30 @@
|
||||
# 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 PerlStringRewriteprefix(PerlPackage):
|
||||
"""Rewrite strings based on a set of known prefixes"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/String::RewritePrefix"
|
||||
url = "https://cpan.metacpan.org/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.009", sha256="44918bec96a54af8ca37ca897e436709ec284a07b28516ef3cce4666869646d5")
|
||||
|
||||
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-sub-exporter@0.972:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use String::RewritePrefix; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
30
var/spack/repos/builtin/packages/perl-test-json/package.py
Normal file
30
var/spack/repos/builtin/packages/perl-test-json/package.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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 PerlTestJson(PerlPackage):
|
||||
"""Test JSON data"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::JSON"
|
||||
url = "https://cpan.metacpan.org/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.11", sha256="07c08ab2fcc12850d1ad54fcf6afe9ad1a25a098310c3e7142af1d3cb821d7b3")
|
||||
|
||||
depends_on("perl-json-any@1.2:", type=("build", "run", "test"))
|
||||
depends_on("perl-test-differences@0.47:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::JSON; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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 PerlTestLongstring(PerlPackage):
|
||||
"""Tests strings for equality, with more helpful failures"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::LongString"
|
||||
url = "https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.17", sha256="abc4349eaf04d1bec1e464166a3018591ea846d8f3c5c9c8af4ac4905d3e974f")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::LongString; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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 PerlTestMocktime(PerlPackage):
|
||||
"""Replaces actual time with simulated time"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::MockTime"
|
||||
url = "https://cpan.metacpan.org/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.17", sha256="3363e118b2606f1d6abc956f22b0d09109772b7086155fb5c9c7f983350602f9")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::MockTime; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
30
var/spack/repos/builtin/packages/perl-test-tcp/package.py
Normal file
30
var/spack/repos/builtin/packages/perl-test-tcp/package.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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 PerlTestTcp(PerlPackage):
|
||||
"""Testing TCP program"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::TCP"
|
||||
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("2.22", sha256="3e53c3c06d6d0980a2bfeb915602b714e682ee211ae88c11748cf2cc714e7b57")
|
||||
|
||||
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-test-sharedfork@0.29:", type=("build", "run", "test"))
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::TCP; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
27
var/spack/repos/builtin/packages/perl-test-time/package.py
Normal file
27
var/spack/repos/builtin/packages/perl-test-time/package.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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 PerlTestTime(PerlPackage):
|
||||
"""Overrides the time() and sleep() core functions for testing"""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::Time"
|
||||
url = "https://cpan.metacpan.org/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("0.092", sha256="30d90f54ce840893c7ba2cac2a4d1eecd4c9cdf805910c595e3ae89dfd644738")
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::Time; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
35
var/spack/repos/builtin/packages/perl-test-trap/package.py
Normal file
35
var/spack/repos/builtin/packages/perl-test-trap/package.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# 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 PerlTestTrap(PerlPackage):
|
||||
"""Trap exit codes, exceptions, output, etc."""
|
||||
|
||||
homepage = "https://metacpan.org/pod/Test::Trap"
|
||||
url = "https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz"
|
||||
|
||||
maintainers("EbiArnie")
|
||||
|
||||
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
|
||||
|
||||
version("v0.3.5", sha256="54f99016562b5b1d72110100f1f2be437178cdf84376f495ffd0376f1d7ecb9a")
|
||||
|
||||
depends_on("perl@5.6.2:", type=("build", "link", "run", "test"))
|
||||
depends_on("perl-data-dump", type=("build", "run", "test"))
|
||||
|
||||
def url_for_version(self, version):
|
||||
return (
|
||||
f"https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/Test-Trap-{str(version)}.tar.gz"
|
||||
)
|
||||
|
||||
def test_use(self):
|
||||
"""Test 'use module'"""
|
||||
options = ["-we", 'use strict; use Test::Trap; print("OK\n")']
|
||||
|
||||
perl = self.spec["perl"].command
|
||||
out = perl(*options, output=str.split, error=str.split)
|
||||
assert "OK" in out
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user