Compare commits
121 Commits
fix-ams
...
hs/fix/spe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae3bcf9937 | ||
|
|
01e16b58a3 | ||
|
|
f71e202f24 | ||
|
|
f7edd10c17 | ||
|
|
153c0805dd | ||
|
|
5d8517ef69 | ||
|
|
f23cae6a86 | ||
|
|
e6e67f8e0a | ||
|
|
e6bef4ca9b | ||
|
|
e3e0bef0de | ||
|
|
42486d93ec | ||
|
|
6d608a9664 | ||
|
|
04313afc63 | ||
|
|
f839d2ba56 | ||
|
|
2b1a8b1913 | ||
|
|
8907003648 | ||
|
|
8afdba4bf7 | ||
|
|
57cabbfb10 | ||
|
|
c71efb9040 | ||
|
|
c5dd2d43d2 | ||
|
|
34338ef757 | ||
|
|
c0bdc37226 | ||
|
|
8bad9fb804 | ||
|
|
2df7cc0087 | ||
|
|
40d40ccc52 | ||
|
|
afe7d6c39e | ||
|
|
113733d9fb | ||
|
|
a8e2da5bb8 | ||
|
|
97750189b6 | ||
|
|
bcd40835a0 | ||
|
|
2c3f2c5733 | ||
|
|
302d74394b | ||
|
|
cf94dc7823 | ||
|
|
4411ee3382 | ||
|
|
f790ce0f72 | ||
|
|
64d53037db | ||
|
|
4aef50739b | ||
|
|
a6e966f6f2 | ||
|
|
1f428c4188 | ||
|
|
731e48b1bd | ||
|
|
74ff9ad821 | ||
|
|
16a4eff689 | ||
|
|
d0b0d8db50 | ||
|
|
54f591cce5 | ||
|
|
8677bb4d43 | ||
|
|
b66b80a96a | ||
|
|
10e21f399c | ||
|
|
56892f6140 | ||
|
|
7eddc4b1f8 | ||
|
|
3c7392bbcc | ||
|
|
bb0517f4d9 | ||
|
|
c8994ee50f | ||
|
|
4b2f5638f2 | ||
|
|
31312a379f | ||
|
|
b0d5f272b0 | ||
|
|
1c93fef160 | ||
|
|
8bb5f4faf4 | ||
|
|
f76ab5f72f | ||
|
|
49c831edc3 | ||
|
|
c943c8c1d2 | ||
|
|
e0e6f29584 | ||
|
|
72bc3bb803 | ||
|
|
dba8fe2b96 | ||
|
|
4487598d60 | ||
|
|
495537cf56 | ||
|
|
22c3b4099f | ||
|
|
13978d11a0 | ||
|
|
a22114b20b | ||
|
|
c10624390f | ||
|
|
fb3d9de80b | ||
|
|
fbb688af07 | ||
|
|
d34b709425 | ||
|
|
cb0b188cf6 | ||
|
|
9a2b0aca66 | ||
|
|
89a8ab3233 | ||
|
|
5d87166c07 | ||
|
|
15c989b3fe | ||
|
|
b7f556e4b4 | ||
|
|
36f32ceda3 | ||
|
|
01d77ed915 | ||
|
|
0049f8332d | ||
|
|
39c10c3116 | ||
|
|
71d1901831 | ||
|
|
41e0863b86 | ||
|
|
a75d83f65c | ||
|
|
f2f13964fb | ||
|
|
9b032018d6 | ||
|
|
7d470c05be | ||
|
|
664fe9e9e6 | ||
|
|
2745a519e2 | ||
|
|
4348ee1c75 | ||
|
|
8e39fb1e54 | ||
|
|
09458312a3 | ||
|
|
5fd0693df4 | ||
|
|
f58684429d | ||
|
|
409611a479 | ||
|
|
dd98cfb839 | ||
|
|
5c91667dab | ||
|
|
9efd6f3f11 | ||
|
|
a8f5289801 | ||
|
|
ac635aa777 | ||
|
|
45dcddf9c3 | ||
|
|
f1660722e7 | ||
|
|
04b44d841c | ||
|
|
7f30502297 | ||
|
|
61b1586c51 | ||
|
|
8579efcadf | ||
|
|
1c3e2b5425 | ||
|
|
011ef0aaaf | ||
|
|
9642f3f49a | ||
|
|
a6c9b55fad | ||
|
|
608ed967e1 | ||
|
|
742eaa32b7 | ||
|
|
763b35a2e0 | ||
|
|
12280f864c | ||
|
|
253ba05732 | ||
|
|
195b869e1c | ||
|
|
393961ffd6 | ||
|
|
392a58e9be | ||
|
|
0e8e97a811 | ||
|
|
43a0cbe7a2 |
4
.github/workflows/ci.yaml
vendored
4
.github/workflows/ci.yaml
vendored
@@ -81,6 +81,10 @@ jobs:
|
||||
with:
|
||||
with_coverage: ${{ needs.changes.outputs.core }}
|
||||
|
||||
import-check:
|
||||
needs: [ changes ]
|
||||
uses: ./.github/workflows/import-check.yaml
|
||||
|
||||
all-prechecks:
|
||||
needs: [ prechecks ]
|
||||
if: ${{ always() }}
|
||||
|
||||
1
.github/workflows/coverage.yml
vendored
1
.github/workflows/coverage.yml
vendored
@@ -33,3 +33,4 @@ jobs:
|
||||
with:
|
||||
verbose: true
|
||||
fail_ci_if_error: false
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
49
.github/workflows/import-check.yaml
vendored
Normal file
49
.github/workflows/import-check.yaml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: import-check
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
# Check we don't make the situation with circular imports worse
|
||||
import-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: julia-actions/setup-julia@v2
|
||||
with:
|
||||
version: '1.10'
|
||||
- uses: julia-actions/cache@v2
|
||||
|
||||
# PR: use the base of the PR as the old commit
|
||||
- name: Checkout PR base commit
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.base.sha }}
|
||||
path: old
|
||||
# not a PR: use the previous commit as the old commit
|
||||
- name: Checkout previous commit
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 2
|
||||
path: old
|
||||
- name: Checkout previous commit
|
||||
if: github.event_name != 'pull_request'
|
||||
run: git -C old reset --hard HEAD^
|
||||
|
||||
- name: Checkout new commit
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
path: new
|
||||
- name: Install circular import checker
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
repository: haampie/circular-import-fighter
|
||||
ref: 4cdb0bf15f04ab6b49041d5ef1bfd9644cce7f33
|
||||
path: circular-import-fighter
|
||||
- name: Install dependencies
|
||||
working-directory: circular-import-fighter
|
||||
run: make -j dependencies
|
||||
- name: Circular import check
|
||||
working-directory: circular-import-fighter
|
||||
run: make -j compare "SPACK_ROOT=../old ../new"
|
||||
60
.github/workflows/valid-style.yml
vendored
60
.github/workflows/valid-style.yml
vendored
@@ -86,66 +86,6 @@ jobs:
|
||||
spack -d bootstrap now --dev
|
||||
spack -d style -t black
|
||||
spack unit-test -V
|
||||
# Check we don't make the situation with circular imports worse
|
||||
import-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: julia-actions/setup-julia@v2
|
||||
with:
|
||||
version: '1.10'
|
||||
- uses: julia-actions/cache@v2
|
||||
|
||||
# PR: use the base of the PR as the old commit
|
||||
- name: Checkout PR base commit
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.base.sha }}
|
||||
path: old
|
||||
# not a PR: use the previous commit as the old commit
|
||||
- name: Checkout previous commit
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 2
|
||||
path: old
|
||||
- name: Checkout previous commit
|
||||
if: github.event_name != 'pull_request'
|
||||
run: git -C old reset --hard HEAD^
|
||||
|
||||
- name: Checkout new commit
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
path: new
|
||||
- name: Install circular import checker
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
repository: haampie/circular-import-fighter
|
||||
ref: b5d6ce9be35f602cca7d5a6aa0259fca10639cca
|
||||
path: circular-import-fighter
|
||||
- name: Install dependencies
|
||||
working-directory: circular-import-fighter
|
||||
run: make -j dependencies
|
||||
- name: Problematic imports before
|
||||
working-directory: circular-import-fighter
|
||||
run: make SPACK_ROOT=../old SUFFIX=.old
|
||||
- name: Problematic imports after
|
||||
working-directory: circular-import-fighter
|
||||
run: make SPACK_ROOT=../new SUFFIX=.new
|
||||
- name: Compare import cycles
|
||||
working-directory: circular-import-fighter
|
||||
run: |
|
||||
edges_before="$(head -n1 solution.old)"
|
||||
edges_after="$(head -n1 solution.new)"
|
||||
if [ "$edges_after" -gt "$edges_before" ]; then
|
||||
printf '\033[1;31mImport check failed: %s imports need to be deleted, ' "$edges_after"
|
||||
printf 'previously this was %s\033[0m\n' "$edges_before"
|
||||
printf 'Compare \033[1;97m"Problematic imports before"\033[0m and '
|
||||
printf '\033[1;97m"Problematic imports after"\033[0m.\n'
|
||||
exit 1
|
||||
else
|
||||
printf '\033[1;32mImport check passed: %s <= %s\033[0m\n' "$edges_after" "$edges_before"
|
||||
fi
|
||||
|
||||
# Further style checks from pylint
|
||||
pylint:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
config:
|
||||
locks: false
|
||||
build_stage::
|
||||
- '$spack/.staging'
|
||||
- '$user_cache_path/stage'
|
||||
stage_name: '{name}-{version}-{hash:7}'
|
||||
|
||||
@@ -344,26 +344,6 @@ def close(self):
|
||||
self.file.close()
|
||||
|
||||
|
||||
@contextmanager
|
||||
def replace_environment(env):
|
||||
"""Replace the current environment (`os.environ`) with `env`.
|
||||
|
||||
If `env` is empty (or None), this unsets all current environment
|
||||
variables.
|
||||
"""
|
||||
env = env or {}
|
||||
old_env = os.environ.copy()
|
||||
try:
|
||||
os.environ.clear()
|
||||
for name, val in env.items():
|
||||
os.environ[name] = val
|
||||
yield
|
||||
finally:
|
||||
os.environ.clear()
|
||||
for name, val in old_env.items():
|
||||
os.environ[name] = val
|
||||
|
||||
|
||||
def log_output(*args, **kwargs):
|
||||
"""Context manager that logs its output to a file.
|
||||
|
||||
@@ -447,7 +427,6 @@ def __init__(
|
||||
self.echo = echo
|
||||
self.debug = debug
|
||||
self.buffer = buffer
|
||||
self.env = env # the environment to use for _writer_daemon
|
||||
self.filter_fn = filter_fn
|
||||
|
||||
self._active = False # used to prevent re-entry
|
||||
@@ -519,21 +498,20 @@ def __enter__(self):
|
||||
# just don't forward input if this fails
|
||||
pass
|
||||
|
||||
with replace_environment(self.env):
|
||||
self.process = multiprocessing.Process(
|
||||
target=_writer_daemon,
|
||||
args=(
|
||||
input_fd,
|
||||
read_fd,
|
||||
self.write_fd,
|
||||
self.echo,
|
||||
self.log_file,
|
||||
child_pipe,
|
||||
self.filter_fn,
|
||||
),
|
||||
)
|
||||
self.process.daemon = True # must set before start()
|
||||
self.process.start()
|
||||
self.process = multiprocessing.Process(
|
||||
target=_writer_daemon,
|
||||
args=(
|
||||
input_fd,
|
||||
read_fd,
|
||||
self.write_fd,
|
||||
self.echo,
|
||||
self.log_file,
|
||||
child_pipe,
|
||||
self.filter_fn,
|
||||
),
|
||||
)
|
||||
self.process.daemon = True # must set before start()
|
||||
self.process.start()
|
||||
|
||||
finally:
|
||||
if input_fd:
|
||||
@@ -729,10 +707,7 @@ class winlog:
|
||||
Does not support the use of 'v' toggling as nixlog does.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self, file_like=None, echo=False, debug=0, buffer=False, env=None, filter_fn=None
|
||||
):
|
||||
self.env = env
|
||||
def __init__(self, file_like=None, echo=False, debug=0, buffer=False, filter_fn=None):
|
||||
self.debug = debug
|
||||
self.echo = echo
|
||||
self.logfile = file_like
|
||||
@@ -789,11 +764,10 @@ def background_reader(reader, echo_writer, _kill):
|
||||
reader.close()
|
||||
|
||||
self._active = True
|
||||
with replace_environment(self.env):
|
||||
self._thread = Thread(
|
||||
target=background_reader, args=(self.reader, self.echo_writer, self._kill)
|
||||
)
|
||||
self._thread.start()
|
||||
self._thread = Thread(
|
||||
target=background_reader, args=(self.reader, self.echo_writer, self._kill)
|
||||
)
|
||||
self._thread.start()
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import spack.util.git
|
||||
|
||||
#: PEP440 canonical <major>.<minor>.<micro>.<devN> string
|
||||
__version__ = "0.24.0.dev0"
|
||||
__version__ = "1.0.0.dev0"
|
||||
spack_version = __version__
|
||||
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
from typing import Any, List, Optional, Tuple
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
from llnl.util import tty
|
||||
from llnl.util.lang import stable_partition
|
||||
|
||||
import spack.builder
|
||||
@@ -458,19 +459,23 @@ def cmake(
|
||||
) -> None:
|
||||
"""Runs ``cmake`` in the build directory"""
|
||||
|
||||
# skip cmake phase if it is an incremental develop build
|
||||
# These are the files that will re-run CMake that are generated from a successful
|
||||
# configure step
|
||||
primary_generator = _extract_primary_generator(self.generator)
|
||||
if primary_generator == "Unix Makefiles":
|
||||
configure_artifact = "Makefile"
|
||||
elif primary_generator == "Ninja":
|
||||
configure_artifact = "ninja.build"
|
||||
if spec.is_develop:
|
||||
# skip cmake phase if it is an incremental develop build
|
||||
|
||||
if spec.is_develop and os.path.isfile(
|
||||
os.path.join(self.build_directory, configure_artifact)
|
||||
):
|
||||
return
|
||||
# Determine the files that will re-run CMake that are generated from a successful
|
||||
# configure step based on state
|
||||
primary_generator = _extract_primary_generator(self.generator)
|
||||
configure_artifact = "Makefile"
|
||||
if primary_generator == "Ninja":
|
||||
configure_artifact = "ninja.build"
|
||||
|
||||
if os.path.isfile(os.path.join(self.build_directory, configure_artifact)):
|
||||
tty.msg(
|
||||
"Incremental build criteria satisfied."
|
||||
"Skipping CMake configure step. To force configuration run"
|
||||
f" `spack clean {pkg.name}`"
|
||||
)
|
||||
return
|
||||
|
||||
options = self.std_cmake_args
|
||||
options += self.cmake_args()
|
||||
|
||||
@@ -15,7 +15,7 @@ class CudaPackage(PackageBase):
|
||||
"""Auxiliary class which contains CUDA variant, dependencies and conflicts
|
||||
and is meant to unify and facilitate its usage.
|
||||
|
||||
Maintainers: ax3l, Rombur, davidbeckingsale
|
||||
Maintainers: ax3l, Rombur, davidbeckingsale, pauleonix
|
||||
"""
|
||||
|
||||
# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list
|
||||
@@ -47,6 +47,12 @@ class CudaPackage(PackageBase):
|
||||
"89",
|
||||
"90",
|
||||
"90a",
|
||||
"100",
|
||||
"100a",
|
||||
"101",
|
||||
"101a",
|
||||
"120",
|
||||
"120a",
|
||||
)
|
||||
|
||||
# FIXME: keep cuda and cuda_arch separate to make usage easier until
|
||||
@@ -99,39 +105,56 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
# CUDA version vs Architecture
|
||||
# https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
||||
# https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features
|
||||
# Tesla support:
|
||||
depends_on("cuda@:6.0", when="cuda_arch=10")
|
||||
depends_on("cuda@:6.5", when="cuda_arch=11")
|
||||
depends_on("cuda@2.1:6.5", when="cuda_arch=12")
|
||||
depends_on("cuda@2.1:6.5", when="cuda_arch=13")
|
||||
|
||||
# Fermi support:
|
||||
depends_on("cuda@3.0:8.0", when="cuda_arch=20")
|
||||
depends_on("cuda@3.2:8.0", when="cuda_arch=21")
|
||||
|
||||
# Kepler support:
|
||||
depends_on("cuda@5.0:10.2", when="cuda_arch=30")
|
||||
depends_on("cuda@5.0:10.2", when="cuda_arch=32")
|
||||
depends_on("cuda@5.0:11.8", when="cuda_arch=35")
|
||||
depends_on("cuda@6.5:11.8", when="cuda_arch=37")
|
||||
|
||||
# Maxwell support:
|
||||
depends_on("cuda@6.0:", when="cuda_arch=50")
|
||||
depends_on("cuda@6.5:", when="cuda_arch=52")
|
||||
depends_on("cuda@6.5:", when="cuda_arch=53")
|
||||
|
||||
# Pascal support:
|
||||
depends_on("cuda@8.0:", when="cuda_arch=60")
|
||||
depends_on("cuda@8.0:", when="cuda_arch=61")
|
||||
depends_on("cuda@8.0:", when="cuda_arch=62")
|
||||
|
||||
# Volta support:
|
||||
depends_on("cuda@9.0:", when="cuda_arch=70")
|
||||
# Turing support:
|
||||
depends_on("cuda@9.0:", when="cuda_arch=72")
|
||||
depends_on("cuda@10.0:", when="cuda_arch=75")
|
||||
|
||||
# Ampere support:
|
||||
depends_on("cuda@11.0:", when="cuda_arch=80")
|
||||
depends_on("cuda@11.1:", when="cuda_arch=86")
|
||||
depends_on("cuda@11.4:", when="cuda_arch=87")
|
||||
# Ada support:
|
||||
depends_on("cuda@11.8:", when="cuda_arch=89")
|
||||
|
||||
# Hopper support:
|
||||
depends_on("cuda@12.0:", when="cuda_arch=90")
|
||||
depends_on("cuda@12.0:", when="cuda_arch=90a")
|
||||
|
||||
# Blackwell support:
|
||||
depends_on("cuda@12.8:", when="cuda_arch=100")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=100a")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=101")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=101a")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=120")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=120a")
|
||||
# From the NVIDIA install guide we know of conflicts for particular
|
||||
# platforms (linux, darwin), architectures (x86, powerpc) and compilers
|
||||
# (gcc, clang). We don't restrict %gcc and %clang conflicts to
|
||||
@@ -163,6 +186,7 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
conflicts("%gcc@12:", when="+cuda ^cuda@:11.8")
|
||||
conflicts("%gcc@13:", when="+cuda ^cuda@:12.3")
|
||||
conflicts("%gcc@14:", when="+cuda ^cuda@:12.6")
|
||||
conflicts("%gcc@15:", when="+cuda ^cuda@:12.8")
|
||||
conflicts("%clang@12:", when="+cuda ^cuda@:11.4.0")
|
||||
conflicts("%clang@13:", when="+cuda ^cuda@:11.5")
|
||||
conflicts("%clang@14:", when="+cuda ^cuda@:11.7")
|
||||
@@ -171,6 +195,7 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
conflicts("%clang@17:", when="+cuda ^cuda@:12.3")
|
||||
conflicts("%clang@18:", when="+cuda ^cuda@:12.5")
|
||||
conflicts("%clang@19:", when="+cuda ^cuda@:12.6")
|
||||
conflicts("%clang@20:", when="+cuda ^cuda@:12.8")
|
||||
|
||||
# https://gist.github.com/ax3l/9489132#gistcomment-3860114
|
||||
conflicts("%gcc@10", when="+cuda ^cuda@:11.4.0")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
import zipfile
|
||||
from collections import namedtuple
|
||||
from typing import Callable, Dict, List, Set
|
||||
from urllib.request import HTTPHandler, Request, build_opener
|
||||
from urllib.request import Request
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
import llnl.util.tty as tty
|
||||
@@ -62,6 +62,8 @@
|
||||
|
||||
PushResult = namedtuple("PushResult", "success url")
|
||||
|
||||
urlopen = web_util.urlopen # alias for mocking in tests
|
||||
|
||||
|
||||
def get_change_revisions():
|
||||
"""If this is a git repo get the revisions to use when checking
|
||||
@@ -627,29 +629,19 @@ def download_and_extract_artifacts(url, work_dir):
|
||||
if token:
|
||||
headers["PRIVATE-TOKEN"] = token
|
||||
|
||||
opener = build_opener(HTTPHandler)
|
||||
|
||||
request = Request(url, headers=headers)
|
||||
request.get_method = lambda: "GET"
|
||||
|
||||
response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT)
|
||||
response_code = response.getcode()
|
||||
|
||||
if response_code != 200:
|
||||
msg = f"Error response code ({response_code}) in reproduce_ci_job"
|
||||
raise SpackError(msg)
|
||||
|
||||
request = Request(url, headers=headers, method="GET")
|
||||
artifacts_zip_path = os.path.join(work_dir, "artifacts.zip")
|
||||
os.makedirs(work_dir, exist_ok=True)
|
||||
|
||||
if not os.path.exists(work_dir):
|
||||
os.makedirs(work_dir)
|
||||
try:
|
||||
response = urlopen(request, timeout=SPACK_CDASH_TIMEOUT)
|
||||
with open(artifacts_zip_path, "wb") as out_file:
|
||||
shutil.copyfileobj(response, out_file)
|
||||
except OSError as e:
|
||||
raise SpackError(f"Error fetching artifacts: {e}")
|
||||
|
||||
with open(artifacts_zip_path, "wb") as out_file:
|
||||
shutil.copyfileobj(response, out_file)
|
||||
|
||||
zip_file = zipfile.ZipFile(artifacts_zip_path)
|
||||
zip_file.extractall(work_dir)
|
||||
zip_file.close()
|
||||
with zipfile.ZipFile(artifacts_zip_path) as zip_file:
|
||||
zip_file.extractall(work_dir)
|
||||
|
||||
os.remove(artifacts_zip_path)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
import llnl.util.tty as tty
|
||||
|
||||
import spack.config
|
||||
import spack.error
|
||||
import spack.repo
|
||||
import spack.util.path
|
||||
from spack.cmd.common import arguments
|
||||
@@ -129,7 +130,7 @@ def repo_remove(args):
|
||||
spack.config.set("repos", repos, args.scope)
|
||||
tty.msg("Removed repository %s with namespace '%s'." % (repo.root, repo.namespace))
|
||||
return
|
||||
except spack.repo.RepoError:
|
||||
except spack.error.RepoError:
|
||||
continue
|
||||
|
||||
tty.die("No repository with path or namespace: %s" % namespace_or_path)
|
||||
@@ -142,7 +143,7 @@ def repo_list(args):
|
||||
for r in roots:
|
||||
try:
|
||||
repos.append(spack.repo.from_path(r))
|
||||
except spack.repo.RepoError:
|
||||
except spack.error.RepoError:
|
||||
continue
|
||||
|
||||
if sys.stdout.isatty():
|
||||
|
||||
@@ -57,7 +57,7 @@ def validate(configuration_file):
|
||||
# Set the default value of the concretization strategy to unify and
|
||||
# warn if the user explicitly set another value
|
||||
env_dict.setdefault("concretizer", {"unify": True})
|
||||
if not env_dict["concretizer"]["unify"] is True:
|
||||
if env_dict["concretizer"]["unify"] is not True:
|
||||
warnings.warn(
|
||||
'"concretizer:unify" is not set to "true", which means the '
|
||||
"generated image may contain different variants of the same "
|
||||
|
||||
@@ -202,3 +202,11 @@ class MirrorError(SpackError):
|
||||
|
||||
def __init__(self, msg, long_msg=None):
|
||||
super().__init__(msg, long_msg)
|
||||
|
||||
|
||||
class RepoError(SpackError):
|
||||
"""Superclass for repository-related errors."""
|
||||
|
||||
|
||||
class UnknownEntityError(RepoError):
|
||||
"""Raised when we encounter a package spack doesn't have."""
|
||||
|
||||
@@ -560,7 +560,7 @@ def dump_packages(spec: "spack.spec.Spec", path: str) -> None:
|
||||
try:
|
||||
source_repo = spack.repo.from_path(source_repo_root)
|
||||
source_pkg_dir = source_repo.dirname_for_package_name(node.name)
|
||||
except spack.repo.RepoError as err:
|
||||
except spack.error.RepoError as err:
|
||||
tty.debug(f"Failed to create source repo for {node.name}: {str(err)}")
|
||||
source_pkg_dir = None
|
||||
tty.warn(f"Warning: Couldn't copy in provenance for {node.name}")
|
||||
@@ -814,7 +814,7 @@ def get_depflags(self, pkg: "spack.package_base.PackageBase") -> int:
|
||||
# Include build dependencies if pkg is going to be built from sources, or
|
||||
# if build deps are explicitly requested.
|
||||
if include_build_deps or not (
|
||||
cache_only or pkg.spec.installed and not pkg.spec.dag_hash() in self.overwrite
|
||||
cache_only or pkg.spec.installed and pkg.spec.dag_hash() not in self.overwrite
|
||||
):
|
||||
depflag |= dt.BUILD
|
||||
if self.run_tests(pkg):
|
||||
@@ -2436,11 +2436,7 @@ def _real_install(self) -> None:
|
||||
# DEBUGGING TIP - to debug this section, insert an IPython
|
||||
# embed here, and run the sections below without log capture
|
||||
log_contextmanager = log_output(
|
||||
log_file,
|
||||
self.echo,
|
||||
True,
|
||||
env=self.unmodified_env,
|
||||
filter_fn=self.filter_fn,
|
||||
log_file, self.echo, True, filter_fn=self.filter_fn
|
||||
)
|
||||
|
||||
with log_contextmanager as logger:
|
||||
|
||||
@@ -64,7 +64,7 @@ def from_local_path(path: str):
|
||||
@staticmethod
|
||||
def from_url(url: str):
|
||||
"""Create an anonymous mirror by URL. This method validates the URL."""
|
||||
if not urllib.parse.urlparse(url).scheme in supported_url_schemes:
|
||||
if urllib.parse.urlparse(url).scheme not in supported_url_schemes:
|
||||
raise ValueError(
|
||||
f'"{url}" is not a valid mirror URL. '
|
||||
f"Scheme must be one of {supported_url_schemes}."
|
||||
|
||||
@@ -383,6 +383,7 @@ def create_opener():
|
||||
"""Create an opener that can handle OCI authentication."""
|
||||
opener = urllib.request.OpenerDirector()
|
||||
for handler in [
|
||||
urllib.request.ProxyHandler(),
|
||||
urllib.request.UnknownHandler(),
|
||||
urllib.request.HTTPSHandler(context=spack.util.web.ssl_create_default_context()),
|
||||
spack.util.web.SpackHTTPDefaultErrorHandler(),
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
# flake8: noqa: F401
|
||||
# flake8: noqa: F401, E402
|
||||
"""spack.package defines the public API for Spack packages, by re-exporting useful symbols from
|
||||
other modules. Packages should import this module, instead of importing from spack.* directly
|
||||
to ensure forward compatibility with future versions of Spack."""
|
||||
|
||||
@@ -697,9 +697,6 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
|
||||
#: Verbosity level, preserved across installs.
|
||||
_verbose = None
|
||||
|
||||
#: index of patches by sha256 sum, built lazily
|
||||
_patches_by_hash = None
|
||||
|
||||
#: Package homepage where users can find more information about the package
|
||||
homepage: Optional[str] = None
|
||||
|
||||
@@ -2112,7 +2109,7 @@ def uninstall_by_spec(spec, force=False, deprecator=None):
|
||||
# Try to get the package for the spec
|
||||
try:
|
||||
pkg = spec.package
|
||||
except spack.repo.UnknownEntityError:
|
||||
except spack.error.UnknownEntityError:
|
||||
pkg = None
|
||||
|
||||
# Pre-uninstall hook runs first.
|
||||
@@ -2287,14 +2284,6 @@ def rpath_args(self):
|
||||
build_system_flags = PackageBase.build_system_flags
|
||||
|
||||
|
||||
def use_cray_compiler_names():
|
||||
"""Compiler names for builds that rely on cray compiler names."""
|
||||
os.environ["CC"] = "cc"
|
||||
os.environ["CXX"] = "CC"
|
||||
os.environ["FC"] = "ftn"
|
||||
os.environ["F77"] = "ftn"
|
||||
|
||||
|
||||
def possible_dependencies(
|
||||
*pkg_or_spec: Union[str, spack.spec.Spec, typing.Type[PackageBase]],
|
||||
transitive: bool = True,
|
||||
|
||||
@@ -236,22 +236,15 @@ def relocate_elf_binaries(binaries: Iterable[str], prefix_to_prefix: Dict[str, s
|
||||
_set_elf_rpaths_and_interpreter(path, rpaths=rpaths, interpreter=interpreter)
|
||||
|
||||
|
||||
def _warn_if_link_cant_be_relocated(link: str, target: str):
|
||||
if not os.path.isabs(target):
|
||||
return
|
||||
tty.warn(f'Symbolic link at "{link}" to "{target}" cannot be relocated')
|
||||
|
||||
|
||||
def relocate_links(links: Iterable[str], prefix_to_prefix: Dict[str, str]) -> None:
|
||||
"""Relocate links to a new install prefix."""
|
||||
regex = re.compile("|".join(re.escape(p) for p in prefix_to_prefix.keys()))
|
||||
for link in links:
|
||||
old_target = readlink(link)
|
||||
if not os.path.isabs(old_target):
|
||||
continue
|
||||
match = regex.match(old_target)
|
||||
|
||||
# No match.
|
||||
if match is None:
|
||||
_warn_if_link_cant_be_relocated(link, old_target)
|
||||
continue
|
||||
|
||||
new_target = prefix_to_prefix[match.group()] + old_target[match.end() :]
|
||||
|
||||
@@ -663,7 +663,7 @@ def __init__(
|
||||
repo = Repo(repo, cache=cache, overrides=overrides)
|
||||
repo.finder(self)
|
||||
self.put_last(repo)
|
||||
except RepoError as e:
|
||||
except spack.error.RepoError as e:
|
||||
tty.warn(
|
||||
f"Failed to initialize repository: '{repo}'.",
|
||||
e.message,
|
||||
@@ -1241,7 +1241,7 @@ def get_pkg_class(self, pkg_name: str) -> Type["spack.package_base.PackageBase"]
|
||||
raise UnknownPackageError(fullname)
|
||||
except Exception as e:
|
||||
msg = f"cannot load package '{pkg_name}' from the '{self.namespace}' repository: {e}"
|
||||
raise RepoError(msg) from e
|
||||
raise spack.error.RepoError(msg) from e
|
||||
|
||||
cls = getattr(module, class_name)
|
||||
if not isinstance(cls, type):
|
||||
@@ -1501,27 +1501,19 @@ def recipe_filename(self, name):
|
||||
return os.path.join(self.root, "packages", name, "package.py")
|
||||
|
||||
|
||||
class RepoError(spack.error.SpackError):
|
||||
"""Superclass for repository-related errors."""
|
||||
|
||||
|
||||
class NoRepoConfiguredError(RepoError):
|
||||
class NoRepoConfiguredError(spack.error.RepoError):
|
||||
"""Raised when there are no repositories configured."""
|
||||
|
||||
|
||||
class InvalidNamespaceError(RepoError):
|
||||
class InvalidNamespaceError(spack.error.RepoError):
|
||||
"""Raised when an invalid namespace is encountered."""
|
||||
|
||||
|
||||
class BadRepoError(RepoError):
|
||||
class BadRepoError(spack.error.RepoError):
|
||||
"""Raised when repo layout is invalid."""
|
||||
|
||||
|
||||
class UnknownEntityError(RepoError):
|
||||
"""Raised when we encounter a package spack doesn't have."""
|
||||
|
||||
|
||||
class UnknownPackageError(UnknownEntityError):
|
||||
class UnknownPackageError(spack.error.UnknownEntityError):
|
||||
"""Raised when we encounter a package spack doesn't have."""
|
||||
|
||||
def __init__(self, name, repo=None):
|
||||
@@ -1558,7 +1550,7 @@ def __init__(self, name, repo=None):
|
||||
self.name = name
|
||||
|
||||
|
||||
class UnknownNamespaceError(UnknownEntityError):
|
||||
class UnknownNamespaceError(spack.error.UnknownEntityError):
|
||||
"""Raised when we encounter an unknown namespace"""
|
||||
|
||||
def __init__(self, namespace, name=None):
|
||||
@@ -1568,7 +1560,7 @@ def __init__(self, namespace, name=None):
|
||||
super().__init__(msg, long_msg)
|
||||
|
||||
|
||||
class FailedConstructorError(RepoError):
|
||||
class FailedConstructorError(spack.error.RepoError):
|
||||
"""Raised when a package's class constructor fails."""
|
||||
|
||||
def __init__(self, name, exc_type, exc_obj, exc_tb):
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
import codecs
|
||||
import collections
|
||||
import hashlib
|
||||
import os
|
||||
@@ -13,7 +14,7 @@
|
||||
import xml.sax.saxutils
|
||||
from typing import Dict, Optional
|
||||
from urllib.parse import urlencode
|
||||
from urllib.request import HTTPSHandler, Request, build_opener
|
||||
from urllib.request import Request
|
||||
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.filesystem import working_dir
|
||||
@@ -24,10 +25,10 @@
|
||||
import spack.spec
|
||||
import spack.tengine
|
||||
import spack.util.git
|
||||
import spack.util.web as web_util
|
||||
from spack.error import SpackError
|
||||
from spack.util.crypto import checksum
|
||||
from spack.util.log_parse import parse_log_events
|
||||
from spack.util.web import ssl_create_default_context
|
||||
|
||||
from .base import Reporter
|
||||
from .extract import extract_test_parts
|
||||
@@ -433,7 +434,6 @@ def upload(self, filename):
|
||||
# Compute md5 checksum for the contents of this file.
|
||||
md5sum = checksum(hashlib.md5, filename, block_size=8192)
|
||||
|
||||
opener = build_opener(HTTPSHandler(context=ssl_create_default_context()))
|
||||
with open(filename, "rb") as f:
|
||||
params_dict = {
|
||||
"build": self.buildname,
|
||||
@@ -443,26 +443,21 @@ def upload(self, filename):
|
||||
}
|
||||
encoded_params = urlencode(params_dict)
|
||||
url = "{0}&{1}".format(self.cdash_upload_url, encoded_params)
|
||||
request = Request(url, data=f)
|
||||
request = Request(url, data=f, method="PUT")
|
||||
request.add_header("Content-Type", "text/xml")
|
||||
request.add_header("Content-Length", os.path.getsize(filename))
|
||||
if self.authtoken:
|
||||
request.add_header("Authorization", "Bearer {0}".format(self.authtoken))
|
||||
try:
|
||||
# By default, urllib2 only support GET and POST.
|
||||
# CDash expects this file to be uploaded via PUT.
|
||||
request.get_method = lambda: "PUT"
|
||||
response = opener.open(request, timeout=SPACK_CDASH_TIMEOUT)
|
||||
response = web_util.urlopen(request, timeout=SPACK_CDASH_TIMEOUT)
|
||||
if self.current_package_name not in self.buildIds:
|
||||
resp_value = response.read()
|
||||
if isinstance(resp_value, bytes):
|
||||
resp_value = resp_value.decode("utf-8")
|
||||
resp_value = codecs.getreader("utf-8")(response).read()
|
||||
match = self.buildid_regexp.search(resp_value)
|
||||
if match:
|
||||
buildid = match.group(1)
|
||||
self.buildIds[self.current_package_name] = buildid
|
||||
except Exception as e:
|
||||
print("Upload to CDash failed: {0}".format(e))
|
||||
print(f"Upload to CDash failed: {e}")
|
||||
|
||||
def finalize_report(self):
|
||||
if self.buildIds:
|
||||
|
||||
@@ -3831,7 +3831,7 @@ def _is_reusable(spec: spack.spec.Spec, packages, local: bool) -> bool:
|
||||
|
||||
try:
|
||||
provided = spack.repo.PATH.get(spec).provided_virtual_names()
|
||||
except spack.repo.RepoError:
|
||||
except spack.error.RepoError:
|
||||
provided = []
|
||||
|
||||
for name in {spec.name, *provided}:
|
||||
|
||||
@@ -91,7 +91,6 @@
|
||||
import spack.hash_types as ht
|
||||
import spack.paths
|
||||
import spack.platforms
|
||||
import spack.provider_index
|
||||
import spack.repo
|
||||
import spack.spec_parser
|
||||
import spack.store
|
||||
@@ -1527,9 +1526,8 @@ def __init__(self, spec_like=None, *, external_path=None, external_modules=None)
|
||||
self._external_path = external_path
|
||||
self.external_modules = Spec._format_module_list(external_modules)
|
||||
|
||||
# This attribute is used to store custom information for
|
||||
# external specs. None signal that it was not set yet.
|
||||
self.extra_attributes = None
|
||||
# This attribute is used to store custom information for external specs.
|
||||
self.extra_attributes: dict = {}
|
||||
|
||||
# This attribute holds the original build copy of the spec if it is
|
||||
# deployed differently than it was built. None signals that the spec
|
||||
@@ -1894,9 +1892,7 @@ def root(self):
|
||||
|
||||
@property
|
||||
def package(self):
|
||||
assert self.concrete, "{0}: Spec.package can only be called on concrete specs".format(
|
||||
self.name
|
||||
)
|
||||
assert self.concrete, f"{self.name}: Spec.package can only be called on concrete specs"
|
||||
if not self._package:
|
||||
self._package = spack.repo.PATH.get(self)
|
||||
return self._package
|
||||
@@ -2351,15 +2347,10 @@ def to_node_dict(self, hash=ht.dag_hash):
|
||||
)
|
||||
|
||||
if self.external:
|
||||
if self.extra_attributes:
|
||||
extra_attributes = syaml.sorted_dict(self.extra_attributes)
|
||||
else:
|
||||
extra_attributes = None
|
||||
|
||||
d["external"] = {
|
||||
"path": self.external_path,
|
||||
"module": self.external_modules,
|
||||
"extra_attributes": extra_attributes,
|
||||
"module": self.external_modules or None,
|
||||
"extra_attributes": syaml.sorted_dict(self.extra_attributes),
|
||||
}
|
||||
|
||||
if not self._concrete:
|
||||
@@ -3273,7 +3264,7 @@ def _constrain_dependencies(self, other):
|
||||
|
||||
def common_dependencies(self, other):
|
||||
"""Return names of dependencies that self an other have in common."""
|
||||
common = set(s.name for s in self.traverse(root=False))
|
||||
common = {s.name for s in self.traverse(root=False)}
|
||||
common.intersection_update(s.name for s in other.traverse(root=False))
|
||||
return common
|
||||
|
||||
@@ -3321,7 +3312,7 @@ def intersects(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
elif other.concrete:
|
||||
return other.satisfies(self)
|
||||
|
||||
# From here we know both self and other are not concrete
|
||||
# From here we know both self and other are abstract
|
||||
self_hash = self.abstract_hash
|
||||
other_hash = other.abstract_hash
|
||||
|
||||
@@ -3332,32 +3323,8 @@ def intersects(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
):
|
||||
return False
|
||||
|
||||
# If the names are different, we need to consider virtuals
|
||||
# We do not consider virtuals for two abstract specs, since no package is associated
|
||||
if self.name != other.name and self.name and other.name:
|
||||
if self.virtual and other.virtual:
|
||||
# Two virtual specs intersect only if there are providers for both
|
||||
lhs = spack.repo.PATH.providers_for(str(self))
|
||||
rhs = spack.repo.PATH.providers_for(str(other))
|
||||
intersection = [s for s in lhs if any(s.intersects(z) for z in rhs)]
|
||||
return bool(intersection)
|
||||
|
||||
# A provider can satisfy a virtual dependency.
|
||||
elif self.virtual or other.virtual:
|
||||
virtual_spec, non_virtual_spec = (self, other) if self.virtual else (other, self)
|
||||
try:
|
||||
# Here we might get an abstract spec
|
||||
pkg_cls = spack.repo.PATH.get_pkg_class(non_virtual_spec.fullname)
|
||||
pkg = pkg_cls(non_virtual_spec)
|
||||
except spack.repo.UnknownEntityError:
|
||||
# If we can't get package info on this spec, don't treat
|
||||
# it as a provider of this vdep.
|
||||
return False
|
||||
|
||||
if pkg.provides(virtual_spec.name):
|
||||
for when_spec, provided in pkg.provided.items():
|
||||
if non_virtual_spec.intersects(when_spec, deps=False):
|
||||
if any(vpkg.intersects(virtual_spec) for vpkg in provided):
|
||||
return True
|
||||
return False
|
||||
|
||||
# namespaces either match, or other doesn't require one.
|
||||
@@ -3387,40 +3354,16 @@ def intersects(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
return False
|
||||
|
||||
# If we need to descend into dependencies, do it, otherwise we're done.
|
||||
if deps:
|
||||
return self._intersects_dependencies(other)
|
||||
|
||||
return True
|
||||
|
||||
def _intersects_dependencies(self, other):
|
||||
if not other._dependencies or not self._dependencies:
|
||||
# one spec *could* eventually satisfy the other
|
||||
if not deps or not self._dependencies or not other._dependencies:
|
||||
return True
|
||||
|
||||
# Handle first-order constraints directly
|
||||
return self._intersects_dependencies(other)
|
||||
|
||||
def _intersects_dependencies(self, other: "Spec") -> bool:
|
||||
for name in self.common_dependencies(other):
|
||||
if not self[name].intersects(other[name], deps=False):
|
||||
return False
|
||||
|
||||
# For virtual dependencies, we need to dig a little deeper.
|
||||
self_index = spack.provider_index.ProviderIndex(
|
||||
repository=spack.repo.PATH, specs=self.traverse(), restrict=True
|
||||
)
|
||||
other_index = spack.provider_index.ProviderIndex(
|
||||
repository=spack.repo.PATH, specs=other.traverse(), restrict=True
|
||||
)
|
||||
|
||||
# These two loops handle cases where there is an overly restrictive
|
||||
# vpkg in one spec for a provider in the other (e.g., mpi@3: is not
|
||||
# compatible with mpich2)
|
||||
for spec in self.virtual_dependencies():
|
||||
if spec.name in other_index and not other_index.providers_for(spec):
|
||||
return False
|
||||
|
||||
for spec in other.virtual_dependencies():
|
||||
if spec.name in self_index and not self_index.providers_for(spec):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def satisfies(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
@@ -3445,24 +3388,22 @@ def satisfies(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
if not compare_hash or not compare_hash.startswith(other.abstract_hash):
|
||||
return False
|
||||
|
||||
# If the names are different, we need to consider virtuals
|
||||
if self.name != other.name and self.name and other.name:
|
||||
# A concrete provider can satisfy a virtual dependency.
|
||||
if not self.virtual and other.virtual:
|
||||
try:
|
||||
# Here we might get an abstract spec
|
||||
pkg_cls = spack.repo.PATH.get_pkg_class(self.fullname)
|
||||
pkg = pkg_cls(self)
|
||||
except spack.repo.UnknownEntityError:
|
||||
# If we can't get package info on this spec, don't treat
|
||||
# it as a provider of this vdep.
|
||||
return False
|
||||
# If the names are different, we need to consider virtuals. We return false for two
|
||||
# abstract specs with different names because no package is associated with them.
|
||||
if other.name and self.name != other.name:
|
||||
try:
|
||||
pkg = self.package
|
||||
except (AssertionError, spack.error.RepoError):
|
||||
# If we can't get package info on this spec, don't treat it as a provider of this
|
||||
# vdep.
|
||||
return False
|
||||
|
||||
if pkg.provides(other.name):
|
||||
for when, provided in pkg.provided.items():
|
||||
if self.satisfies(when, deps=False):
|
||||
if any(p.intersects(other) for p in provided):
|
||||
return True
|
||||
|
||||
if pkg.provides(other.name):
|
||||
for when_spec, provided in pkg.provided.items():
|
||||
if self.satisfies(when_spec, deps=False):
|
||||
if any(vpkg.intersects(other) for vpkg in provided):
|
||||
return True
|
||||
return False
|
||||
|
||||
# namespaces either match, or other doesn't require one.
|
||||
@@ -3515,10 +3456,6 @@ def satisfies(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
# will be verified later.
|
||||
lhs_edges: Dict[str, Set[DependencySpec]] = collections.defaultdict(set)
|
||||
for rhs_edge in other.traverse_edges(root=False, cover="edges"):
|
||||
# If we are checking for ^mpi we need to verify if there is any edge
|
||||
if rhs_edge.spec.virtual:
|
||||
rhs_edge.update_virtuals(virtuals=(rhs_edge.spec.name,))
|
||||
|
||||
if not rhs_edge.virtuals:
|
||||
continue
|
||||
|
||||
@@ -3560,10 +3497,6 @@ def satisfies(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
|
||||
for rhs in other.traverse(root=False)
|
||||
)
|
||||
|
||||
def virtual_dependencies(self):
|
||||
"""Return list of any virtual deps in this spec."""
|
||||
return [spec for spec in self.traverse() if spec.virtual]
|
||||
|
||||
@property # type: ignore[misc] # decorated prop not supported in mypy
|
||||
def patches(self):
|
||||
"""Return patch objects for any patch sha256 sums on this Spec.
|
||||
@@ -3861,6 +3794,13 @@ def _cmp_iter(self):
|
||||
for item in self._cmp_node():
|
||||
yield item
|
||||
|
||||
# If there is ever a breaking change to hash computation, whether accidental or purposeful,
|
||||
# two specs can be identical modulo DAG hash, depending on what time they were concretized
|
||||
# From the perspective of many operation in Spack (database, build cache, etc) a different
|
||||
# DAG hash means a different spec. Here we ensure that two otherwise identical specs, one
|
||||
# serialized before the hash change and one after, are considered different.
|
||||
yield self.dag_hash() if self.concrete else None
|
||||
|
||||
# This needs to be in _cmp_iter so that no specs with different process hashes
|
||||
# are considered the same by `__hash__` or `__eq__`.
|
||||
#
|
||||
@@ -4908,7 +4848,7 @@ def from_node_dict(cls, node):
|
||||
spec.external_modules = node["external"]["module"]
|
||||
if spec.external_modules is False:
|
||||
spec.external_modules = None
|
||||
spec.extra_attributes = node["external"].get("extra_attributes", {})
|
||||
spec.extra_attributes = node["external"].get("extra_attributes") or {}
|
||||
|
||||
# specs read in are concrete unless marked abstract
|
||||
if node.get("concrete", True):
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
import io
|
||||
import os
|
||||
import subprocess
|
||||
from urllib.error import HTTPError
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -15,6 +17,7 @@
|
||||
import spack.paths as spack_paths
|
||||
import spack.repo as repo
|
||||
import spack.util.git
|
||||
from spack.test.conftest import MockHTTPResponse
|
||||
|
||||
pytestmark = [pytest.mark.usefixtures("mock_packages")]
|
||||
|
||||
@@ -162,38 +165,8 @@ def test_import_signing_key(mock_gnupghome):
|
||||
ci.import_signing_key(signing_key)
|
||||
|
||||
|
||||
class FakeWebResponder:
|
||||
def __init__(self, response_code=200, content_to_read=[]):
|
||||
self._resp_code = response_code
|
||||
self._content = content_to_read
|
||||
self._read = [False for c in content_to_read]
|
||||
|
||||
def open(self, request, data=None, timeout=object()):
|
||||
return self
|
||||
|
||||
def getcode(self):
|
||||
return self._resp_code
|
||||
|
||||
def read(self, length=None):
|
||||
if len(self._content) <= 0:
|
||||
return None
|
||||
|
||||
if not self._read[-1]:
|
||||
return_content = self._content[-1]
|
||||
if length:
|
||||
self._read[-1] = True
|
||||
else:
|
||||
self._read.pop()
|
||||
self._content.pop()
|
||||
return return_content
|
||||
|
||||
self._read.pop()
|
||||
self._content.pop()
|
||||
return None
|
||||
|
||||
|
||||
def test_download_and_extract_artifacts(tmpdir, monkeypatch, working_env):
|
||||
os.environ.update({"GITLAB_PRIVATE_TOKEN": "faketoken"})
|
||||
def test_download_and_extract_artifacts(tmpdir, monkeypatch):
|
||||
monkeypatch.setenv("GITLAB_PRIVATE_TOKEN", "faketoken")
|
||||
|
||||
url = "https://www.nosuchurlexists.itsfake/artifacts.zip"
|
||||
working_dir = os.path.join(tmpdir.strpath, "repro")
|
||||
@@ -201,10 +174,13 @@ def test_download_and_extract_artifacts(tmpdir, monkeypatch, working_env):
|
||||
spack_paths.test_path, "data", "ci", "gitlab", "artifacts.zip"
|
||||
)
|
||||
|
||||
with open(test_artifacts_path, "rb") as fd:
|
||||
fake_responder = FakeWebResponder(content_to_read=[fd.read()])
|
||||
def _urlopen_OK(*args, **kwargs):
|
||||
with open(test_artifacts_path, "rb") as f:
|
||||
return MockHTTPResponse(
|
||||
"200", "OK", {"Content-Type": "application/zip"}, io.BytesIO(f.read())
|
||||
)
|
||||
|
||||
monkeypatch.setattr(ci, "build_opener", lambda handler: fake_responder)
|
||||
monkeypatch.setattr(ci, "urlopen", _urlopen_OK)
|
||||
|
||||
ci.download_and_extract_artifacts(url, working_dir)
|
||||
|
||||
@@ -214,7 +190,11 @@ def test_download_and_extract_artifacts(tmpdir, monkeypatch, working_env):
|
||||
found_install = fs.find(working_dir, "install.sh")
|
||||
assert len(found_install) == 1
|
||||
|
||||
fake_responder._resp_code = 400
|
||||
def _urlopen_500(*args, **kwargs):
|
||||
raise HTTPError(url, 500, "Internal Server Error", {}, None)
|
||||
|
||||
monkeypatch.setattr(ci, "urlopen", _urlopen_500)
|
||||
|
||||
with pytest.raises(spack.error.SpackError):
|
||||
ci.download_and_extract_artifacts(url, working_dir)
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ def test_requirement_adds_version_satisfies(
|
||||
|
||||
# Sanity check: early version of T does not include U
|
||||
s0 = spack.concretize.concretize_one("t@2.0")
|
||||
assert not ("u" in s0)
|
||||
assert "u" not in s0
|
||||
|
||||
conf_str = """\
|
||||
packages:
|
||||
|
||||
@@ -457,7 +457,7 @@ def bpp_path(spec):
|
||||
|
||||
def _repoerr(repo, name):
|
||||
if name == "cmake":
|
||||
raise spack.repo.RepoError(repo_err_msg)
|
||||
raise spack.error.RepoError(repo_err_msg)
|
||||
else:
|
||||
return orig_dirname(repo, name)
|
||||
|
||||
@@ -476,7 +476,7 @@ def _repoerr(repo, name):
|
||||
# Now try the error path, which requires the mock directory structure
|
||||
# above
|
||||
monkeypatch.setattr(spack.repo.Repo, "dirname_for_package_name", _repoerr)
|
||||
with pytest.raises(spack.repo.RepoError, match=repo_err_msg):
|
||||
with pytest.raises(spack.error.RepoError, match=repo_err_msg):
|
||||
inst.dump_packages(spec, path)
|
||||
|
||||
out = str(capsys.readouterr()[1])
|
||||
|
||||
@@ -472,9 +472,6 @@ def test_concrete_specs_which_satisfies_abstract(self, lhs, rhs, default_mock_co
|
||||
("mpileaks^mpich@2.0^callpath@1.7", "^mpich@1:3^callpath@1.4:1.6"),
|
||||
("mpileaks^mpich@4.0^callpath@1.7", "^mpich@1:3^callpath@1.4:1.6"),
|
||||
("mpileaks^mpi@3", "^mpi@1.2:1.6"),
|
||||
("mpileaks^mpi@3:", "^mpich2@1.4"),
|
||||
("mpileaks^mpi@3:", "^mpich2"),
|
||||
("mpileaks^mpi@3:", "^mpich@1.0"),
|
||||
("mpich~foo", "mpich+foo"),
|
||||
("mpich+foo", "mpich~foo"),
|
||||
("mpich foo=True", "mpich foo=False"),
|
||||
@@ -705,9 +702,9 @@ def test_copy_satisfies_transitive(self):
|
||||
assert copy[s.name].satisfies(s)
|
||||
|
||||
def test_intersects_virtual(self):
|
||||
assert Spec("mpich").intersects(Spec("mpi"))
|
||||
assert Spec("mpich2").intersects(Spec("mpi"))
|
||||
assert Spec("zmpi").intersects(Spec("mpi"))
|
||||
assert spack.concretize.concretize_one("mpich").intersects("mpi")
|
||||
assert spack.concretize.concretize_one("mpich2").intersects("mpi")
|
||||
assert spack.concretize.concretize_one("zmpi").intersects("mpi")
|
||||
|
||||
def test_intersects_virtual_providers(self):
|
||||
"""Tests that we can always intersect virtual providers from abstract specs.
|
||||
@@ -1829,9 +1826,6 @@ def test_abstract_contains_semantic(lhs, rhs, expected, mock_packages):
|
||||
(Spec, "cppflags=-foo", "cflags=-foo", (True, False, False)),
|
||||
# Versions
|
||||
(Spec, "@0.94h", "@:0.94i", (True, True, False)),
|
||||
# Different virtuals intersect if there is at least package providing both
|
||||
(Spec, "mpi", "lapack", (True, False, False)),
|
||||
(Spec, "mpi", "pkgconfig", (False, False, False)),
|
||||
# Intersection among target ranges for different architectures
|
||||
(Spec, "target=x86_64:", "target=ppc64le:", (False, False, False)),
|
||||
(Spec, "target=x86_64:", "target=:power9", (False, False, False)),
|
||||
@@ -1989,3 +1983,26 @@ def test_equality_discriminate_on_propagation(lhs, rhs):
|
||||
|
||||
def test_comparison_multivalued_variants():
|
||||
assert Spec("x=a") < Spec("x=a,b") < Spec("x==a,b") < Spec("x==a,b,c")
|
||||
|
||||
|
||||
def test_comparison_after_breaking_hash_change():
|
||||
# We simulate a breaking change in DAG hash computation in Spack. We have two specs that are
|
||||
# entirely equal modulo DAG hash. When deserializing these specs, we don't want them to compare
|
||||
# as equal, because DAG hash is used throughout in Spack to distinguish between specs
|
||||
# (e.g. database, build caches, install dir).
|
||||
s = Spec("example@=1.0")
|
||||
s._mark_concrete(True)
|
||||
|
||||
# compute the dag hash and a change to it
|
||||
dag_hash = s.dag_hash()
|
||||
new_dag_hash = f"{'b' if dag_hash[0] == 'a' else 'a'}{dag_hash[1:]}"
|
||||
|
||||
before_breakage = s.to_dict()
|
||||
after_breakage = s.to_dict()
|
||||
after_breakage["spec"]["nodes"][0]["hash"] = new_dag_hash
|
||||
assert before_breakage != after_breakage
|
||||
|
||||
x = Spec.from_dict(before_breakage)
|
||||
y = Spec.from_dict(after_breakage)
|
||||
assert x != y
|
||||
assert len({x, y}) == 2
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
import spack.binary_distribution
|
||||
import spack.cmd
|
||||
import spack.concretize
|
||||
import spack.error
|
||||
import spack.platforms.test
|
||||
import spack.repo
|
||||
import spack.spec
|
||||
@@ -1139,7 +1140,7 @@ def test_parse_filename_missing_slash_as_spec(specfile_for, tmpdir, filename):
|
||||
|
||||
# Check that if we concretize this spec, we get a good error
|
||||
# message that mentions we might've meant a file.
|
||||
with pytest.raises(spack.repo.UnknownEntityError) as exc_info:
|
||||
with pytest.raises(spack.error.UnknownEntityError) as exc_info:
|
||||
spack.concretize.concretize_one(spec)
|
||||
assert exc_info.value.long_message
|
||||
assert (
|
||||
|
||||
@@ -436,8 +436,8 @@ def _dump_annotated(handler, data, stream=None):
|
||||
width = max(clen(a) for a in _ANNOTATIONS)
|
||||
formats = ["%%-%ds %%s\n" % (width + cextra(a)) for a in _ANNOTATIONS]
|
||||
|
||||
for f, a, l in zip(formats, _ANNOTATIONS, lines):
|
||||
stream.write(f % (a, l))
|
||||
for fmt, annotation, line in zip(formats, _ANNOTATIONS, lines):
|
||||
stream.write(fmt % (annotation, line))
|
||||
|
||||
if getvalue:
|
||||
return getvalue()
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
from llnl.util.filesystem import mkdirp, working_dir
|
||||
|
||||
import spack.caches
|
||||
import spack.error
|
||||
import spack.fetch_strategy
|
||||
import spack.paths
|
||||
import spack.repo
|
||||
@@ -78,7 +79,7 @@ def pkg(self):
|
||||
try:
|
||||
pkg = spack.repo.PATH.get_pkg_class(self.pkg_name)
|
||||
pkg.git
|
||||
except (spack.repo.RepoError, AttributeError) as e:
|
||||
except (spack.error.RepoError, AttributeError) as e:
|
||||
raise VersionLookupError(f"Couldn't get the git repo for {self.pkg_name}") from e
|
||||
self._pkg = pkg
|
||||
return self._pkg
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[project]
|
||||
name="spack"
|
||||
description="The spack package manager"
|
||||
requires-python=">=3.6"
|
||||
dependencies=[
|
||||
"clingo",
|
||||
"setuptools",
|
||||
@@ -67,9 +68,42 @@ features = [
|
||||
"ci",
|
||||
]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 99
|
||||
extend-include = ["bin/spack"]
|
||||
extend-exclude = ["lib/spack/external", "*.pyi"]
|
||||
|
||||
[tool.ruff.format]
|
||||
skip-magic-trailing-comma = true
|
||||
|
||||
[tool.ruff.lint]
|
||||
extend-select = ["I"]
|
||||
ignore = ["E731", "E203"]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
split-on-trailing-comma = false
|
||||
section-order = [
|
||||
"future",
|
||||
"standard-library",
|
||||
"third-party",
|
||||
"archspec",
|
||||
"llnl",
|
||||
"spack",
|
||||
"first-party",
|
||||
"local-folder",
|
||||
]
|
||||
|
||||
[tool.ruff.lint.isort.sections]
|
||||
spack = ["spack"]
|
||||
archspec = ["archspec"]
|
||||
llnl = ["llnl"]
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"var/spack/repos/*/package.py" = ["F403", "F405", "F811", "F821"]
|
||||
"*-ci-package.py" = ["F403", "F405", "F821"]
|
||||
|
||||
[tool.black]
|
||||
line-length = 99
|
||||
target-version = ['py36', 'py37', 'py38', 'py39', 'py310']
|
||||
include = '(lib/spack|var/spack/repos)/.*\.pyi?$|bin/spack$'
|
||||
extend-exclude = 'lib/spack/external'
|
||||
skip_magic_trailing_comma = true
|
||||
|
||||
@@ -539,57 +539,6 @@ data-vis-sdk-build:
|
||||
- artifacts: True
|
||||
job: data-vis-sdk-generate
|
||||
|
||||
########################################
|
||||
# AWS ISC Applications (x86_64)
|
||||
########################################
|
||||
|
||||
# Call this AFTER .*-generate
|
||||
.aws-isc-overrides:
|
||||
# This controls image for generate step; build step is controlled by spack.yaml
|
||||
# Note that generator emits OS info for build so these should be the same.
|
||||
image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] }
|
||||
|
||||
.aws-isc:
|
||||
extends: [ ".linux_x86_64_v3" ]
|
||||
variables:
|
||||
SPACK_CI_STACK_NAME: aws-isc
|
||||
|
||||
aws-isc-generate:
|
||||
extends: [ ".aws-isc", ".generate-x86_64", ".aws-isc-overrides", ".tags-x86_64_v4" ]
|
||||
|
||||
aws-isc-build:
|
||||
extends: [ ".aws-isc", ".build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: aws-isc-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: aws-isc-generate
|
||||
|
||||
# Parallel Pipeline for aarch64 (reuses override image, but generates and builds on aarch64)
|
||||
|
||||
.aws-isc-aarch64:
|
||||
extends: [ ".linux_aarch64" ]
|
||||
variables:
|
||||
SPACK_CI_STACK_NAME: aws-isc-aarch64
|
||||
|
||||
aws-isc-aarch64-generate:
|
||||
extends: [ ".aws-isc-aarch64", ".generate-aarch64", ".aws-isc-overrides" ]
|
||||
|
||||
aws-isc-aarch64-build:
|
||||
extends: [ ".aws-isc-aarch64", ".build" ]
|
||||
trigger:
|
||||
include:
|
||||
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
||||
job: aws-isc-aarch64-generate
|
||||
strategy: depend
|
||||
needs:
|
||||
- artifacts: True
|
||||
job: aws-isc-aarch64-generate
|
||||
|
||||
|
||||
########################################
|
||||
# Spack Tutorial
|
||||
########################################
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
spack:
|
||||
view: false
|
||||
packages:
|
||||
all:
|
||||
providers:
|
||||
blas:
|
||||
- openblas
|
||||
mkl:
|
||||
- intel-oneapi-mkl
|
||||
mpi:
|
||||
- openmpi
|
||||
- mpich
|
||||
variants: +mpi
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
version:
|
||||
- 2.36.1
|
||||
doxygen:
|
||||
version:
|
||||
- 1.8.20
|
||||
elfutils:
|
||||
variants: ~nls
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
libfabric:
|
||||
variants: fabrics=efa,tcp,udp,sockets,verbs,shm,mrail,rxd,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
mesa:
|
||||
variants: ~llvm
|
||||
mpich:
|
||||
variants: ~wrapperrpath netmod=ofi device=ch4
|
||||
ncurses:
|
||||
variants: +termlib
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
openmpi:
|
||||
variants: fabrics=ofi +legacylaunchers
|
||||
openturns:
|
||||
version:
|
||||
- '1.18'
|
||||
relion:
|
||||
variants: ~mklfft
|
||||
# texlive:
|
||||
# version: [20210325]
|
||||
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
|
||||
|
||||
definitions:
|
||||
|
||||
- compiler_specs:
|
||||
- gcc@11.2
|
||||
# Licensing OK?
|
||||
# - intel-oneapi-compilers@2022.1
|
||||
# - nvhpc
|
||||
|
||||
- app_specs:
|
||||
- bwa
|
||||
# Depends on simde which requires newer compiler?
|
||||
#- bowtie2
|
||||
# Requires x86_64 specific ASM
|
||||
#- cistem
|
||||
- cromwell
|
||||
- fastqc
|
||||
- flux-sched
|
||||
- flux-core
|
||||
- flux-pmix
|
||||
- gatk
|
||||
- gromacs
|
||||
- lammps
|
||||
- wrf build_type=dm+sm
|
||||
- mfem
|
||||
- mpas-model ^parallelio+pnetcdf
|
||||
- nextflow
|
||||
- octave
|
||||
- openfoam
|
||||
- osu-micro-benchmarks
|
||||
- parallel
|
||||
# - paraview
|
||||
- picard
|
||||
- quantum-espresso
|
||||
- raja
|
||||
# Depends on bowtie2 -> simde which requires newer compiler?
|
||||
#- rsem
|
||||
# Errors on texlive
|
||||
#- rstudio
|
||||
- salmon
|
||||
- samtools
|
||||
- seqtk
|
||||
- snakemake
|
||||
- star
|
||||
# Requires gcc@9:
|
||||
#- ufs-weather-model
|
||||
# requires LLVM which fails without constraint
|
||||
#- visit
|
||||
|
||||
- lib_specs:
|
||||
- openmpi fabrics=ofi
|
||||
- openmpi fabrics=ofi +legacylaunchers
|
||||
- openmpi fabrics=auto
|
||||
- mpich
|
||||
- libfabric
|
||||
|
||||
- compiler:
|
||||
- '%gcc@7.3.1'
|
||||
|
||||
- target:
|
||||
- target=aarch64
|
||||
|
||||
|
||||
specs:
|
||||
|
||||
- matrix:
|
||||
- - $app_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
- matrix:
|
||||
- - $lib_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
- matrix:
|
||||
- - $compiler_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: {name: ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09, entrypoint: ['']}
|
||||
|
||||
cdash:
|
||||
build-group: AWS Packages
|
||||
@@ -1,153 +0,0 @@
|
||||
spack:
|
||||
view: false
|
||||
packages:
|
||||
all:
|
||||
providers:
|
||||
blas:
|
||||
- openblas
|
||||
mkl:
|
||||
- intel-oneapi-mkl
|
||||
mpi:
|
||||
- openmpi
|
||||
- mpich
|
||||
variants: +mpi
|
||||
tbb:
|
||||
require: intel-tbb
|
||||
binutils:
|
||||
variants: +ld +gold +headers +libiberty ~nls
|
||||
version:
|
||||
- 2.36.1
|
||||
doxygen:
|
||||
version:
|
||||
- 1.8.20
|
||||
elfutils:
|
||||
variants: ~nls
|
||||
hdf5:
|
||||
variants: +fortran +hl +shared
|
||||
libfabric:
|
||||
variants: fabrics=efa,tcp,udp,sockets,verbs,shm,mrail,rxd,rxm
|
||||
libunwind:
|
||||
variants: +pic +xz
|
||||
mesa:
|
||||
variants: ~llvm
|
||||
mpich:
|
||||
variants: ~wrapperrpath netmod=ofi device=ch4
|
||||
ncurses:
|
||||
variants: +termlib
|
||||
openblas:
|
||||
variants: threads=openmp
|
||||
openmpi:
|
||||
variants: fabrics=ofi +legacylaunchers
|
||||
openturns:
|
||||
version:
|
||||
- '1.18'
|
||||
relion:
|
||||
variants: ~mklfft
|
||||
# texlive:
|
||||
# version: [20210325]
|
||||
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
|
||||
|
||||
definitions:
|
||||
|
||||
- compiler_specs:
|
||||
- gcc@11.2
|
||||
# Licensing OK?
|
||||
# - intel-oneapi-compilers@2022.1
|
||||
# - nvhpc
|
||||
|
||||
- cuda_specs:
|
||||
# Disabled for consistency with aarch64
|
||||
#- relion +cuda cuda_arch=70
|
||||
- raja +cuda cuda_arch=70
|
||||
- mfem +cuda cuda_arch=70
|
||||
|
||||
- app_specs:
|
||||
- bwa
|
||||
# Disabled for consistency with aarch64
|
||||
#- bowtie2
|
||||
# Disabled for consistency with aarch64
|
||||
#- cistem
|
||||
- cromwell
|
||||
- fastqc
|
||||
- flux-sched
|
||||
- flux-core
|
||||
- flux-pmix
|
||||
- gatk
|
||||
- gromacs
|
||||
- lammps
|
||||
- wrf build_type=dm+sm
|
||||
- mfem
|
||||
- mpas-model ^parallelio+pnetcdf
|
||||
- nextflow
|
||||
- octave
|
||||
- openfoam
|
||||
- osu-micro-benchmarks
|
||||
- parallel
|
||||
# - paraview
|
||||
- picard
|
||||
- quantum-espresso
|
||||
# Build broken for gcc@7.3.1 x86_64_v4 (error: '_mm512_loadu_epi32' was not declared in this scope)
|
||||
#- raja
|
||||
# Disabled for consistency with aarch64
|
||||
#- rsem
|
||||
# Errors on texlive
|
||||
#- rstudio
|
||||
- salmon
|
||||
- samtools
|
||||
- seqtk
|
||||
- snakemake
|
||||
- star
|
||||
# Requires gcc@9:
|
||||
#- ufs-weather-model
|
||||
# Disabled for consistency with aarch64
|
||||
#- visit
|
||||
|
||||
- lib_specs:
|
||||
- openmpi fabrics=ofi
|
||||
- openmpi fabrics=ofi +legacylaunchers
|
||||
- openmpi fabrics=auto
|
||||
- mpich
|
||||
- libfabric
|
||||
|
||||
- compiler:
|
||||
- '%gcc@7.3.1'
|
||||
|
||||
- target:
|
||||
- target=x86_64_v3
|
||||
|
||||
|
||||
specs:
|
||||
|
||||
- matrix:
|
||||
- - $cuda_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
- matrix:
|
||||
- - $app_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
- matrix:
|
||||
- - $lib_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
- matrix:
|
||||
- - $compiler_specs
|
||||
- - $compiler
|
||||
- - $target
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: {name: ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09, entrypoint: ['']}
|
||||
|
||||
cdash:
|
||||
build-group: AWS Packages
|
||||
@@ -13,29 +13,41 @@ spack:
|
||||
mpi: [mpich]
|
||||
tbb: [intel-tbb]
|
||||
variants: +mpi
|
||||
acts:
|
||||
require: +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python ~svg +tgeo cxxstd=20
|
||||
celeritas:
|
||||
require: +geant4 +hepmc3 +root +shared cxxstd=20
|
||||
hip:
|
||||
require: '@5.7.1 +rocm'
|
||||
root:
|
||||
require: +davix +dcache +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +mysql +opengl +postgres +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +threads +tmva +tmva-cpu +unuran +vc +vdt +veccore +webgui +x +xml +xrootd # cxxstd=20
|
||||
# note: root cxxstd=20 not concretizable within sherpa
|
||||
vecgeom:
|
||||
require: +gdml +geant4 +root +shared cxxstd=20
|
||||
|
||||
# Mark geant4 data as external to prevent wasting bandwidth on GB-scale files
|
||||
geant4-data:
|
||||
buildable: false
|
||||
externals:
|
||||
- spec: geant4-data@11.3.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.2
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.1.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.0.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.3.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.2
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.2.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.1.0
|
||||
prefix: /usr
|
||||
- spec: geant4-data@11.0.0
|
||||
prefix: /usr
|
||||
|
||||
specs:
|
||||
# CPU
|
||||
- acts +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python +tgeo cxxstd=20
|
||||
- acts ~cuda
|
||||
#- agile # fails on c++>11 compiler
|
||||
- alpgen
|
||||
- ampt
|
||||
- apfel +lhapdf +python
|
||||
- celeritas +geant4 +hepmc3 +openmp +root +shared +vecgeom cxxstd=20
|
||||
- celeritas ~cuda +openmp ~rocm +vecgeom
|
||||
- cepgen
|
||||
- cernlib +shared
|
||||
- collier
|
||||
@@ -82,19 +94,28 @@ spack:
|
||||
- py-vector
|
||||
- pythia8 +evtgen +fastjet +hdf5 +hepmc +hepmc3 +lhapdf ~madgraph5amc +python +rivet ~root # pythia8 and root circularly depend
|
||||
- rivet hepmc=3
|
||||
- root +davix +dcache +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +mysql +opengl +postgres +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +threads +tmva +unuran +vc +vdt +veccore +webgui +x +xml +xrootd
|
||||
- sherpa +analysis ~blackhat +gzip +hepmc3 +hepmc3root +lhapdf +lhole +openloops +pythia ~python ~recola ~rivet +root +ufo
|
||||
- root ~cuda
|
||||
- sherpa +analysis ~blackhat +gzip +hepmc3 +hepmc3root +lhapdf +lhole +openloops +pythia ~python ~recola ~rivet +root +ufo cxxstd=20
|
||||
- tauola +hepmc3 +lhapdf cxxstd=20
|
||||
- thepeg hepmc=3 ~rivet
|
||||
- vecgeom +gdml +geant4 +root
|
||||
- vecgeom ~cuda
|
||||
- whizard +fastjet +gosam hepmc=3 +lcio +lhapdf +openloops +openmp +pythia8
|
||||
- xrootd +davix +http +krb5 +python +readline +scitokens-cpp
|
||||
- yoda +root
|
||||
|
||||
# CUDA
|
||||
#- acts +cuda +traccc cuda_arch=80
|
||||
#- celeritas +cuda ~openmp +vecgeom cuda_arch=80
|
||||
- root +cuda +cudnn +tmva-gpu
|
||||
- vecgeom +cuda cuda_arch=80
|
||||
|
||||
# ROCm
|
||||
- celeritas +rocm amdgpu_target=gfx90a ~openmp ~vecgeom # only available with ORANGE
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image: "ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01"
|
||||
image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
|
||||
|
||||
cdash:
|
||||
build-group: HEP
|
||||
|
||||
@@ -18,7 +18,7 @@ spack:
|
||||
- hdf5+hl+mpi ^mpich
|
||||
- trilinos
|
||||
- trilinos +hdf5 ^hdf5+hl+mpi ^mpich
|
||||
- gcc@12.3.0
|
||||
- gcc@12
|
||||
- mpileaks
|
||||
- lmod@8.7.18
|
||||
- environment-modules
|
||||
|
||||
@@ -36,7 +36,7 @@ bin/spack -h
|
||||
bin/spack help -a
|
||||
|
||||
# Profile and print top 20 lines for a simple call to spack spec
|
||||
spack -p --lines 20 spec mpileaks%gcc ^dyninst@10.0.0 ^elfutils@0.170
|
||||
spack -p --lines 20 spec mpileaks%gcc
|
||||
$coverage_run $(which spack) bootstrap status --dev --optional
|
||||
|
||||
# Check that we can import Spack packages directly as a first import
|
||||
|
||||
@@ -32,7 +32,7 @@ def edit(self, spec, prefix):
|
||||
# Dictionary mapping: compiler-name : ACE config-label
|
||||
supported = {"intel": "_icc", "gcc": ""}
|
||||
|
||||
if not (self.compiler.name in supported):
|
||||
if self.compiler.name not in supported:
|
||||
raise Exception(
|
||||
"compiler " + self.compiler.name + " not supported in ace spack-package"
|
||||
)
|
||||
|
||||
@@ -40,6 +40,7 @@ class Acts(CMakePackage, CudaPackage):
|
||||
# Supported Acts versions
|
||||
version("main", branch="main")
|
||||
version("master", branch="main", deprecated=True) # For compatibility
|
||||
version("39.0.0", commit="b055202e2fbdd509bc186eb4782714bc46f38f3f", submodules=True)
|
||||
version("38.2.0", commit="9cb8f4494656553fd9b85955938b79b2fac4c9b0", submodules=True)
|
||||
version("38.1.0", commit="8a20c88808f10bf4fcdfd7c6e077f23614c3ab90", submodules=True)
|
||||
version("38.0.0", commit="0a6b5155e29e3b755bf351b8a76067fff9b4214b", submodules=True)
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
import os
|
||||
|
||||
from spack.build_environment import optimization_flags
|
||||
from spack.package import *
|
||||
from spack.pkg.builtin.fftw import FftwBase
|
||||
|
||||
@@ -95,14 +94,14 @@ class Amdfftw(FftwBase):
|
||||
)
|
||||
variant(
|
||||
"amd-dynamic-dispatcher",
|
||||
default=True,
|
||||
default=False,
|
||||
when="@4.1: %aocc@4.1.0:",
|
||||
description="Single portable optimized library"
|
||||
" to execute on different x86 CPU architectures",
|
||||
)
|
||||
variant(
|
||||
"amd-dynamic-dispatcher",
|
||||
default=True,
|
||||
default=False,
|
||||
when="@3.2: %gcc",
|
||||
description="Single portable optimized library"
|
||||
" to execute on different x86 CPU architectures",
|
||||
@@ -203,11 +202,10 @@ def configure(self, spec, prefix):
|
||||
if not self.compiler.f77 or not self.compiler.fc:
|
||||
options.append("--disable-fortran")
|
||||
|
||||
# Cross compilation is supported in amd-fftw by making use of target
|
||||
# variable to set AMD_ARCH configure option.
|
||||
# Spack user can not directly use AMD_ARCH for this purpose but should
|
||||
# use target variable to set appropriate -march option in AMD_ARCH.
|
||||
options.append(f"AMD_ARCH={optimization_flags(self.compiler, spec.target)}")
|
||||
if "avx512" in spec.target:
|
||||
options.append("CFLAGS=-mprefer-vector-width=512")
|
||||
else:
|
||||
options.append("CFLAGS=-mprefer-vector-width=256")
|
||||
|
||||
# Specific SIMD support.
|
||||
# float and double precisions are supported
|
||||
|
||||
@@ -25,6 +25,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("develop", branch="development")
|
||||
version("25.02", sha256="2680a5a9afba04e211cd48d27799c5a25abbb36c6c3d2b6c13cd4757c7176b23")
|
||||
version("25.01", sha256="29eb35cf67d66b0fd0654282454c210abfadf27fcff8478b256e3196f237c74f")
|
||||
version("24.12", sha256="ca4b41ac73fabb9cf3600b530c9823eb3625f337d9b7b9699c1089e81c67fc67")
|
||||
version("24.11", sha256="31cc37b39f15e02252875815f6066046fc56a479bf459362b9889b0d6a202df6")
|
||||
@@ -360,7 +361,7 @@ def cmake_args(self):
|
||||
args.append("-DAMReX_GPU_BACKEND=SYCL")
|
||||
# SYCL GPU backend only supported with Intel's oneAPI or DPC++ compilers
|
||||
sycl_compatible_compilers = ["icpx"]
|
||||
if not (os.path.basename(self.compiler.cxx) in sycl_compatible_compilers):
|
||||
if os.path.basename(self.compiler.cxx) not in sycl_compatible_compilers:
|
||||
raise InstallError(
|
||||
"AMReX's SYCL GPU Backend requires the oneAPI CXX (icpx) compiler."
|
||||
)
|
||||
|
||||
@@ -148,6 +148,14 @@ class Ascent(CMakePackage, CudaPackage):
|
||||
# https://github.com/Alpine-DAV/ascent/pull/1123
|
||||
patch("ascent-find-raja-pr1123.patch", when="@0.9.0")
|
||||
|
||||
# patch for fix typo in coord_type
|
||||
# https://github.com/Alpine-DAV/ascent/pull/1408
|
||||
patch(
|
||||
"https://github.com/Alpine-DAV/ascent/pull/1408.patch?full_index=1",
|
||||
when="@0.9.3 %oneapi@2025:",
|
||||
sha256="7de7f51e57f3d743c39ad80d8783a4eb482be1def51eb2d3f9259246c661f164",
|
||||
)
|
||||
|
||||
##########################################################################
|
||||
# package dependencies
|
||||
###########################################################################
|
||||
@@ -468,6 +476,9 @@ def hostconfig(self):
|
||||
if cflags:
|
||||
cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
|
||||
cxxflags = cppflags + " ".join(spec.compiler_flags["cxxflags"])
|
||||
if spec.satisfies("%oneapi@2025:"):
|
||||
cxxflags += "-Wno-error=missing-template-arg-list-after-template-kw "
|
||||
cxxflags += "-Wno-missing-template-arg-list-after-template-kw"
|
||||
if cxxflags:
|
||||
cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
|
||||
fflags = " ".join(spec.compiler_flags["fflags"])
|
||||
|
||||
@@ -23,6 +23,10 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("libtool", type="build")
|
||||
|
||||
depends_on("ncurses")
|
||||
depends_on("readline@8.2:", when="@5.2:")
|
||||
depends_on("readline@5.0:")
|
||||
|
||||
@@ -118,7 +118,7 @@ class Berkeleygw(MakefilePackage):
|
||||
def edit(self, spec, prefix):
|
||||
# archive is a tar file, despite the .gz expension
|
||||
tar = which("tar")
|
||||
tar("-x", "-f", self.stage.archive_file, "--strip-components=1")
|
||||
tar("-x", "-o", "-f", self.stage.archive_file, "--strip-components=1")
|
||||
|
||||
# get generic arch.mk template
|
||||
if spec.satisfies("+mpi"):
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
import spack.store
|
||||
from spack.package import *
|
||||
from spack.pkg.builtin.boost import Boost
|
||||
|
||||
|
||||
class CbtfKrell(CMakePackage):
|
||||
@@ -51,9 +50,17 @@ class CbtfKrell(CMakePackage):
|
||||
description="build only the FE tool using the runtime_dir to point to target build.",
|
||||
)
|
||||
|
||||
# Fix build errors with gcc >= 10
|
||||
patch(
|
||||
"https://github.com/OpenSpeedShop/cbtf-krell/commit/7d47761c6cd9110883bff9ca1e694af1475676f5.patch?full_index=1",
|
||||
sha256="64ed80d18163ca04a67be4a13ac2d2553243fc24c6274d26981472e6e2050b8a",
|
||||
)
|
||||
|
||||
# Dependencies for cbtf-krell
|
||||
depends_on("cmake@3.0.2:", type="build")
|
||||
|
||||
depends_on("gotcha")
|
||||
|
||||
# For rpcgen
|
||||
depends_on("rpcsvc-proto", type="build")
|
||||
|
||||
@@ -64,16 +71,11 @@ class CbtfKrell(CMakePackage):
|
||||
depends_on("binutils@2.32")
|
||||
|
||||
# For boost
|
||||
depends_on("boost@1.70.0:")
|
||||
|
||||
# TODO: replace this with an explicit list of components of Boost,
|
||||
# for instance depends_on('boost +filesystem')
|
||||
# See https://github.com/spack/spack/pull/22303 for reference
|
||||
depends_on(Boost.with_default_variants)
|
||||
depends_on("boost@1.70.0:+filesystem+graph+program_options+python+test+thread")
|
||||
|
||||
# For Dyninst
|
||||
depends_on("dyninst@10.1.0", when="@develop")
|
||||
depends_on("dyninst@10.1.0", when="@1.9.3:9999")
|
||||
depends_on("dyninst@10.1.0:", when="@develop")
|
||||
depends_on("dyninst@10.1.0:", when="@1.9.3:9999")
|
||||
|
||||
# For MRNet
|
||||
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.build_systems.cmake import CMakeBuilder
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -81,13 +82,22 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("py-breathe", type="build", when="+doc")
|
||||
depends_on("py-sphinx", type="build", when="+doc")
|
||||
|
||||
with when("+cuda"):
|
||||
depends_on("thrust")
|
||||
with when("+rocm"):
|
||||
depends_on("hiprand")
|
||||
depends_on("rocprim")
|
||||
depends_on("rocrand")
|
||||
depends_on("rocthrust")
|
||||
|
||||
for _std in _cxxstd_values:
|
||||
depends_on("geant4 cxxstd=" + _std, when="+geant4 cxxstd=" + _std)
|
||||
depends_on("root cxxstd=" + _std, when="+root cxxstd=" + _std)
|
||||
depends_on("vecgeom cxxstd=" + _std, when="+vecgeom cxxstd=" + _std)
|
||||
|
||||
depends_on("vecgeom +cuda cuda_arch=none", when="+vecgeom +cuda cuda_arch=none")
|
||||
for _arch in CudaPackage.cuda_arch_values:
|
||||
depends_on("vecgeom+cuda cuda_arch=" + _arch, when="+vecgeom +cuda cuda_arch=" + _arch)
|
||||
depends_on(f"vecgeom +cuda cuda_arch={_arch}", when=f"+vecgeom +cuda cuda_arch={_arch}")
|
||||
|
||||
conflicts("+rocm", when="+cuda", msg="AMD and NVIDIA accelerators are incompatible")
|
||||
conflicts("+rocm", when="+vecgeom", msg="HIP support is only available with ORANGE")
|
||||
@@ -111,7 +121,7 @@ def cmake_args(self):
|
||||
from_variant("CELERITAS_BUILD_DOCS", "doc"),
|
||||
define("CELERITAS_BUILD_DEMOS", False),
|
||||
define("CELERITAS_BUILD_TESTS", False),
|
||||
from_variant("Celeritas_USE_HIP", "rocm"),
|
||||
from_variant("CELERITAS_USE_HIP", "rocm"),
|
||||
define("CELERITAS_USE_MPI", False),
|
||||
define("CELERITAS_USE_Python", True),
|
||||
]
|
||||
@@ -119,6 +129,22 @@ def cmake_args(self):
|
||||
for pkg in ["CUDA", "Geant4", "HepMC3", "OpenMP", "ROOT", "SWIG", "VecGeom"]:
|
||||
args.append(from_variant("CELERITAS_USE_" + pkg, pkg.lower()))
|
||||
|
||||
if self.spec.satisfies("+cuda"):
|
||||
args.append(CMakeBuilder.define_cuda_architectures(self))
|
||||
if self.spec.satisfies("+rocm"):
|
||||
args.append(CMakeBuilder.define_hip_architectures(self))
|
||||
args.append(
|
||||
define(
|
||||
"CMAKE_HIP_FLAGS",
|
||||
" ".join(
|
||||
[
|
||||
f"-I{self.spec[p].prefix.include}"
|
||||
for p in ["hiprand", "rocprim", "rocrand", "rocthrust"]
|
||||
]
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
if self.version < Version("0.5"):
|
||||
# JSON is required for 0.5 and later
|
||||
args.append(define("CELERITAS_USE_JSON", True))
|
||||
|
||||
@@ -276,7 +276,7 @@ def charmarch(self):
|
||||
# build-target=LIBS backend={0}'.format(b))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
if not ("backend=mpi" in self.spec) or not ("backend=netlrts" in self.spec):
|
||||
if "backend=mpi" not in self.spec or "backend=netlrts" not in self.spec:
|
||||
if self.spec.satisfies("+pthreads"):
|
||||
raise InstallError(
|
||||
"The pthreads option is only available on the Netlrts and MPI network layers."
|
||||
|
||||
@@ -92,9 +92,9 @@ def pgo_train(self):
|
||||
|
||||
# Set PGO training flags.
|
||||
generate_mods = EnvironmentModifications()
|
||||
generate_mods.append_flags("CFLAGS", "-fprofile-generate={}".format(reports))
|
||||
generate_mods.append_flags("CXXFLAGS", "-fprofile-generate={}".format(reports))
|
||||
generate_mods.append_flags("LDFLAGS", "-fprofile-generate={} --verbose".format(reports))
|
||||
generate_mods.append_flags("CFLAGS", f"-fprofile-generate={reports}")
|
||||
generate_mods.append_flags("CXXFLAGS", f"-fprofile-generate={reports}")
|
||||
generate_mods.append_flags("LDFLAGS", f"-fprofile-generate={reports}")
|
||||
|
||||
with working_dir(self.build_directory, create=True):
|
||||
cmake(*cmake_options, sources, extra_env=generate_mods)
|
||||
@@ -118,14 +118,14 @@ def pgo_train(self):
|
||||
# Clean the build dir.
|
||||
rmtree(self.build_directory, ignore_errors=True)
|
||||
|
||||
if self.spec.satisfies("%clang") or self.spec.satisfies("apple-clang"):
|
||||
if self.spec.satisfies("%clang") or self.spec.satisfies("%apple-clang"):
|
||||
# merge reports
|
||||
use_report = join_path(reports, "merged.prof")
|
||||
raw_files = glob.glob(join_path(reports, "*.profraw"))
|
||||
llvm_profdata("merge", "--output={}".format(use_report), *raw_files)
|
||||
use_flag = "-fprofile-instr-use={}".format(use_report)
|
||||
llvm_profdata("merge", f"--output={use_report}", *raw_files)
|
||||
use_flag = f"-fprofile-instr-use={use_report}"
|
||||
else:
|
||||
use_flag = "-fprofile-use={}".format(reports)
|
||||
use_flag = f"-fprofile-use={reports}"
|
||||
|
||||
# Set PGO use flags for next cmake phase.
|
||||
use_mods = EnvironmentModifications()
|
||||
|
||||
@@ -12,58 +12,11 @@ class CodeServer(Package):
|
||||
homepage = "https://coder.com/docs/code-server/latest"
|
||||
url = "https://github.com/coder/code-server/releases/download/v4.4.0/code-server-4.4.0-linux-amd64.tar.gz"
|
||||
|
||||
version("4.12.0", sha256="d50ee947c4144a6ff2656e664ecbb3f70b75168b8a6e8c3eef47787f3c240c26")
|
||||
version("4.11.0", sha256="4eb233054941ec298caec6fc84dfba0a72c1bc5fadc0fe4896b10f3f4a291d51")
|
||||
version("4.10.1", sha256="f34ce611a9c058982a5e9d200fdf009788e3a564e970b053f4145574bce21b09")
|
||||
version("4.4.0", sha256="e3dd265acb18c2230c72d19bbce619ac5c1bd800ebb26e5e169c4d613069500d")
|
||||
version("4.3.0", sha256="42c71e98de85270b164b023ef8eb0692cf7700c03081ba5a44eaca014a92eb57")
|
||||
version("4.2.0", sha256="98be5bc43ac604c49ae11da259e318b581757a59a25edeee5cf55317ca589ec6")
|
||||
version("4.1.0", sha256="f720b20d1f615b78f3a1be9b1614f3d99ed722b8da3047a4143dbe5835e52ce3")
|
||||
version("4.0.2", sha256="68c11afa3288707a6880920013d8bac7404cd590eb4f63cac92979d0b0bf4fd1")
|
||||
version("4.0.1", sha256="5fe6d26e9d19e685946f0f392d9c822e5303a800cac3ac54a6a2c26104d239fd")
|
||||
version("3.12.0", sha256="d3ca41a55e36d73d80300702af2687e25d440cff6b613bb58a2c88d9b8a0a38f")
|
||||
version("3.11.1", sha256="d34b0b79582196d59d44ac971aabb7f15cb05d837318b94f62470dc8475665e9")
|
||||
version("3.11.0", sha256="dddb97f044ed615a4b8a526328fca6ad703b9c671a28a6090d84668a18755589")
|
||||
version("3.10.2", sha256="47154a6b9e61a0313ba499dd5d948613a17841c2f580612f9721c31964622bf5")
|
||||
version("3.10.1", sha256="18175624df78976488dbcc2a26f2582a71cef5ca0a419e691b1b70da0b27c7ef")
|
||||
version("3.10.0", sha256="5dfce848747f3dd5074cba435cca6730ac99d6d3aa3f50e0a9bf222ad12d3e97")
|
||||
version("3.9.3", sha256="eba42eaf868c2144795b1ac54929e3b252ae35403bf8553b3412a5ac4f365a41")
|
||||
version("3.9.2", sha256="5dbda5ac598223006f72bcb700b133a752aabe4468ed8105806d1d69b5364408")
|
||||
version("3.9.1", sha256="f2648a4387c5a5be8666fb82a7b8a58274c45b91942251ab337e202e078ae8a5")
|
||||
version("3.9.0", sha256="229b0fb95d78a7f7ff0dd55bc151a7521fcd699af50151faf67f6c7ce51110f4")
|
||||
version("3.8.1", sha256="130cf94e3921d0e2adfa33e875bf1aa81fd28548aac94fd31fbc589baa68d45f")
|
||||
version("3.8.0", sha256="70b069f26b30c38cca5fa07b5f25db4d15976de80af3a644b9105d1b5e23e7d5")
|
||||
version("3.7.4", sha256="01ca0e48df44df70cdf702644b013102024a5b30edf6c1fbb2e10b0310056382")
|
||||
version("3.7.3", sha256="7a90f3171c9bc6f65266066e35cc34d48a032910c136ea21116d28f3d7214547")
|
||||
version("3.7.2", sha256="c3054f214392b1b2eb4c77c57cb950ac5d733d349a426975e8bf32028e65a226")
|
||||
version("3.7.1", sha256="bebd9e0c46e0fd4b4f295fd91fc2db135a694614db972095e9842bf7969f4cee")
|
||||
version("3.7.0", sha256="5f8df8ed3924e8e594674d73fb50b00a06efa529f96a0495a5ee8c39c68f3ce1")
|
||||
version("3.6.2", sha256="fd4ac7d61f3e1b2a5034f1706e409c77fad299adef0ede204828d8ecfe317e45")
|
||||
version("3.6.1", sha256="bbe4ef9585e093b3521deb34a0820d2136172271862d6396df21c2e9a26c6374")
|
||||
version("3.6.0", sha256="d1ae4f7263741e0551358d3ed77dad587b33b352d827623d4df25e98f9e21019")
|
||||
version("3.5.0", sha256="90c19c84611becac4af1fb0bd5324ab30f9200769fa7914cd10ccb6b88c657bb")
|
||||
version("3.4.1", sha256="afdb89f4dc7201c03cb35d4f8dc1ccb6060bd0da324a6789089de264d3406817")
|
||||
version("3.4.0", sha256="918c28696b73b96dc9361977f93e788d5c8884b5d4a088d206f05d5b8bccb738")
|
||||
version("3.3.1", sha256="57b9855b20f511e22776ee8a53d1ff30f864498814c4c0b0af3510f71d7a2969")
|
||||
version("3.3.0", sha256="6ca5148a447b41753d5151c5a49a8af24122c7b0808609782aec454e66be4f2c")
|
||||
version("3.2.0", sha256="a8157e8766d6a0e255c72db25e8677a57adb8d889d653e78750b4d26a6ff7400")
|
||||
version("3.1.1", sha256="5dd922d28b2e351c146081849d987fb1e439ee7d53b941434b2eecb2a194da71")
|
||||
version("3.1.0", sha256="5ef85c8f280ce781a176a8b77386b333efe892755a5c325a1782e4eac6016e59")
|
||||
version("3.0.2", sha256="04367cfeb23991f3dc3f1ef8e3dfe5e9d683bb50c9e1fa69e3c21757facfd7ee")
|
||||
version("4.96.4", sha256="b3f9025d00f2cdf61caf83945ef7225d4a3eb576c4c007e45868f45713e39c8e")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version <= Version("3.2.0"):
|
||||
return "https://github.com/coder/code-server/releases/download/{0}/code-server-{0}-linux-x86_64.tar.gz".format(
|
||||
version
|
||||
)
|
||||
else:
|
||||
return "https://github.com/coder/code-server/releases/download/v{0}/code-server-{0}-linux-amd64.tar.gz".format(
|
||||
version
|
||||
)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree(".", prefix)
|
||||
|
||||
|
||||
@@ -38,10 +38,11 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
git = "https://github.com/cp2k/cp2k.git"
|
||||
list_url = "https://github.com/cp2k/cp2k/releases"
|
||||
|
||||
maintainers("dev-zero", "mtaillefumier")
|
||||
maintainers("dev-zero", "mtaillefumier", "RMeli", "abussy")
|
||||
|
||||
license("GPL-2.0-or-later")
|
||||
|
||||
version("2025.1", sha256="65c8ad5488897b0f995919b9fa77f2aba4b61677ba1e3c19bb093d5c08a8ce1d")
|
||||
version("2024.3", sha256="a6eeee773b6b1fb417def576e4049a89a08a0ed5feffcd7f0b33c7d7b48f19ba")
|
||||
version("2024.2", sha256="cc3e56c971dee9e89b705a1103765aba57bf41ad39a11c89d3de04c8b8cdf473")
|
||||
version("2024.1", sha256="a7abf149a278dfd5283dc592a2c4ae803b37d040df25d62a5e35af5c4557668f")
|
||||
@@ -115,6 +116,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
)
|
||||
variant("pytorch", default=False, description="Enable libtorch support")
|
||||
variant("quip", default=False, description="Enable quip support")
|
||||
variant("dftd4", when="@2024.2:", default=False, description="Enable DFT-D4 support")
|
||||
variant("mpi_f08", default=False, description="Use MPI F08 module")
|
||||
variant("smeagol", default=False, description="Enable libsmeagol support", when="@2025.2:")
|
||||
|
||||
@@ -157,6 +159,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
)
|
||||
|
||||
depends_on("python@3", type="build")
|
||||
depends_on("pkgconfig", type="build", when="build_system=cmake")
|
||||
|
||||
depends_on("blas")
|
||||
depends_on("lapack")
|
||||
@@ -194,13 +197,14 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
)
|
||||
|
||||
with when("+libxc"):
|
||||
depends_on("pkgconfig", type="build", when="@7.0:")
|
||||
depends_on("pkgconfig", type="build", when="@7.0: ^libxc@:6")
|
||||
depends_on("libxc@4.0.3:4", when="@7.0:8.1")
|
||||
depends_on("libxc@5.1.3:5.1", when="@8.2:8")
|
||||
depends_on("libxc@5.1.7:5.1", when="@9:2022.2")
|
||||
depends_on("libxc@6.1:", when="@2023.1:")
|
||||
depends_on("libxc@6.2:", when="@2023.2:")
|
||||
depends_on("libxc@:6", when="@:2024.3")
|
||||
depends_on("libxc@7 build_system=cmake", when="@2025.2:")
|
||||
|
||||
with when("+spla"):
|
||||
depends_on("spla+cuda+fortran", when="+cuda")
|
||||
@@ -293,6 +297,8 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
depends_on("spglib", when="+spglib")
|
||||
|
||||
depends_on("dftd4@3.6.0: build_system=cmake", when="+dftd4")
|
||||
|
||||
with when("build_system=cmake"):
|
||||
depends_on("cmake@3.22:", type="build")
|
||||
|
||||
@@ -624,6 +630,12 @@ def edit(self, pkg, spec, prefix):
|
||||
ldflags += [spglib.search_flags]
|
||||
libs.append(spglib.ld_flags)
|
||||
|
||||
if spec.satisfies("+dftd4"):
|
||||
cppflags += ["-D__DFTD4"]
|
||||
dftd4 = spec["dftd4"].libs
|
||||
ldflags += [dftd4.search_flags]
|
||||
libs.append(dftd4.ld_flags)
|
||||
|
||||
if spec.satisfies("+smeagol"):
|
||||
cppflags += ["-D__SMEAGOL"]
|
||||
smeagol = spec["libsmeagol"].libs
|
||||
@@ -1003,6 +1015,7 @@ def cmake_args(self):
|
||||
self.define_from_variant("CP2K_USE_VORI", "libvori"),
|
||||
self.define_from_variant("CP2K_USE_SPLA", "spla"),
|
||||
self.define_from_variant("CP2K_USE_QUIP", "quip"),
|
||||
self.define_from_variant("CP2K_USE_DFTD4", "dftd4"),
|
||||
self.define_from_variant("CP2K_USE_MPI_F08", "mpi_f08"),
|
||||
self.define_from_variant("CP2K_USE_LIBSMEAGOL", "smeagol"),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,7 @@ class Cppgsl(CMakePackage):
|
||||
license("MIT")
|
||||
|
||||
version("main", branch="main")
|
||||
version("4.1.0", sha256="0a227fc9c8e0bf25115f401b9a46c2a68cd28f299d24ab195284eb3f1d7794bd")
|
||||
version("4.0.0", sha256="f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9")
|
||||
version("3.1.0", sha256="d3234d7f94cea4389e3ca70619b82e8fb4c2f33bb3a070799f1e18eef500a083")
|
||||
version("2.1.0", sha256="ef73814657b073e1be86c8f7353718771bf4149b482b6cb54f99e79b23ff899d")
|
||||
@@ -32,6 +33,7 @@ class Cppgsl(CMakePackage):
|
||||
)
|
||||
|
||||
depends_on("cmake@3.1.3:", type="build")
|
||||
depends_on("cmake@3.14:", type="build", when="@4.1:")
|
||||
|
||||
def cmake_args(self):
|
||||
return [
|
||||
|
||||
@@ -18,7 +18,8 @@ class Cpuinfo(CMakePackage):
|
||||
license("BSD-2-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1:
|
||||
version("2024-09-26", commit="1e83a2fdd3102f65c6f1fb602c1b320486218a99") # py-torch@2.6:
|
||||
version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1
|
||||
version("2024-08-30", commit="fa1c679da8d19e1d87f20175ae1ec10995cd3dd3") # py-torch@2.5.0
|
||||
version("2023-11-04", commit="d6860c477c99f1fce9e28eb206891af3c0e1a1d7") # py-torch@2.3:2.4
|
||||
version("2023-01-13", commit="6481e8bef08f606ddd627e4d3be89f64d62e1b8a") # py-torch@2.1:2.2
|
||||
|
||||
@@ -25,7 +25,7 @@ class Creduce(CMakePackage):
|
||||
depends_on("flex")
|
||||
depends_on("libxml2")
|
||||
depends_on("llvm")
|
||||
depends_on("llvm@8.0.0", when="@:2.10")
|
||||
depends_on("llvm@8.0", when="@:2.10")
|
||||
depends_on("perl")
|
||||
depends_on("perl-exporter-lite")
|
||||
depends_on("perl-file-which")
|
||||
|
||||
@@ -21,6 +21,16 @@
|
||||
# format returned by platform.system() and 'arch' by platform.machine()
|
||||
|
||||
_versions = {
|
||||
"12.8.0": {
|
||||
"Linux-aarch64": (
|
||||
"5bc211f00c4f544da6e3fc3a549b3eb0a7e038439f5f3de71caa688f2f6b132c",
|
||||
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux_sbsa.run",
|
||||
),
|
||||
"Linux-x86_64": (
|
||||
"610867dcd6d94c4e36c4924f1d01b9db28ec08164e8af6c764f21b84200695f8",
|
||||
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run",
|
||||
),
|
||||
},
|
||||
"12.6.3": {
|
||||
"Linux-aarch64": (
|
||||
"213ea63a6357020978a8b0a79a8c9d12a2a5941afa1cdc69d5a3f933fa8bed04",
|
||||
|
||||
@@ -19,7 +19,10 @@ class Cusz(CMakePackage, CudaPackage):
|
||||
conflicts("cuda_arch=none", when="+cuda")
|
||||
|
||||
version("develop", branch="develop")
|
||||
version("0.6.0", commit="cafed521dc338fe2159ebb5b09a36fc318524bf7")
|
||||
version("0.14.0", commit="e57fd7cd9df923164af9dd307b0b3d37dd9df137")
|
||||
version("0.9.0rc3", commit="c3c3a74d006c6de3c145255241fb181682bd1492")
|
||||
# 0.9.0rc1 was listed as 0.6.0 for a while in spack
|
||||
version("0.9.0rc1", commit="cafed521dc338fe2159ebb5b09a36fc318524bf7")
|
||||
version("0.3.1", commit="02be3cbd07db467decaf45ec9eb593ba6173c809")
|
||||
version("0.3", sha256="0feb4f7fd64879fe147624dd5ad164adf3983f79b2e0383d35724f8d185dcb11")
|
||||
|
||||
@@ -31,6 +34,10 @@ class Cusz(CMakePackage, CudaPackage):
|
||||
|
||||
depends_on("cub", when="^cuda@:10.2.89")
|
||||
|
||||
patch("thrust-includes.patch", when="@0.10:0.14 ^cuda@12.8:")
|
||||
patch("thrust-includes-0.9.patch", when="@0.9 ^cuda@12.8:")
|
||||
conflicts("^cuda@12.8:", when="@:0.8")
|
||||
|
||||
def cmake_args(self):
|
||||
cuda_arch = self.spec.variants["cuda_arch"].value
|
||||
args = ["-DBUILD_TESTING=OFF", ("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)]
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
diff --git a/src/stat/detail/compare.thrust.inl b/src/stat/detail/compare.thrust.inl
|
||||
index ce49408..ec8d650 100644
|
||||
--- a/src/stat/detail/compare.thrust.inl
|
||||
+++ b/src/stat/detail/compare.thrust.inl
|
||||
@@ -18,6 +18,9 @@
|
||||
// #include <thrust/iterator/constant_iterator.h>
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/functional.h>
|
||||
+#include <thrust/iterator/zip_iterator.h>
|
||||
+#include <thrust/transform_reduce.h>
|
||||
#include <thrust/tuple.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
diff --git a/src/stat/detail/maxerr.thrust.inl b/src/stat/detail/maxerr.thrust.inl
|
||||
index 2415655..9b31e88 100644
|
||||
--- a/src/stat/detail/maxerr.thrust.inl
|
||||
+++ b/src/stat/detail/maxerr.thrust.inl
|
||||
@@ -18,6 +18,8 @@
|
||||
// #include <thrust/iterator/constant_iterator.h>
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/extrema.h>
|
||||
+#include <thrust/transform.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
|
||||
27
var/spack/repos/builtin/packages/cusz/thrust-includes.patch
Normal file
27
var/spack/repos/builtin/packages/cusz/thrust-includes.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff --git a/psz/src/stat/detail/compare.thrust.inl b/psz/src/stat/detail/compare.thrust.inl
|
||||
index f35c7df..719d68f 100644
|
||||
--- a/psz/src/stat/detail/compare.thrust.inl
|
||||
+++ b/psz/src/stat/detail/compare.thrust.inl
|
||||
@@ -11,6 +11,9 @@
|
||||
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/functional.h>
|
||||
+#include <thrust/iterator/zip_iterator.h>
|
||||
+#include <thrust/transform_reduce.h>
|
||||
#include <thrust/tuple.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
diff --git a/psz/src/stat/detail/maxerr.thrust.inl b/psz/src/stat/detail/maxerr.thrust.inl
|
||||
index f7a4db5..ce7925a 100644
|
||||
--- a/psz/src/stat/detail/maxerr.thrust.inl
|
||||
+++ b/psz/src/stat/detail/maxerr.thrust.inl
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/extrema.h>
|
||||
+#include <thrust/transform.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
#include "port.hh"
|
||||
@@ -30,7 +30,7 @@ def dav_sdk_depends_on(spec, when=None, propagate=None):
|
||||
# Map the propagated variants to the dependency variant. Some packages may need
|
||||
# overrides to propagate a dependency as something else, e.g., {"visit": "libsim"}.
|
||||
# Most call-sites will just use a list.
|
||||
if not type(propagate) is dict:
|
||||
if type(propagate) is not dict:
|
||||
propagate = dict([(v, v) for v in propagate])
|
||||
|
||||
# Determine the base variant
|
||||
|
||||
@@ -25,6 +25,7 @@ class Dcap(AutotoolsPackage):
|
||||
depends_on("m4", type="build")
|
||||
|
||||
depends_on("openssl")
|
||||
depends_on("libxcrypt")
|
||||
depends_on("zlib-api")
|
||||
|
||||
variant("plugins", default=True, description="Build plugins")
|
||||
|
||||
@@ -25,6 +25,7 @@ class Dd4hep(CMakePackage):
|
||||
license("LGPL-3.0-or-later")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.31", sha256="9c06a1b4462fc1b51161404889c74b37350162d0b0ac2154db27e3f102670bd1")
|
||||
version("1.30", sha256="02de46151e945eff58cffd84b4b86d35051f4436608199c3efb4d2e1183889fe")
|
||||
version("1.29", sha256="435d25a7ef093d8bf660f288b5a89b98556b4c1c293c55b93bf641fb4cba77e9")
|
||||
version("1.28", sha256="b28d671eda0154073873a044a384486e66f1f200065deca99537aa84f07328ad")
|
||||
@@ -118,13 +119,16 @@ class Dd4hep(CMakePackage):
|
||||
depends_on("tbb", when="+tbb")
|
||||
depends_on("intel-tbb@:2020.3", when="+tbb @:1.23")
|
||||
depends_on("lcio", when="+lcio")
|
||||
depends_on("edm4hep", when="+edm4hep")
|
||||
depends_on("podio", when="+edm4hep")
|
||||
depends_on("podio@:0.16.03", when="@:1.23 +edm4hep")
|
||||
depends_on("podio@0.16:", when="@1.24: +edm4hep")
|
||||
depends_on("podio@0.16.3:", when="@1.26: +edm4hep")
|
||||
depends_on("podio@:0", when="@:1.29 +edm4hep")
|
||||
depends_on("py-pytest", type=("build", "test"))
|
||||
with when("+edm4hep"):
|
||||
depends_on("edm4hep")
|
||||
depends_on("edm4hep@0.10.5:", when="@1.31:")
|
||||
depends_on("podio")
|
||||
depends_on("podio@:0.16.03", when="@:1.23")
|
||||
depends_on("podio@:0", when="@:1.29")
|
||||
depends_on("podio@0.16:", when="@1.24:")
|
||||
depends_on("podio@0.16.3:", when="@1.26:")
|
||||
depends_on("podio@0.16.7:", when="@1.31:")
|
||||
|
||||
# See https://github.com/AIDASoft/DD4hep/pull/771 and https://github.com/AIDASoft/DD4hep/pull/876
|
||||
conflicts(
|
||||
|
||||
@@ -19,6 +19,7 @@ class Detray(CMakePackage):
|
||||
|
||||
license("MPL-2.0", checked_by="stephenswat")
|
||||
|
||||
version("0.88.0", sha256="bda15501c9c96af961e24ce243982f62051c535b9fe458fb28336a19b54eb47d")
|
||||
version("0.87.0", sha256="2d4a76432dd6ddbfc00b88b5d482072e471fefc264b60748bb1f9a123963576e")
|
||||
version("0.86.0", sha256="98350c94e8a2395b8712b7102fd449536857e8158b38a96cc913c79b70301170")
|
||||
version("0.85.0", sha256="a0121a27fd08243d4a6aab060e8ab379ad5129e96775b45f6a683835767fa8e7")
|
||||
|
||||
@@ -20,6 +20,7 @@ class DlaFutureFortran(CMakePackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.3.0", sha256="404ce0d2d3df9317764450158901fd6cb2198b37f5687e9616519100ad6e9ece")
|
||||
version("0.2.0", sha256="7fd3e1779c111b35f0d2701a024398b4f6e8dea4af523b6c8617d28c0b7ae61a")
|
||||
version("0.1.0", sha256="9fd8a105cbb2f3e1daf8a49910f98fce68ca0b954773dba98a91464cf2e7c1da")
|
||||
|
||||
@@ -36,6 +37,7 @@ class DlaFutureFortran(CMakePackage):
|
||||
|
||||
depends_on("dla-future@0.4.1:0.5 +scalapack", when="@0.1.0")
|
||||
depends_on("dla-future@0.6.0: +scalapack", when="@0.2.0:")
|
||||
depends_on("dla-future@0.7.3: +scalapack", when="@0.3:")
|
||||
depends_on("dla-future +shared", when="+shared")
|
||||
|
||||
depends_on("mpi", when="+test")
|
||||
|
||||
@@ -73,7 +73,7 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
|
||||
generator("ninja")
|
||||
|
||||
depends_on("cmake@3.22:", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
depends_on("pkgconfig", type=("build", "link"))
|
||||
depends_on("doxygen", type="build", when="+doc")
|
||||
depends_on("mpi")
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ class Duckdb(MakefilePackage):
|
||||
maintainers("glentner", "teaguesterling")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.2.0", sha256="f22c97e18c071fa8e43b5e150c03c6ab4bcc510cca6e6b50cbe13af8535fa701")
|
||||
version("1.1.3", sha256="2aea0af898ad753fee82b776fea1bf78ccbc9648986e7f7a87372df5e74cdb98")
|
||||
version("1.1.2", sha256="a3319a64c390ed0454c869b2e4fc0af2413cd49f55cd0f1400aaed9069cdbc4c")
|
||||
version("1.1.1", sha256="a764cef80287ccfd8555884d8facbe962154e7c747043c0842cd07873b4d6752")
|
||||
@@ -92,7 +93,6 @@ class Duckdb(MakefilePackage):
|
||||
# Extensions
|
||||
variant("autocomplete", default=True, description="Include autocomplete for CLI in build")
|
||||
variant("excel", default=True, description="Include Excel formatting extension in build")
|
||||
variant("fts", default=True, description="Include FTS (full text search) support in build")
|
||||
variant("httpfs", default=True, description="Include HTTPFS (& S3) support in build")
|
||||
variant("inet", default=True, description="Include INET (ip address) support in build")
|
||||
variant("json", default=True, description="Include JSON support in build")
|
||||
@@ -100,6 +100,14 @@ class Duckdb(MakefilePackage):
|
||||
variant("tpce", default=False, description="Include TPCE in build")
|
||||
variant("tpch", default=False, description="Include TPCH in build")
|
||||
|
||||
# FTS was moved to an out-of-tree extension after v1.1.3
|
||||
variant(
|
||||
"fts",
|
||||
default=True,
|
||||
description="Include FTS (full text search) support in build",
|
||||
when="@:1.1",
|
||||
)
|
||||
|
||||
# APIs
|
||||
variant("python", default=True, description="Build with Python driver")
|
||||
extends("python", when="+python")
|
||||
|
||||
@@ -33,60 +33,30 @@ class Dyninst(CMakePackage):
|
||||
version("10.2.1", sha256="8077c6c7a12577d2ffdcd07521c1eb1b7367da94d9a7ef10bf14053aeaae7ba1")
|
||||
version("10.2.0", sha256="4212b93bef4563c7de7dce4258e899bcde52315a571087e87fde9f8040123b43")
|
||||
version("10.1.0", sha256="4a121d70c1bb020408a7a697d74602e18250c3c85800f230566fcccd593c0129")
|
||||
version("10.0.0", sha256="542fccf5c57c4fe784b1a9a9e3db01d40b16ad04e7174dc6f7eb23440485ba06")
|
||||
version(
|
||||
"9.3.2", tag="v9.3.2", commit="5d2ddacb273682daa014ae22f17f3575e05b411e", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.3.0", tag="v9.3.0", commit="9b8e9c1f16d4616b827d2d36955604a8e3fb915c", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.2.0", tag="v9.2.0", commit="3a6ad66df7294417cf61618acdcfcc0fecccb045", deprecated=True
|
||||
)
|
||||
version(
|
||||
"9.1.0", tag="v9.1.0", commit="df6d090061bae7ff2ba5a6bd57bb2ecbf538ef7a", deprecated=True
|
||||
)
|
||||
version(
|
||||
"8.2.1", tag="v8.2.1", commit="939afcbad1a8273636a3686a31b51dae4f1f0c11", deprecated=True
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
variant(
|
||||
"openmp",
|
||||
default=True,
|
||||
description="Enable OpenMP support for ParseAPI " "(version 10.0.0 or later)",
|
||||
)
|
||||
variant("openmp", default=True, description="Enable OpenMP support for ParseAPI ")
|
||||
|
||||
variant("static", default=False, description="Build static libraries")
|
||||
|
||||
variant("stat_dysect", default=False, description="Patch for STAT's DySectAPI")
|
||||
|
||||
boost_libs = (
|
||||
"+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
|
||||
depends_on(
|
||||
"boost+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception"
|
||||
)
|
||||
|
||||
depends_on("boost@1.61.0:" + boost_libs, when="@10.1.0:")
|
||||
depends_on("boost@1.61.0:1.69" + boost_libs, when="@:10.0")
|
||||
depends_on("boost@1.67.0:" + boost_libs, when="@11.0.0:")
|
||||
depends_on("boost@1.70.0:" + boost_libs, when="@12:12.3.0")
|
||||
depends_on("boost@1.71.0:" + boost_libs, when="@13:")
|
||||
depends_on("boost@1.61.0:", when="@10.1.0:")
|
||||
depends_on("boost@1.67.0:", when="@11.0.0:")
|
||||
depends_on("boost@1.70.0:", when="@12:12.3.0")
|
||||
depends_on("boost@1.71.0:", when="@13:")
|
||||
|
||||
depends_on("libiberty+pic")
|
||||
|
||||
# Dyninst uses elfutils starting with 9.3.0, and used libelf
|
||||
# before that.
|
||||
# NB: Parallel DWARF parsing in Dyninst 10.2.0 requires a thread-
|
||||
# safe libdw
|
||||
# Parallel DWARF parsing requires a thread-safe libdw
|
||||
depends_on("elfutils", type="link")
|
||||
depends_on("elfutils@0.186:", type="link", when="@12.0.1:")
|
||||
depends_on("elfutils@0.178:", type="link", when="@10.2.0:")
|
||||
depends_on("elfutils", type="link", when="@9.3.0:10.1")
|
||||
depends_on("libelf", type="link", when="@:9.2")
|
||||
|
||||
# Dyninst uses libdw from elfutils starting with 10.0, and used
|
||||
# libdwarf before that.
|
||||
depends_on("libdwarf", when="@:9")
|
||||
|
||||
with when("@:12.3.0"):
|
||||
# findtbb.cmake in the dynist repo does not work with recent tbb
|
||||
@@ -95,21 +65,16 @@ class Dyninst(CMakePackage):
|
||||
conflicts("^intel-oneapi-tbb@2021.1:")
|
||||
conflicts("^intel-parallel-studio")
|
||||
|
||||
depends_on("intel-tbb@2019.9:", when="@13.0.0:")
|
||||
depends_on("tbb@2018.6.0:", when="@10.0.0:12.3.0")
|
||||
depends_on("tbb")
|
||||
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")
|
||||
|
||||
with when("@13.0.0:"):
|
||||
depends_on("cmake@3.14.0:", type="build")
|
||||
conflicts("cmake@3.19.0")
|
||||
|
||||
depends_on("cmake@3.4.0:", type="build", when="@10.1.0:")
|
||||
depends_on("cmake@3.0.0:", type="build", when="@10.0.0:10.0")
|
||||
depends_on("cmake@2.8:", type="build", when="@:9")
|
||||
|
||||
patch("stat_dysect.patch", when="+stat_dysect")
|
||||
patch("stackanalysis_h.patch", when="@9.2.0")
|
||||
patch("v9.3.2-auto.patch", when="@9.3.2 %gcc@:4.7")
|
||||
patch("tribool.patch", when="@9.3.0:10.0.0 ^boost@1.69:")
|
||||
patch(
|
||||
"missing_include_deque.patch",
|
||||
when="@10.0.0:12.2.0",
|
||||
@@ -124,92 +89,21 @@ class Dyninst(CMakePackage):
|
||||
# Version 11.0 requires a C++11-compliant ABI
|
||||
conflicts("%gcc@:5", when="@11.0.0:")
|
||||
|
||||
# Versions 9.3.x used cotire, but have no knob to turn it off.
|
||||
# Cotire has no real use for one-time builds and can break
|
||||
# parallel builds with both static and shared libs.
|
||||
@when("@9.3.0:9.3")
|
||||
def patch(self):
|
||||
filter_file("USE_COTIRE true", "USE_COTIRE false", "cmake/shared.cmake")
|
||||
|
||||
# New style cmake args, starting with 10.1.
|
||||
@when("@10.1.0:")
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
args = [
|
||||
"-DBoost_ROOT_DIR=%s" % spec["boost"].prefix,
|
||||
"-DElfUtils_ROOT_DIR=%s" % spec["elf"].prefix,
|
||||
"-DLibIberty_ROOT_DIR=%s" % spec["libiberty"].prefix,
|
||||
"-DTBB_ROOT_DIR=%s" % spec["tbb"].prefix,
|
||||
self.define("Boost_ROOT_DIR", spec["boost"].prefix),
|
||||
self.define("ElfUtils_ROOT_DIR", spec["elfutils"].prefix),
|
||||
self.define("LibIberty_ROOT_DIR", spec["libiberty"].prefix),
|
||||
self.define("TBB_ROOT_DIR", spec["tbb"].prefix),
|
||||
self.define("LibIberty_LIBRARIES", spec["libiberty"].libs),
|
||||
self.define_from_variant("USE_OpenMP", "openmp"),
|
||||
self.define_from_variant("ENABLE_STATIC_LIBS", "static"),
|
||||
]
|
||||
|
||||
if spec.satisfies("+openmp"):
|
||||
args.append("-DUSE_OpenMP=ON")
|
||||
else:
|
||||
args.append("-DUSE_OpenMP=OFF")
|
||||
|
||||
if spec.satisfies("+static"):
|
||||
args.append("-DENABLE_STATIC_LIBS=YES")
|
||||
else:
|
||||
args.append("-DENABLE_STATIC_LIBS=NO")
|
||||
|
||||
# Make sure Dyninst doesn't try to build its own dependencies
|
||||
# outside of Spack
|
||||
# Make sure Dyninst doesn't try to build its own dependencies outside of Spack
|
||||
if spec.satisfies("@10.2.0:12.3.0"):
|
||||
args.append("-DSTERILE_BUILD=ON")
|
||||
|
||||
return args
|
||||
|
||||
# Old style cmake args, up through 10.0.
|
||||
@when("@:10.0")
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
# Elf -- the directory containing libelf.h.
|
||||
elf = spec["elf"].prefix
|
||||
elf_include = os.path.dirname(find_headers("libelf", elf.include, recursive=True)[0])
|
||||
|
||||
# Dwarf -- the directory containing elfutils/libdw.h or
|
||||
# libdwarf.h, and the path to libdw.so or libdwarf.so.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
dwarf_include = elf.include
|
||||
dwarf_lib = find_libraries("libdw", elf, recursive=True)
|
||||
else:
|
||||
dwarf_include = spec["libdwarf"].prefix.include
|
||||
dwarf_lib = spec["libdwarf"].libs
|
||||
|
||||
args = [
|
||||
"-DPATH_BOOST=%s" % spec["boost"].prefix,
|
||||
"-DIBERTY_LIBRARIES=%s" % spec["libiberty"].libs,
|
||||
"-DLIBELF_INCLUDE_DIR=%s" % elf_include,
|
||||
"-DLIBELF_LIBRARIES=%s" % spec["elf"].libs,
|
||||
"-DLIBDWARF_INCLUDE_DIR=%s" % dwarf_include,
|
||||
"-DLIBDWARF_LIBRARIES=%s" % dwarf_lib,
|
||||
]
|
||||
|
||||
# TBB include and lib directories, version 10.x or later.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
args.extend(
|
||||
[
|
||||
"-DTBB_INCLUDE_DIRS=%s" % spec["tbb"].prefix.include,
|
||||
"-DTBB_LIBRARY=%s" % spec["tbb"].prefix.lib,
|
||||
]
|
||||
)
|
||||
|
||||
# Openmp applies to version 10.x or later.
|
||||
if spec.satisfies("@10.0.0:"):
|
||||
if spec.satisfies("+openmp"):
|
||||
args.append("-DUSE_OpenMP=ON")
|
||||
else:
|
||||
args.append("-DUSE_OpenMP=OFF")
|
||||
|
||||
# Static libs started with version 9.1.0.
|
||||
if spec.satisfies("@9.1.0:"):
|
||||
if spec.satisfies("+static"):
|
||||
args.append("-DENABLE_STATIC_LIBS=1")
|
||||
else:
|
||||
args.append("-DENABLE_STATIC_LIBS=NO")
|
||||
args.append(self.define("STERILE_BUILD", True))
|
||||
|
||||
return args
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/dataflowAPI/h/stackanalysis.h 2016-06-29 14:54:14.000000000 -0700
|
||||
+++ b/dataflowAPI/h/stackanalysis.h 2016-08-02 09:50:13.619079000 -0700
|
||||
@@ -331,7 +331,7 @@
|
||||
|
||||
// To build intervals, we must replay the effect of each instruction.
|
||||
// To avoid sucking enormous time, we keep those transfer functions around...
|
||||
- typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs>>
|
||||
+ typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs> >
|
||||
InstructionEffects;
|
||||
|
||||
DATAFLOW_EXPORT StackAnalysis();
|
||||
@@ -1,34 +0,0 @@
|
||||
Add explicit casts from boost::tribool to bool. Starting with 1.69,
|
||||
tribool added 'explicit' to the conversion operator to bool, and this
|
||||
was breaking the build when using boost >= 1.69.
|
||||
|
||||
Patch is from: https://github.com/dyninst/dyninst/commit/54a2debd9
|
||||
|
||||
|
||||
diff --git a/dataflowAPI/rose/util/Message.C b/dataflowAPI/rose/util/Message.C
|
||||
index a8a66ad4c..5e276f97d 100644
|
||||
--- a/dataflowAPI/rose/util/Message.C
|
||||
+++ b/dataflowAPI/rose/util/Message.C
|
||||
@@ -1123,7 +1123,7 @@ StreamBuf::bake() {
|
||||
destination_->bakeDestinations(message_.properties(), baked_/*out*/);
|
||||
anyUnbuffered_ = false;
|
||||
for (BakedDestinations::const_iterator bi=baked_.begin(); bi!=baked_.end() && !anyUnbuffered_; ++bi)
|
||||
- anyUnbuffered_ = !bi->second.isBuffered;
|
||||
+ anyUnbuffered_ = static_cast<bool>(!bi->second.isBuffered);
|
||||
isBaked_ = true;
|
||||
}
|
||||
}
|
||||
diff --git a/dataflowAPI/rose/util/Message.h b/dataflowAPI/rose/util/Message.h
|
||||
index 816f68d2e..03592cb97 100644
|
||||
--- a/dataflowAPI/rose/util/Message.h
|
||||
+++ b/dataflowAPI/rose/util/Message.h
|
||||
@@ -386,7 +386,8 @@ struct SAWYER_EXPORT ColorSpec {
|
||||
ColorSpec(AnsiColor fg, AnsiColor bg, bool bold): foreground(fg), background(bg), bold(bold) {}
|
||||
|
||||
/** Returns true if this object is in its default-constructed state. */
|
||||
- bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background && !bold; }
|
||||
+ bool isDefault() const { return COLOR_DEFAULT==foreground && COLOR_DEFAULT==background
|
||||
+ && static_cast<bool>(!bold); }
|
||||
};
|
||||
|
||||
/** Colors to use for each message importance.
|
||||
@@ -1,73 +0,0 @@
|
||||
Change some 'for (const auto& t: type)' usage to the older but
|
||||
equivalent 'for (auto t = type.begin(); ...)'. This patch allows
|
||||
dyninst 9.3.2 to build with gcc 4.4 which doesn't support the newer
|
||||
syntax.
|
||||
|
||||
|
||||
diff --git a/dyninstAPI/src/BPatch.C b/dyninstAPI/src/BPatch.C
|
||||
index ebf7db0c4..49fe69f9a 100644
|
||||
--- a/dyninstAPI/src/BPatch.C
|
||||
+++ b/dyninstAPI/src/BPatch.C
|
||||
@@ -166,16 +166,16 @@ BPatch::BPatch()
|
||||
stdTypes = BPatch_typeCollection::getGlobalTypeCollection();
|
||||
vector<Type *> *sTypes = Symtab::getAllstdTypes();
|
||||
BPatch_type* type = NULL;
|
||||
- for(const auto& t: *sTypes) {
|
||||
- stdTypes->addType(type = new BPatch_type(t));
|
||||
+ for(auto t = sTypes->begin(); t != sTypes->end(); ++t) {
|
||||
+ stdTypes->addType(type = new BPatch_type(*t));
|
||||
type->decrRefCount();
|
||||
}
|
||||
delete sTypes;
|
||||
|
||||
builtInTypes = new BPatch_builtInTypeCollection;
|
||||
sTypes = Symtab::getAllbuiltInTypes();
|
||||
- for(const auto& t: *sTypes) {
|
||||
- builtInTypes->addBuiltInType(type = new BPatch_type(t));
|
||||
+ for(auto t = sTypes->begin(); t != sTypes->end(); ++t) {
|
||||
+ builtInTypes->addBuiltInType(type = new BPatch_type(*t));
|
||||
type->decrRefCount();
|
||||
}
|
||||
delete sTypes;
|
||||
diff --git a/dyninstAPI/src/BPatch_collections.C b/dyninstAPI/src/BPatch_collections.C
|
||||
index f4e2986a3..129f8b74a 100644
|
||||
--- a/dyninstAPI/src/BPatch_collections.C
|
||||
+++ b/dyninstAPI/src/BPatch_collections.C
|
||||
@@ -172,12 +172,12 @@ BPatch_typeCollection::~BPatch_typeCollection()
|
||||
assert(refcount == 0 ||
|
||||
refcount == 1);
|
||||
|
||||
- for(const auto& t: typesByName) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByName.begin(); t != typesByName.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
|
||||
- for(const auto& t: typesByID) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByID.begin(); t != typesByID.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/symtabAPI/src/Collections.C b/symtabAPI/src/Collections.C
|
||||
index 7431dd6bf..43c339f45 100644
|
||||
--- a/symtabAPI/src/Collections.C
|
||||
+++ b/symtabAPI/src/Collections.C
|
||||
@@ -318,12 +318,12 @@ typeCollection::typeCollection() :
|
||||
typeCollection::~typeCollection()
|
||||
{
|
||||
// delete all of the types
|
||||
- for(const auto& t: typesByName) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByName.begin(); t != typesByName.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
|
||||
- for(const auto& t: typesByID) {
|
||||
- t.second->decrRefCount();
|
||||
+ for(auto t = typesByID.begin(); t != typesByID.end(); ++t) {
|
||||
+ t->second->decrRefCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ def dav_sdk_depends_on(spec, when=None, propagate=None):
|
||||
# Map the propagated variants to the dependency variant. Some packages may need
|
||||
# overrides to propagate a dependency as something else, e.g., {"visit": "libsim"}.
|
||||
# Most call-sites will just use a list.
|
||||
if not type(propagate) is dict:
|
||||
if type(propagate) is not dict:
|
||||
propagate = dict([(v, v) for v in propagate])
|
||||
|
||||
# Determine the base variant
|
||||
|
||||
@@ -12,7 +12,7 @@ class Embree(CMakePackage):
|
||||
url = "https://github.com/embree/embree/archive/v3.7.0.tar.gz"
|
||||
maintainers("aumuell")
|
||||
|
||||
license("Apache-2.0")
|
||||
license("Apache-2.0", checked_by="wdconinc")
|
||||
|
||||
version("4.3.3", sha256="8a3bc3c3e21aa209d9861a28f8ba93b2f82ed0dc93341dddac09f1f03c36ef2d")
|
||||
version("4.3.2", sha256="dc7bb6bac095b2e7bc64321435acd07c6137d6d60e4b79ec07bb0b215ddf81cb")
|
||||
@@ -60,9 +60,10 @@ def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
args = [
|
||||
"-DBUILD_TESTING=OFF",
|
||||
"-DEMBREE_TUTORIALS=OFF",
|
||||
"-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON",
|
||||
self.define("BUILD_TESTING", self.run_tests),
|
||||
self.define("EMBREE_TUTORIALS", self.run_tests),
|
||||
self.define("EMBREE_TUTORIALS_GLFW", False),
|
||||
self.define("EMBREE_IGNORE_CMAKE_CXX_FLAGS", True),
|
||||
self.define_from_variant("EMBREE_ISPC_SUPPORT", "ispc"),
|
||||
]
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ class Enzyme(CMakePackage):
|
||||
"""
|
||||
|
||||
homepage = "https://enzyme.mit.edu"
|
||||
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.15.tar.gz"
|
||||
url = "https://github.com/wsmoses/Enzyme/archive/v0.0.172.tar.gz"
|
||||
list_url = "https://github.com/wsmoses/Enzyme/releases"
|
||||
git = "https://github.com/wsmoses/Enzyme"
|
||||
|
||||
@@ -23,6 +23,7 @@ class Enzyme(CMakePackage):
|
||||
root_cmakelists_dir = "enzyme"
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.0.172", sha256="688200164787d543641cb446cff20f6a8e8b5c92bb7032ebe7f867efa67ceafb")
|
||||
version("0.0.135", sha256="49c798534faec7ba524a3ed053dd4352d690a44d3cad5a14915c9398dc9b175b")
|
||||
version("0.0.100", sha256="fbc53ec02adc0303ff200d7699afface2d9fbc7350664e6c6d4c527ef11c2e82")
|
||||
version("0.0.81", sha256="4c17d0c28f0572a3ab97a60f1e56bbc045ed5dd64c2daac53ae34371ca5e8b34")
|
||||
@@ -42,7 +43,8 @@ class Enzyme(CMakePackage):
|
||||
depends_on("llvm@7:14", when="@0.0.48:0.0.68")
|
||||
depends_on("llvm@9:16", when="@0.0.69:0.0.79")
|
||||
depends_on("llvm@11:16", when="@0.0.80:0.0.99")
|
||||
depends_on("llvm@11:19", when="@0.0.100:")
|
||||
depends_on("llvm@11:19", when="@0.0.100:0.0.148")
|
||||
depends_on("llvm@15:19", when="@0.0.149:")
|
||||
depends_on("cmake@3.13:", type="build")
|
||||
|
||||
def cmake_args(self):
|
||||
|
||||
@@ -73,10 +73,6 @@ class Extrae(AutotoolsPackage):
|
||||
depends_on("mpi")
|
||||
depends_on("libunwind")
|
||||
|
||||
# TODO: replace this with an explicit list of components of Boost,
|
||||
# for instance depends_on('boost +filesystem')
|
||||
# See https://github.com/spack/spack/pull/22303 for reference
|
||||
depends_on(Boost.with_default_variants)
|
||||
depends_on("libdwarf")
|
||||
depends_on("elf", type="link")
|
||||
depends_on("libxml2")
|
||||
@@ -92,6 +88,10 @@ class Extrae(AutotoolsPackage):
|
||||
variant("dyninst", default=False, description="Use dyninst for dynamic code installation")
|
||||
with when("+dyninst"):
|
||||
depends_on("dyninst@10.1.0:")
|
||||
# TODO: replace this with an explicit list of components of Boost,
|
||||
# for instance depends_on('boost +filesystem')
|
||||
# See https://github.com/spack/spack/pull/22303 for reference
|
||||
depends_on(Boost.with_default_variants)
|
||||
depends_on("elfutils", when="@4.1.2:")
|
||||
depends_on("intel-oneapi-tbb", when="@4.1.2:")
|
||||
|
||||
@@ -127,7 +127,6 @@ def configure_args(self):
|
||||
args = [
|
||||
"--with-mpi=%s" % mpiroot,
|
||||
"--with-unwind=%s" % spec["libunwind"].prefix,
|
||||
"--with-boost=%s" % spec["boost"].prefix,
|
||||
"--with-dwarf=%s" % spec["libdwarf"].prefix,
|
||||
"--with-elf=%s" % spec["elf"].prefix,
|
||||
"--with-xml-prefix=%s" % spec["libxml2"].prefix,
|
||||
@@ -141,7 +140,10 @@ def configure_args(self):
|
||||
)
|
||||
|
||||
if spec.satisfies("+dyninst"):
|
||||
args += ["--with-dyninst={spec['dyninst'].prefix}"]
|
||||
args += [
|
||||
f"--with-dyninst={spec['dyninst'].prefix}",
|
||||
f"--with-boost={spec['boost'].prefix}",
|
||||
]
|
||||
|
||||
if spec.satisfies("@4.1.2:"):
|
||||
args += [
|
||||
|
||||
@@ -19,6 +19,7 @@ class Fargparse(CMakePackage):
|
||||
version("develop", branch="develop")
|
||||
version("main", branch="main")
|
||||
|
||||
version("1.9.0", sha256="c83c13fa90b6b45adf8d84fe00571174acfa118d2a0d1e8c467f74bbd7dec49d")
|
||||
version("1.8.0", sha256="37108bd3c65d892d8c24611ce4d8e5451767e4afe81445fde67eab652178dd01")
|
||||
version("1.7.0", sha256="9889e7eca9c020b742787fba2be0ba16edcc3fcf52929261ccb7d09996a35f89")
|
||||
version("1.6.0", sha256="055a0af44f50c302f8f20a8bcf3d26c5bbeacf5222cdbaa5b19da4cff56eb9c0")
|
||||
|
||||
@@ -14,12 +14,10 @@ class Fcgi(AutotoolsPackage):
|
||||
homepage = "https://fastcgi-archives.github.io/"
|
||||
url = "https://github.com/FastCGI-Archives/fcgi2/archive/refs/tags/2.4.2.tar.gz"
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("libtool", type="build")
|
||||
|
||||
license("OML")
|
||||
|
||||
version("2.4.4", sha256="c0e0d9cc7d1e456d7278c974e2826f593ef5ca555783eba81e7e9c1a07ae0ecc")
|
||||
version("2.4.3", sha256="5273bc54c28215d81b9bd78f937a9bcdd4fe94e41ccd8d7c991aa8a01b50b70e")
|
||||
version("2.4.2", sha256="1fe83501edfc3a7ec96bb1e69db3fd5ea1730135bd73ab152186fd0b437013bc")
|
||||
version(
|
||||
"2.4.1-SNAP-0910052249",
|
||||
@@ -27,7 +25,10 @@ class Fcgi(AutotoolsPackage):
|
||||
url="https://github.com/FastCGI-Archives/FastCGI.com/raw/master/original_snapshot/fcgi-2.4.1-SNAP-0910052249.tar.gz",
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
depends_on("libtool", type="build")
|
||||
|
||||
parallel = False
|
||||
|
||||
@@ -20,12 +20,16 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
version("develop", branch="develop", deprecated=True)
|
||||
version("2.3.1", tag="v2.3.1", commit="6c04b9b21790533e457764bd7f8f26757db1552f")
|
||||
version("2.3.0", tag="v2.3.0", commit="90bc8267fceb02060e54646f73b45d4252aef491")
|
||||
version("2.2.1", tag="v2.2.1", commit="84b5b232aebab40610f57387778db80f6c8c84c5")
|
||||
version("2.2.0", tag="v2.2.0", commit="dd531ac16c5df124d76e385c6ebe9b9589c2d3ad")
|
||||
version("2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0")
|
||||
version("2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22")
|
||||
version(
|
||||
"2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0", deprecated=True
|
||||
)
|
||||
version(
|
||||
"2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22", deprecated=True
|
||||
)
|
||||
|
||||
variant(
|
||||
"backend",
|
||||
@@ -46,8 +50,8 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
description="Set Caliper Profiling Detail",
|
||||
multi=False,
|
||||
)
|
||||
variant("kokkos", default=False, description="Enable Kokkos Support")
|
||||
variant("openmp", default=False, description="Enable OpenMP Support")
|
||||
variant("kokkos", default=False, description="Enable Kokkos Support", when="@:2.3.1")
|
||||
variant("openmp", default=False, description="Enable OpenMP Support", when="@:2.3.1")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
@@ -69,18 +73,22 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
depends_on("boost@1.79.0:", when="@2.2:")
|
||||
depends_on("kokkos@3.2.00:", when="+kokkos")
|
||||
depends_on("kokkos@3.7:", when="+kokkos @2.3:")
|
||||
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda")
|
||||
depends_on("kokkos@3.7:", when="@2.4:")
|
||||
depends_on("kokkos +cuda", when="+kokkos +cuda")
|
||||
requires("^kokkos +cuda_constexpr +cuda_lambda", when="^kokkos +cuda")
|
||||
depends_on("kokkos +rocm", when="+kokkos +rocm")
|
||||
depends_on("kokkos +openmp", when="+kokkos +openmp")
|
||||
depends_on("legion@cr-20210122", when="backend=legion @2.0:2.2.1")
|
||||
requires("+openmp", when="@:2.3.1 ^kokkos +openmp")
|
||||
depends_on("legion@cr-20210122", when="backend=legion @2.0:2.1.0")
|
||||
depends_on("legion@cr-20230307", when="backend=legion @2.2.0:2.2.1")
|
||||
depends_on("legion@24.03.0:", when="backend=legion @2.2.2:")
|
||||
depends_on("legion@24.09.0:", when="backend=legion @2.3.1:")
|
||||
depends_on("legion+shared", when="backend=legion +shared")
|
||||
depends_on("legion+hdf5", when="backend=legion +hdf5")
|
||||
depends_on("legion+kokkos", when="backend=legion +kokkos")
|
||||
depends_on("legion+openmp", when="backend=legion +openmp")
|
||||
depends_on("legion+cuda", when="backend=legion +cuda")
|
||||
depends_on("legion+rocm", when="backend=legion +rocm")
|
||||
depends_on("legion+kokkos", when="backend=legion ^kokkos")
|
||||
depends_on("legion+openmp", when="backend=legion ^kokkos+openmp")
|
||||
depends_on("legion+cuda", when="backend=legion ^kokkos+cuda")
|
||||
depends_on("legion+rocm", when="backend=legion ^kokkos+rocm")
|
||||
depends_on("hdf5@1.10.7:", when="backend=legion +hdf5")
|
||||
depends_on("hpx@1.10.0: cxxstd=17 malloc=system", when="backend=hpx")
|
||||
depends_on("mpi")
|
||||
@@ -97,11 +105,13 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
|
||||
|
||||
# Propagate cuda_arch requirement to dependencies
|
||||
for _flag in CudaPackage.cuda_arch_values:
|
||||
requires(f"+cuda cuda_arch={_flag}", when=f"^kokkos +cuda cuda_arch={_flag}")
|
||||
depends_on(f"kokkos cuda_arch={_flag}", when=f"+cuda+kokkos cuda_arch={_flag}")
|
||||
depends_on(f"legion cuda_arch={_flag}", when=f"backend=legion +cuda cuda_arch={_flag}")
|
||||
|
||||
# Propagate amdgpu_target requirement to dependencies
|
||||
for _flag in ROCmPackage.amdgpu_targets:
|
||||
requires(f"+rocm amdgpu_target={_flag}", when=f"^kokkos +rocm amdgpu_target={_flag}")
|
||||
depends_on(f"kokkos amdgpu_target={_flag}", when=f"+kokkos +rocm amdgpu_target={_flag}")
|
||||
depends_on(
|
||||
f"legion amdgpu_target={_flag}", when=f"backend=legion +rocm amdgpu_target={_flag}"
|
||||
@@ -130,13 +140,13 @@ def cmake_args(self):
|
||||
self.define_from_variant("ENABLE_DOCUMENTATION", "doc"),
|
||||
]
|
||||
|
||||
if self.spec.satisfies("+rocm"):
|
||||
if self.spec.satisfies("^kokkos +rocm"):
|
||||
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
|
||||
options.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc))
|
||||
if self.spec.satisfies("backend=legion"):
|
||||
# CMake pulled in via find_package(Legion) won't work without this
|
||||
options.append(self.define("HIP_PATH", "{0}/hip".format(spec["hip"].prefix)))
|
||||
elif self.spec.satisfies("+kokkos"):
|
||||
elif self.spec.satisfies("^kokkos"):
|
||||
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx))
|
||||
else:
|
||||
# kept for supporing version prior to 2.2
|
||||
|
||||
@@ -22,6 +22,7 @@ class FluxSched(CMakePackage, AutotoolsPackage):
|
||||
license("LGPL-3.0-only")
|
||||
|
||||
version("master", branch="master")
|
||||
version("0.42.1", sha256="ab56b257e4918ad7e26ef6a375d0ea500a4929bf6633937f0c11c06e21db56b9")
|
||||
version("0.41.0", sha256="c89baf72867031847748c157aa99f3b36755f2801df917aae66010d2112e10fe")
|
||||
version("0.40.0", sha256="1484befcf8628b0af7833bf550d0bb3864db32b70f2c1bb363c35e30ada1ecc5")
|
||||
version("0.39.0", sha256="7e87029f8ad17b9286096e4e2d44982b5d6634908aefde3282497bdd3f44f2f8")
|
||||
|
||||
@@ -18,6 +18,8 @@ class Fms(CMakePackage):
|
||||
license("LGPL-3.0-or-later")
|
||||
|
||||
maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett", "rem1776", "climbfuji")
|
||||
version("2025.01", sha256="19997ef5468a06c60c1e7af3a56ab7f8a33da814a30827293ca34df5bd888d6f")
|
||||
version("2024.03", sha256="4c1e6bdfafcfec19a4a1c08770c313ab3135d47ec8319f6b07f24d2589caf44d")
|
||||
version("2024.02", sha256="47e5740bb066f5eb032e1de163eb762c7258880a2932f4cc4e34e769e0cc2b0e")
|
||||
version(
|
||||
"2024.01.01", sha256="41c8686bad2b1aed76275e35cbe1af855f7dfce9b6d8907744ea2e8174758f6a"
|
||||
@@ -64,6 +66,13 @@ class Fms(CMakePackage):
|
||||
when="@2023.03",
|
||||
)
|
||||
|
||||
variant(
|
||||
"portable_kinds",
|
||||
description="Use iso_c_binding variable kinds",
|
||||
when="@2025.01:",
|
||||
default=False,
|
||||
)
|
||||
|
||||
variant("shared", description="Build shared libraries", when="@2024.02:", default=False)
|
||||
# What the following patch is providing is available in version 2024.03
|
||||
# and newer so it is only needed to 2024.02
|
||||
@@ -131,6 +140,7 @@ def cmake_args(self):
|
||||
self.define_from_variant("OPENMP"),
|
||||
self.define_from_variant("ENABLE_QUAD_PRECISION", "quad_precision"),
|
||||
self.define_from_variant("SHARED_LIBS", "shared"),
|
||||
self.define_from_variant("PORTABLE_KINDS", "portable_kinds"),
|
||||
self.define_from_variant("WITH_YAML", "yaml"),
|
||||
self.define_from_variant("CONSTANTS"),
|
||||
self.define_from_variant("LARGEFILE", "large_file"),
|
||||
|
||||
45
var/spack/repos/builtin/packages/func/package.py
Normal file
45
var/spack/repos/builtin/packages/func/package.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Func(CMakePackage):
|
||||
"""(Function Comparator) is a C++ tool for quickly profiling the performance
|
||||
of various different abstracted implementations of mathematical function evaluations"""
|
||||
|
||||
homepage = "https://github.com/uofs-simlab/func"
|
||||
url = "https://github.com/uofs-simlab/func/archive/refs/tags/v2.0.tar.gz"
|
||||
git = "https://github.com/uofs-simlab/func"
|
||||
|
||||
license("GPL/LGPL")
|
||||
maintainers("Chrismarsh")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.2.0", sha256="bd4ecbc27096fa0b913fb46059e02298a96afd4912d549eb68b5c4c090999976")
|
||||
version("2.1.0", sha256="150cc53fe90df16a1b06f34c3293f4aef4557ce42b30e1095e7570b1c367b9f7")
|
||||
version("2.0", sha256="ca25b960c72bebc5b0be0fedc189ef24e669d21a7571fd59f751a187fb6c1cea")
|
||||
version("1.0", sha256="60dbc353f82208efde08eeaea1fabd15e805b6c517a8e033d168027c89884fbf")
|
||||
|
||||
variant(
|
||||
"armadillo",
|
||||
default=True,
|
||||
description="Use Armadillo to enable ChebyInterpTables or PadeTable tables.",
|
||||
)
|
||||
variant("openmp", default=True, description="Enable OpenMP")
|
||||
variant("examples", default=False, description="Build examples")
|
||||
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("boost")
|
||||
depends_on("armadillo", when="+armadillo")
|
||||
depends_on("llvm-openmp", when="%apple-clang +openmp")
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define_from_variant("FUNC_USE_OPENMP", "openmp"),
|
||||
self.define_from_variant("FUNC_USE_ARMADILLO", "armadillo"),
|
||||
self.define_from_variant("BUILD_EXAMPLES", "examples"),
|
||||
]
|
||||
return args
|
||||
36
var/spack/repos/builtin/packages/g4vg/package.py
Normal file
36
var/spack/repos/builtin/packages/g4vg/package.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class G4vg(CMakePackage):
|
||||
"""Generate VecGeom geometry representations from in-memory Geant4 geometry."""
|
||||
|
||||
homepage = "https://github.com/celeritas-project/g4vg"
|
||||
url = "https://github.com/celeritas-project/g4vg/releases/download/v1.0.1/g4vg-1.0.1.tar.gz"
|
||||
|
||||
maintainers("sethrj", "drbenmorgan")
|
||||
|
||||
license("Apache-2.0", checked_by="sethrj")
|
||||
|
||||
version("1.0.1", sha256="add7ce4bc37889cac2101323a997cea8574b18da6cbeffdab44a2b714d134e99")
|
||||
|
||||
variant("debug", default=False, description="Enable runtime debug assertions")
|
||||
variant("shared", default=True, description="Build shared libraries")
|
||||
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("vecgeom@1.2.8:")
|
||||
depends_on("geant4")
|
||||
|
||||
def cmake_args(self):
|
||||
define = self.define
|
||||
from_variant = self.define_from_variant
|
||||
args = [
|
||||
from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||
from_variant("G4VG_DEBUG", "debug"),
|
||||
define("G4VG_BUILD_TESTS", False),
|
||||
]
|
||||
|
||||
return args
|
||||
@@ -38,69 +38,99 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage):
|
||||
version("master", branch="master")
|
||||
|
||||
version("14.2.0", sha256="a7b39bc69cbf9e25826c5a60ab26477001f7c08d85cec04bc0e29cabed6f3cc9")
|
||||
version("14.1.0", sha256="e283c654987afe3de9d8080bc0bd79534b5ca0d681a73a11ff2b5d3767426840")
|
||||
|
||||
version("13.3.0", sha256="0845e9621c9543a13f484e94584a49ffc0129970e9914624235fc1d061a0c083")
|
||||
version("13.2.0", sha256="e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da")
|
||||
version("13.1.0", sha256="61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86")
|
||||
|
||||
version("12.4.0", sha256="704f652604ccbccb14bdabf3478c9511c89788b12cb3bbffded37341916a9175")
|
||||
version("12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b")
|
||||
version("12.2.0", sha256="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff")
|
||||
version("12.1.0", sha256="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b")
|
||||
|
||||
version("11.5.0", sha256="a6e21868ead545cf87f0c01f84276e4b5281d672098591c1c896241f09363478")
|
||||
version("11.4.0", sha256="3f2db222b007e8a4a23cd5ba56726ef08e8b1f1eb2055ee72c1402cea73a8dd9")
|
||||
version("11.3.0", sha256="b47cf2818691f5b1e21df2bb38c795fac2cfbd640ede2d0a5e1c89e338a3ac39")
|
||||
version("11.2.0", sha256="d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b")
|
||||
version("11.1.0", sha256="4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf")
|
||||
|
||||
version("10.5.0", sha256="25109543fdf46f397c347b5d8b7a2c7e5694a5a51cce4b9c6e1ea8a71ca307c1")
|
||||
version("10.4.0", sha256="c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1")
|
||||
version("10.3.0", sha256="64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344")
|
||||
version("10.2.0", sha256="b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c")
|
||||
version("10.1.0", sha256="b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2")
|
||||
|
||||
version("9.5.0", sha256="27769f64ef1d4cd5e2be8682c0c93f9887983e6cfd1a927ce5a0a2915a95cf8f")
|
||||
version("9.4.0", sha256="c95da32f440378d7751dd95533186f7fc05ceb4fb65eb5b85234e6299eb9838e")
|
||||
version("9.3.0", sha256="71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1")
|
||||
version("9.2.0", sha256="ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206")
|
||||
version("9.1.0", sha256="79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0")
|
||||
|
||||
version("8.5.0", sha256="d308841a511bb830a6100397b0042db24ce11f642dab6ea6ee44842e5325ed50")
|
||||
version("8.4.0", sha256="e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4")
|
||||
version("8.3.0", sha256="64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c")
|
||||
version("8.2.0", sha256="196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080")
|
||||
version("8.1.0", sha256="1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153")
|
||||
|
||||
version("7.5.0", sha256="b81946e7f01f90528a1f7352ab08cc602b9ccc05d4e44da4bd501c5a189ee661")
|
||||
version("7.4.0", sha256="eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51")
|
||||
version("7.3.0", sha256="832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c")
|
||||
version("7.2.0", sha256="1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a")
|
||||
version("7.1.0", sha256="8a8136c235f64c6fef69cac0d73a46a1a09bb250776a050aec8f9fc880bebc17")
|
||||
|
||||
version("6.5.0", sha256="7ef1796ce497e89479183702635b14bb7a46b53249209a5e0f999bebf4740945")
|
||||
version("6.4.0", sha256="850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4")
|
||||
version("6.3.0", sha256="f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f")
|
||||
version("6.2.0", sha256="9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5")
|
||||
version("6.1.0", sha256="09c4c85cabebb971b1de732a0219609f93fc0af5f86f6e437fd8d7f832f1a351")
|
||||
|
||||
version("5.5.0", sha256="530cea139d82fe542b358961130c69cfde8b3d14556370b65823d2f91f0ced87")
|
||||
version("5.4.0", sha256="608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a")
|
||||
version("5.3.0", sha256="b84f5592e9218b73dbae612b5253035a7b34a9a1f7688d2e1bfaaf7267d5c4db")
|
||||
version("5.2.0", sha256="5f835b04b5f7dd4f4d2dc96190ec1621b8d89f2dc6f638f9f8bc1b1014ba8cad")
|
||||
version("5.1.0", sha256="b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad")
|
||||
|
||||
version("4.9.4", sha256="6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092")
|
||||
version("4.9.3", sha256="2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e")
|
||||
version("4.9.2", sha256="2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd")
|
||||
version("4.9.1", sha256="d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e")
|
||||
version("4.8.5", sha256="22fb1e7e0f68a63cee631d85b20461d1ea6bda162f03096350e38c8d427ecf23")
|
||||
version("4.8.4", sha256="4a80aa23798b8e9b5793494b8c976b39b8d9aa2e53cd5ed5534aff662a7f8695")
|
||||
version("4.7.4", sha256="92e61c6dc3a0a449e62d72a38185fda550168a86702dea07125ebd3ec3996282")
|
||||
version("4.6.4", sha256="35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8")
|
||||
version("4.5.4", sha256="eef3f0456db8c3d992cbb51d5d32558190bc14f3bc19383dd93acc27acc6befc")
|
||||
|
||||
with default_args(deprecated=True):
|
||||
version(
|
||||
"14.1.0", sha256="e283c654987afe3de9d8080bc0bd79534b5ca0d681a73a11ff2b5d3767426840"
|
||||
)
|
||||
|
||||
version(
|
||||
"13.2.0", sha256="e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da"
|
||||
)
|
||||
version(
|
||||
"13.1.0", sha256="61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86"
|
||||
)
|
||||
|
||||
version(
|
||||
"12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b"
|
||||
)
|
||||
version(
|
||||
"12.2.0", sha256="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff"
|
||||
)
|
||||
version(
|
||||
"12.1.0", sha256="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b"
|
||||
)
|
||||
|
||||
version(
|
||||
"11.4.0", sha256="3f2db222b007e8a4a23cd5ba56726ef08e8b1f1eb2055ee72c1402cea73a8dd9"
|
||||
)
|
||||
version(
|
||||
"11.3.0", sha256="b47cf2818691f5b1e21df2bb38c795fac2cfbd640ede2d0a5e1c89e338a3ac39"
|
||||
)
|
||||
version(
|
||||
"11.2.0", sha256="d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
|
||||
)
|
||||
version(
|
||||
"11.1.0", sha256="4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf"
|
||||
)
|
||||
|
||||
version(
|
||||
"10.4.0", sha256="c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1"
|
||||
)
|
||||
version(
|
||||
"10.3.0", sha256="64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344"
|
||||
)
|
||||
version(
|
||||
"10.2.0", sha256="b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c"
|
||||
)
|
||||
version(
|
||||
"10.1.0", sha256="b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2"
|
||||
)
|
||||
|
||||
version("9.4.0", sha256="c95da32f440378d7751dd95533186f7fc05ceb4fb65eb5b85234e6299eb9838e")
|
||||
version("9.3.0", sha256="71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1")
|
||||
version("9.2.0", sha256="ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206")
|
||||
version("9.1.0", sha256="79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0")
|
||||
|
||||
version("8.4.0", sha256="e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4")
|
||||
version("8.3.0", sha256="64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c")
|
||||
version("8.2.0", sha256="196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080")
|
||||
version("8.1.0", sha256="1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153")
|
||||
|
||||
version("7.4.0", sha256="eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51")
|
||||
version("7.3.0", sha256="832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c")
|
||||
version("7.2.0", sha256="1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a")
|
||||
version("7.1.0", sha256="8a8136c235f64c6fef69cac0d73a46a1a09bb250776a050aec8f9fc880bebc17")
|
||||
|
||||
version("6.4.0", sha256="850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4")
|
||||
version("6.3.0", sha256="f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f")
|
||||
version("6.2.0", sha256="9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5")
|
||||
version("6.1.0", sha256="09c4c85cabebb971b1de732a0219609f93fc0af5f86f6e437fd8d7f832f1a351")
|
||||
|
||||
version("5.4.0", sha256="608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a")
|
||||
version("5.3.0", sha256="b84f5592e9218b73dbae612b5253035a7b34a9a1f7688d2e1bfaaf7267d5c4db")
|
||||
version("5.2.0", sha256="5f835b04b5f7dd4f4d2dc96190ec1621b8d89f2dc6f638f9f8bc1b1014ba8cad")
|
||||
version("5.1.0", sha256="b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad")
|
||||
|
||||
version("4.9.3", sha256="2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e")
|
||||
version("4.9.2", sha256="2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd")
|
||||
version("4.9.1", sha256="d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e")
|
||||
version("4.8.4", sha256="4a80aa23798b8e9b5793494b8c976b39b8d9aa2e53cd5ed5534aff662a7f8695")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
@@ -548,6 +578,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage):
|
||||
when="@13.2.0 target=aarch64:",
|
||||
)
|
||||
|
||||
# see https://gcc.gnu.org/gcc-11/changes.html 11.5 Caveats
|
||||
patch("patch-5522dec054cb940fe83661b96249aa12c54c1d77.patch", when="@11.5.0 target=aarch64:")
|
||||
|
||||
build_directory = "spack-build"
|
||||
|
||||
compiler_languages = ["c", "cxx", "fortran", "d", "go"]
|
||||
@@ -800,11 +833,6 @@ def configure_args(self):
|
||||
"--with-as=" + binutils.join("as"),
|
||||
]
|
||||
)
|
||||
elif spec.satisfies("%apple-clang@15:"):
|
||||
# https://github.com/iains/gcc-darwin-arm64/issues/117
|
||||
# https://github.com/iains/gcc-12-branch/issues/22
|
||||
# https://github.com/iains/gcc-13-branch/issues/8
|
||||
options.append("--with-ld=/Library/Developer/CommandLineTools/usr/bin/ld-classic")
|
||||
|
||||
# enable_bootstrap
|
||||
if spec.satisfies("+bootstrap"):
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
From 5522dec054cb940fe83661b96249aa12c54c1d77 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Vieira <andre.simoesdiasvieira@arm.com>
|
||||
Date: Fri, 8 Apr 2022 15:12:23 +0100
|
||||
Subject: [PATCH] aarch64: PR target/105157 Increase number of cores
|
||||
TARGET_CPU_DEFAULT can encode
|
||||
|
||||
This addresses the compile-time increase seen in the PR target/105157. This was
|
||||
being caused by selecting the wrong core tuning, as when we added the latest
|
||||
AArch64 the TARGET_CPU_generic tuning was pushed beyond the 0x3f mask we used
|
||||
to encode both target cpu and attributes into TARGET_CPU_DEFAULT.
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
PR target/105157
|
||||
* config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
|
||||
* config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
|
||||
(TARGET_CPU_MASK): Likewise.
|
||||
(TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
|
||||
* config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
|
||||
(aarch64_get_arch): Likewise.
|
||||
(aarch64_override_options): Use TARGET_CPU_NBITS.
|
||||
---
|
||||
gcc/config.gcc | 2 +-
|
||||
gcc/config/aarch64/aarch64.cc | 14 +++++++++-----
|
||||
gcc/config/aarch64/aarch64.h | 8 +++++++-
|
||||
3 files changed, 17 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||
index 7b58e1314ff0dc57701a77a7433de1a6e263c259..5382788e267214ccc1015d0bed85b718ebf00011 100644
|
||||
--- a/gcc/config.gcc
|
||||
+++ b/gcc/config.gcc
|
||||
@@ -4261,7 +4261,7 @@ case "${target}" in
|
||||
ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
|
||||
done
|
||||
|
||||
- ext_mask="(("$ext_mask") << 6)"
|
||||
+ ext_mask="(("$ext_mask") << TARGET_CPU_NBITS)"
|
||||
if [ x"$base_id" != x ]; then
|
||||
target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
|
||||
fi
|
||||
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
|
||||
index 3e2a6fb64725d4e37ddd89f6987795733cfff35c..cf62bdd023b5799284fdcc337a50c01ccd21493f 100644
|
||||
--- a/gcc/config/aarch64/aarch64.c
|
||||
+++ b/gcc/config/aarch64/aarch64.c
|
||||
@@ -18053,6 +18053,9 @@ aarch64_validate_mtune (const char *str, const struct processor **res)
|
||||
return false;
|
||||
}
|
||||
|
||||
+static_assert (TARGET_CPU_generic < TARGET_CPU_MASK,
|
||||
+ "TARGET_CPU_NBITS is big enough");
|
||||
+
|
||||
/* Return the CPU corresponding to the enum CPU.
|
||||
If it doesn't specify a cpu, return the default. */
|
||||
|
||||
@@ -18062,12 +18065,12 @@ aarch64_get_tune_cpu (enum aarch64_processor cpu)
|
||||
if (cpu != aarch64_none)
|
||||
return &all_cores[cpu];
|
||||
|
||||
- /* The & 0x3f is to extract the bottom 6 bits that encode the
|
||||
- default cpu as selected by the --with-cpu GCC configure option
|
||||
+ /* The & TARGET_CPU_MASK is to extract the bottom TARGET_CPU_NBITS bits that
|
||||
+ encode the default cpu as selected by the --with-cpu GCC configure option
|
||||
in config.gcc.
|
||||
???: The whole TARGET_CPU_DEFAULT and AARCH64_CPU_DEFAULT_FLAGS
|
||||
flags mechanism should be reworked to make it more sane. */
|
||||
- return &all_cores[TARGET_CPU_DEFAULT & 0x3f];
|
||||
+ return &all_cores[TARGET_CPU_DEFAULT & TARGET_CPU_MASK];
|
||||
}
|
||||
|
||||
/* Return the architecture corresponding to the enum ARCH.
|
||||
@@ -18079,7 +18082,8 @@ aarch64_get_arch (enum aarch64_arch arch)
|
||||
if (arch != aarch64_no_arch)
|
||||
return &all_architectures[arch];
|
||||
|
||||
- const struct processor *cpu = &all_cores[TARGET_CPU_DEFAULT & 0x3f];
|
||||
+ const struct processor *cpu
|
||||
+ = &all_cores[TARGET_CPU_DEFAULT & TARGET_CPU_MASK];
|
||||
|
||||
return &all_architectures[cpu->arch];
|
||||
}
|
||||
@@ -18166,7 +18170,7 @@ aarch64_override_options (void)
|
||||
{
|
||||
/* Get default configure-time CPU. */
|
||||
selected_cpu = aarch64_get_tune_cpu (aarch64_none);
|
||||
- aarch64_isa_flags = TARGET_CPU_DEFAULT >> 6;
|
||||
+ aarch64_isa_flags = TARGET_CPU_DEFAULT >> TARGET_CPU_NBITS;
|
||||
}
|
||||
|
||||
if (selected_tune)
|
||||
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
|
||||
index efa46ac0b8799b5849b609d591186e26e5cb37ff..359b6e8561faa38f53a806b8c114c83ae37e7e17 100644
|
||||
--- a/gcc/config/aarch64/aarch64.h
|
||||
+++ b/gcc/config/aarch64/aarch64.h
|
||||
@@ -813,10 +813,16 @@ enum target_cpus
|
||||
TARGET_CPU_generic
|
||||
};
|
||||
|
||||
+/* Define how many bits are used to represent the CPU in TARGET_CPU_DEFAULT.
|
||||
+ This needs to be big enough to fit the value of TARGET_CPU_generic.
|
||||
+ All bits after this are used to represent the AARCH64_CPU_DEFAULT_FLAGS. */
|
||||
+#define TARGET_CPU_NBITS 8
|
||||
+#define TARGET_CPU_MASK ((1 << TARGET_CPU_NBITS) - 1)
|
||||
+
|
||||
/* If there is no CPU defined at configure, use generic as default. */
|
||||
#ifndef TARGET_CPU_DEFAULT
|
||||
#define TARGET_CPU_DEFAULT \
|
||||
- (TARGET_CPU_generic | (AARCH64_CPU_DEFAULT_FLAGS << 6))
|
||||
+ (TARGET_CPU_generic | (AARCH64_CPU_DEFAULT_FLAGS << TARGET_CPU_NBITS))
|
||||
#endif
|
||||
|
||||
/* If inserting NOP before a mult-accumulate insn remember to adjust the
|
||||
@@ -17,6 +17,7 @@ class Geomodel(CMakePackage):
|
||||
|
||||
license("Apache-2.0", checked_by="wdconinc")
|
||||
|
||||
version("6.9.0", sha256="ea34dad8a0cd392e06794b8a1b7407dd6ad617fefd19fb4cccdf36b154749793")
|
||||
version("6.8.0", sha256="4dfd5a932955ee2618a880bb210aed9ce7087cfadd31f23f92e5ff009c8384eb")
|
||||
version("6.7.0", sha256="bfa69062ba191d0844d7099b28c0d6c3c0f87e726dacfaa21dba7a6f593d34bf")
|
||||
version("6.6.0", sha256="3cefeaa409177d45d3fa63e069b6496ca062991b0d7d71275b1748487659e91b")
|
||||
|
||||
@@ -24,6 +24,7 @@ class GftlShared(CMakePackage):
|
||||
|
||||
version("main", branch="main")
|
||||
|
||||
version("1.10.0", sha256="42158fe75fa6bee336516c7531b4c6c4e7252dee2fed541eec740209a07ceafe")
|
||||
version("1.9.0", sha256="a3291ce61b512fe88628cc074b02363c2ba3081e7b453371089121988482dd6f")
|
||||
version("1.8.0", sha256="3450161508c573ea053b2a23cdbf2a1d6fd6fdb78c162d31fc0019da0f8dd03c")
|
||||
version("1.7.0", sha256="8ba567133fcee6b93bc71f61b3bb2053b4b07c6d78f6ad98a04dfc40aa478de7")
|
||||
|
||||
@@ -38,6 +38,7 @@ class Gftl(CMakePackage):
|
||||
version("develop", branch="develop")
|
||||
version("main", branch="main")
|
||||
|
||||
version("1.15.1", sha256="13b9e17b7ec5e9ba19d0ee3ad1957bfa2015055b654891c6bb0bbe68b7a040d7")
|
||||
version("1.14.0", sha256="bf8e3ba3f708ea327c7eb1a5bd1afdce41358c6df1a323aba0f73575c25d5fc8")
|
||||
version("1.13.0", sha256="d8ef4bca5fb67e63dcd69e5377a0cef8336b00178a97450e79010552000d0a52")
|
||||
version("1.12.0", sha256="b50e17cb2109372819b3ee676e6e61fd3a517dc4c1ea293937c8a83f03b0cbd6")
|
||||
|
||||
@@ -226,7 +226,7 @@ def cmake_args(self):
|
||||
|
||||
if self.spec.satisfies("+sycl"):
|
||||
sycl_compatible_compilers = ["icpx"]
|
||||
if not (os.path.basename(self.compiler.cxx) in sycl_compatible_compilers):
|
||||
if os.path.basename(self.compiler.cxx) not in sycl_compatible_compilers:
|
||||
raise InstallError("ginkgo +sycl requires icpx compiler.")
|
||||
return args
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ class Go(Package):
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("1.23.6", sha256="039c5b04e65279daceee8a6f71e70bd05cf5b801782b6f77c6e19e2ed0511222")
|
||||
version("1.23.5", sha256="a6f3f4bbd3e6bdd626f79b668f212fbb5649daf75084fb79b678a0ae4d97423b")
|
||||
version("1.23.4", sha256="ad345ac421e90814293a9699cca19dd5238251c3f687980bbcae28495b263531")
|
||||
version("1.23.3", sha256="8d6a77332487557c6afa2421131b50f83db4ae3c579c3bc72e670ee1f6968599")
|
||||
version("1.23.2", sha256="36930162a93df417d90bd22c6e14daff4705baac2b02418edda671cdfa9cd07f")
|
||||
|
||||
@@ -23,6 +23,7 @@ class Harfbuzz(MesonPackage, AutotoolsPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("10.2.0", sha256="620e3468faec2ea8685d32c46a58469b850ef63040b3565cde05959825b48227")
|
||||
version("10.1.0", sha256="6ce3520f2d089a33cef0fc48321334b8e0b72141f6a763719aaaecd2779ecb82")
|
||||
version("10.0.1", sha256="b2cb13bd351904cb9038f907dc0dee0ae07127061242fe3556b2795c4e9748fc")
|
||||
version("10.0.0", sha256="c2dfe016ad833a5043ecc6579043f04e8e6d50064e02ad449bb466e6431e3e04")
|
||||
|
||||
177
var/spack/repos/builtin/packages/hip-tests/package.py
Normal file
177
var/spack/repos/builtin/packages/hip-tests/package.py
Normal file
@@ -0,0 +1,177 @@
|
||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
import os
|
||||
|
||||
import spack.build_systems.cmake
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class HipTests(CMakePackage):
|
||||
"""This repository provides unit tests for HIP implementation."""
|
||||
|
||||
homepage = "https://github.com/ROCm/hip-tests"
|
||||
url = "https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-6.1.2.tar.gz"
|
||||
git = "https://github.com/ROCm/hip-tests.git"
|
||||
tags = ["rocm"]
|
||||
|
||||
maintainers("srekolam", "renjithravindrankannath", "afzpatel")
|
||||
|
||||
version("6.3.1", sha256="0fc1cf4f46f2bbef377d65803d86c2489b01b598c468070c79c5114a661f07c6")
|
||||
version("6.3.0", sha256="8081d4ab1a43ffa1cebd646668d83008b799ab98c14daf7b455922355a439c8a")
|
||||
version("6.2.4", sha256="1478b49583d09cb3a96e26ec3bf8dc5ff3e3ec72fa133bb6d7768595d825051e")
|
||||
version("6.2.1", sha256="90fcf0169889533b882d289f9cb8a7baf9bd46a3ce36752b915083931dc839f1")
|
||||
version("6.2.0", sha256="314837dbac78be71844ceb959476470c484fdcd4fb622ff8de9277783e0fcf1c")
|
||||
version("6.1.2", sha256="5b14e4a30d8d8fb56c43e262009646ba9188eac1c8ff882d9a606a4bec69b56b")
|
||||
version("6.1.1", sha256="10c96ee72adf4580056292ab17cfd858a2fd7bc07abeb41c6780bd147b47f7af")
|
||||
version("6.1.0", sha256="cf3a6a7c43116032d933cc3bc88bfc4b17a4ee1513c978e751755ca11a5ed381")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("cmake", type="run")
|
||||
|
||||
for ver in ["6.1.0", "6.1.1", "6.1.2", "6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1"]:
|
||||
depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}")
|
||||
depends_on(f"hip@{ver}", when=f"@{ver}")
|
||||
depends_on(f"rocm-core@{ver}", when=f"@{ver}")
|
||||
depends_on(f"rocminfo@{ver}", when=f"@{ver}")
|
||||
depends_on(f"hipify-clang@{ver}", when=f"@{ver}")
|
||||
depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}")
|
||||
|
||||
root_cmakelists_dir = "catch"
|
||||
|
||||
def patch(self):
|
||||
filter_file(
|
||||
"${ROCM_PATH}/bin/rocm_agent_enumerator",
|
||||
f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator",
|
||||
"catch/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"/opt/rocm/bin/rocm_agent_enumerator",
|
||||
f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator",
|
||||
"catch/hipTestMain/hip_test_context.cc",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${HIP_PATH}/llvm",
|
||||
self.spec["llvm-amdgpu"].prefix,
|
||||
"samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${ROCM_PATH}/llvm",
|
||||
self.spec["llvm-amdgpu"].prefix,
|
||||
"catch/CMakeLists.txt",
|
||||
"samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/21_cmake_hip_cxx_clang/CMakeLists.txt",
|
||||
"samples/2_Cookbook/18_cmake_hip_device/CMakeLists.txt",
|
||||
"samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt",
|
||||
"samples/2_Cookbook/23_cmake_hiprtc/CMakeLists.txt",
|
||||
"samples/2_Cookbook/22_cmake_hip_lang/CMakeLists.txt",
|
||||
"samples/2_Cookbook/19_cmake_lang/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
filter_file(
|
||||
"${CMAKE_PREFIX_PATH}/bin/hipify-perl",
|
||||
f"{self.spec['hipify-clang'].prefix.bin}/hipify-perl",
|
||||
"samples/0_Intro/square/CMakeLists.txt",
|
||||
string=True,
|
||||
)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("CXX", self.spec["hip"].hipcc)
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define("HIP_PLATFORM", "amd"),
|
||||
self.define("HIP_PATH", self.spec["hip"].prefix),
|
||||
self.define("ROCM_PATH", self.spec["hip"].prefix),
|
||||
]
|
||||
if self.spec.satisfies("^cmake@3.21.0:3.21.2"):
|
||||
args.append(self.define("__skip_rocmclang", "ON"))
|
||||
return args
|
||||
|
||||
def build(self, spec, prefix):
|
||||
with working_dir(self.build_directory):
|
||||
make("build_tests")
|
||||
|
||||
@run_after("install")
|
||||
def cache_test_sources(self):
|
||||
"""Copy the tests source files after the package is installed to an
|
||||
install test subdirectory for use during `spack test run`."""
|
||||
cache_extra_test_sources(self, "samples")
|
||||
|
||||
def test_samples(self):
|
||||
"""build and run all hip samples"""
|
||||
sample_test_binaries = [
|
||||
"0_Intro/bit_extract/bit_extract",
|
||||
"0_Intro/module_api/launchKernelHcc.hip.out",
|
||||
"0_Intro/module_api/runKernel.hip.out",
|
||||
"0_Intro/module_api/defaultDriver.hip.out",
|
||||
"0_Intro/module_api_global/runKernel1.hip.out",
|
||||
"0_Intro/square/square",
|
||||
"1_Utils/hipDispatchLatency/hipDispatchEnqueueRateMT",
|
||||
"1_Utils/hipDispatchLatency/hipDispatchLatency",
|
||||
"1_Utils/hipInfo/hipInfo",
|
||||
"2_Cookbook/0_MatrixTranspose/MatrixTranspose",
|
||||
"2_Cookbook/1_hipEvent/hipEvent",
|
||||
"2_Cookbook/3_shared_memory/sharedMemory",
|
||||
"2_Cookbook/4_shfl/shfl",
|
||||
"2_Cookbook/5_2dshfl/2dshfl",
|
||||
"2_Cookbook/6_dynamic_shared/dynamic_shared",
|
||||
"2_Cookbook/8_peer2peer/peer2peer",
|
||||
"2_Cookbook/9_unroll/unroll",
|
||||
"2_Cookbook/10_inline_asm/inline_asm",
|
||||
"2_Cookbook/11_texture_driver/texture2dDrv",
|
||||
"2_Cookbook/12_cmake_hip_add_executable/MatrixTranspose1",
|
||||
"2_Cookbook/13_occupancy/occupancy",
|
||||
"2_Cookbook/14_gpu_arch/gpuarch",
|
||||
"2_Cookbook/15_static_library/device_functions/test_device_static",
|
||||
"2_Cookbook/15_static_library/host_functions/test_opt_static",
|
||||
"2_Cookbook/16_assembly_to_executable/square_asm.out",
|
||||
"2_Cookbook/17_llvm_ir_to_executable/square_ir.out",
|
||||
"2_Cookbook/18_cmake_hip_device/test_cpp",
|
||||
"2_Cookbook/19_cmake_lang/test_cpp1",
|
||||
"2_Cookbook/19_cmake_lang/test_fortran",
|
||||
"2_Cookbook/21_cmake_hip_cxx_clang/square1",
|
||||
"2_Cookbook/22_cmake_hip_lang/square2",
|
||||
"2_Cookbook/23_cmake_hiprtc/test",
|
||||
]
|
||||
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, "samples")
|
||||
prefix_paths = ";".join(spack.build_systems.cmake.get_cmake_prefix_path(self))
|
||||
clang_cpp_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang++")
|
||||
clang_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang")
|
||||
cc_options = [
|
||||
f"-DCMAKE_MODULE_PATH={self.spec['hip'].prefix.lib.cmake.hip}",
|
||||
f"-DCMAKE_PREFIX_PATH={prefix_paths}",
|
||||
f"-DCMAKE_CXX_COMPILER={clang_cpp_path}",
|
||||
f"-DCMAKE_C_COMPILER={clang_path}",
|
||||
f"-DHIP_HIPCC_EXECUTABLE={self.spec['hip'].prefix.bin}/hipcc",
|
||||
f"-DCMAKE_HIP_COMPILER_ROCM={clang_cpp_path}",
|
||||
".",
|
||||
]
|
||||
|
||||
cmake = which(self.spec["cmake"].prefix.bin.cmake)
|
||||
with working_dir(test_dir, create=True):
|
||||
cmake(*cc_options)
|
||||
make("build_samples")
|
||||
for binary_path in sample_test_binaries:
|
||||
# binaries need to run in their directories
|
||||
bin_dir, binary = os.path.split(binary_path)
|
||||
with working_dir(bin_dir, create=True):
|
||||
with test_part(
|
||||
self,
|
||||
"test_sample_{0}".format(binary),
|
||||
purpose="configure, build and run test: {0}".format(binary),
|
||||
):
|
||||
exe = Executable(binary)
|
||||
if binary == "hipDispatchEnqueueRateMT":
|
||||
options = ["16", "0"]
|
||||
else:
|
||||
options = []
|
||||
exe(*options)
|
||||
@@ -5,7 +5,6 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
import spack.build_environment
|
||||
from spack.hooks.sbang import filter_shebang
|
||||
from spack.package import *
|
||||
|
||||
@@ -325,33 +324,6 @@ class Hip(CMakePackage):
|
||||
when=f"@{d_version} +cuda",
|
||||
)
|
||||
|
||||
# Add hiptests sources thru the below
|
||||
for d_version, d_shasum in [
|
||||
("6.3.1", "0fc1cf4f46f2bbef377d65803d86c2489b01b598c468070c79c5114a661f07c6"),
|
||||
("6.3.0", "8081d4ab1a43ffa1cebd646668d83008b799ab98c14daf7b455922355a439c8a"),
|
||||
("6.2.4", "1478b49583d09cb3a96e26ec3bf8dc5ff3e3ec72fa133bb6d7768595d825051e"),
|
||||
("6.2.1", "90fcf0169889533b882d289f9cb8a7baf9bd46a3ce36752b915083931dc839f1"),
|
||||
("6.2.0", "314837dbac78be71844ceb959476470c484fdcd4fb622ff8de9277783e0fcf1c"),
|
||||
("6.1.2", "5b14e4a30d8d8fb56c43e262009646ba9188eac1c8ff882d9a606a4bec69b56b"),
|
||||
("6.1.1", "10c96ee72adf4580056292ab17cfd858a2fd7bc07abeb41c6780bd147b47f7af"),
|
||||
("6.1.0", "cf3a6a7c43116032d933cc3bc88bfc4b17a4ee1513c978e751755ca11a5ed381"),
|
||||
("6.0.2", "740ca064f4909c20d83226a63c2f164f7555783ec5f5f70be5bc23d3587ad829"),
|
||||
("6.0.0", "e8f92a0f5d1f6093ca1fb24ff1b7140128900fcdc6e9f01f153d6907e5c2d807"),
|
||||
("5.7.1", "28fbdf49f405adfee903bc0f05a43ac392c55b34c514c3582dfb7d6d67e79985"),
|
||||
("5.7.0", "b1dae3cfc715e71dce92ac1da94265a9398944c76cee85ffab8f0c93665a48d6"),
|
||||
("5.6.1", "5b3002ddfafda162329e4d9e6ac1200eeb48ff08e666b342aa8aeca30750f48b"),
|
||||
("5.6.0", "8cf4509bf9c0747dab8ed8fec1365a9156792034b517207a0b2d63270429fd2e"),
|
||||
]:
|
||||
resource(
|
||||
name="hip-tests",
|
||||
url=f"https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-{d_version}.tar.gz",
|
||||
sha256=d_shasum,
|
||||
expand=True,
|
||||
destination="",
|
||||
placement="hip-tests",
|
||||
when=f"@{d_version}",
|
||||
)
|
||||
|
||||
# Improve compilation without git repo and remove compiler rt linkage
|
||||
# for host and correction in CMake target path variable and
|
||||
# correcting the CMake path variable.
|
||||
@@ -673,69 +645,3 @@ def cmake_args(self):
|
||||
if self.spec.satisfies("@6.0:"):
|
||||
args.append(self.define("HIPCC_BIN_DIR", self.spec["hipcc"].prefix.bin))
|
||||
return args
|
||||
|
||||
test_src_dir_old = "samples"
|
||||
test_src_dir = "hip-tests/samples"
|
||||
|
||||
@run_after("install")
|
||||
def install_samples(self):
|
||||
if self.spec.satisfies("@5.6.0:"):
|
||||
install_tree(self.test_src_dir, self.spec.prefix.share.samples)
|
||||
|
||||
@run_after("install")
|
||||
def cache_test_sources(self):
|
||||
"""Copy the tests source files after the package is installed to an
|
||||
install test subdirectory for use during `spack test run`."""
|
||||
if self.spec.satisfies("@5.1:5.5"):
|
||||
cache_extra_test_sources(self, [self.test_src_dir_old])
|
||||
elif self.spec.satisfies("@5.6:"):
|
||||
cache_extra_test_sources(self, [self.test_src_dir])
|
||||
|
||||
def test_samples(self):
|
||||
"""build and run all hip samples"""
|
||||
if self.spec.satisfies("@5.1:5.5"):
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir_old)
|
||||
elif self.spec.satisfies("@5.6:"):
|
||||
test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir)
|
||||
prefixes = ";".join(spack.build_environment.get_cmake_prefix_path(self))
|
||||
cc_options = ["-DCMAKE_PREFIX_PATH=" + prefixes, ".."]
|
||||
|
||||
amdclang_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "amdclang++")
|
||||
os.environ["CXX"] = amdclang_path
|
||||
os.environ["FC"] = "/usr/bin/gfortran"
|
||||
|
||||
cmake = which(self.spec["cmake"].prefix.bin.cmake)
|
||||
|
||||
for root, dirs, files in os.walk(test_dir):
|
||||
dirs.sort()
|
||||
if "CMakeLists.txt" in files or "Makefile" in files:
|
||||
with working_dir(root, create=True):
|
||||
head, test_name = os.path.split(root)
|
||||
with test_part(
|
||||
self,
|
||||
"test_sample_{0}".format(test_name),
|
||||
purpose="configure, build and run test: {0}".format(test_name),
|
||||
):
|
||||
if "CMakeLists.txt" in files:
|
||||
print("Configuring test " + test_name)
|
||||
os.mkdir("build")
|
||||
os.chdir("build")
|
||||
cmake(*cc_options)
|
||||
|
||||
print("Building test " + test_name)
|
||||
make(parallel=False)
|
||||
# iterate through the files in dir to find the newly built binary
|
||||
for file in os.listdir("."):
|
||||
if (
|
||||
file not in files
|
||||
and os.path.isfile(file)
|
||||
and os.access(file, os.X_OK)
|
||||
and not file.endswith(".o")
|
||||
):
|
||||
print("Executing test binary: " + file)
|
||||
exe = which(file)
|
||||
if file == "hipDispatchEnqueueRateMT":
|
||||
options = ["16", "0"]
|
||||
else:
|
||||
options = []
|
||||
exe(*options)
|
||||
|
||||
@@ -322,7 +322,7 @@ def configure_args(self):
|
||||
if spec.satisfies("+sycl"):
|
||||
configure_args.append("--with-sycl")
|
||||
sycl_compatible_compilers = ["icpx"]
|
||||
if not (os.path.basename(self.compiler.cxx) in sycl_compatible_compilers):
|
||||
if os.path.basename(self.compiler.cxx) not in sycl_compatible_compilers:
|
||||
raise InstallError(
|
||||
"Hypre's SYCL GPU Backend requires the oneAPI CXX (icpx) compiler."
|
||||
)
|
||||
|
||||
@@ -19,6 +19,8 @@ class Icu4c(AutotoolsPackage, MSBuildPackage):
|
||||
|
||||
license("Unicode-TOU")
|
||||
|
||||
version("76.1", sha256="dfacb46bfe4747410472ce3e1144bf28a102feeaa4e3875bac9b4c6cf30f4f3e")
|
||||
version("75.1", sha256="cb968df3e4d2e87e8b11c49a5d01c787bd13b9545280fc6642f826527618caef")
|
||||
version("74.2", sha256="68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c")
|
||||
version("67.1", sha256="94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc")
|
||||
version("66.1", sha256="52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e")
|
||||
@@ -40,7 +42,7 @@ class Icu4c(AutotoolsPackage, MSBuildPackage):
|
||||
variant(
|
||||
"cxxstd",
|
||||
default="11",
|
||||
values=("11", "14", "17"),
|
||||
values=(conditional("11", "14", when="@:74"), "17"),
|
||||
multi=False,
|
||||
description="Use the specified C++ standard when building",
|
||||
)
|
||||
@@ -70,7 +72,7 @@ def url_for_version(self, version):
|
||||
return url.format(version.dashed, version.underscored)
|
||||
|
||||
def flag_handler(self, name, flags):
|
||||
if name == "cxxflags":
|
||||
if name == "cxxflags" and not self.spec.platform == "windows":
|
||||
# Control of the C++ Standard is via adding the required "-std"
|
||||
# flag to CXXFLAGS in env
|
||||
flags.append(getattr(self.compiler, f"cxx{self.spec.variants['cxxstd'].value}_flag"))
|
||||
@@ -123,7 +125,7 @@ def msbuild_args(self):
|
||||
@property
|
||||
def build_directory(self):
|
||||
solution_path = pathlib.Path(self.pkg.stage.source_path)
|
||||
if self.spec.satsifies("@:67"):
|
||||
if self.spec.satisfies("@:67"):
|
||||
solution_path = solution_path / "icu"
|
||||
solution_path = solution_path / "source" / "allinone"
|
||||
return str(solution_path)
|
||||
|
||||
@@ -30,6 +30,7 @@ class IsaL(AutotoolsPackage):
|
||||
version("master", branch="master")
|
||||
|
||||
# Current
|
||||
version("2.31.1", sha256="e1d5573a4019738243b568ab1e1422e6ab7557c5cae33cc8686944d327ad6bb4")
|
||||
version("2.30.0", sha256="bcf592c04fdfa19e723d2adf53d3e0f4efd5b956bb618fed54a1108d76a6eb56")
|
||||
version("2.29.0", sha256="832d9747ef3f0c8c05d39e3d7fd6ee5299a844e1ee7382fc8c8b52a268f36eda")
|
||||
version("2.28.0", sha256="589202efdcfe437b1786750ec81bf93055e3b88a4bdf909d3b519f2a7134034b")
|
||||
|
||||
@@ -23,6 +23,7 @@ class Justbuild(Package):
|
||||
license("Apache-2.0")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.4.3", tag="v1.4.3", commit="dfbfdc230805a7c92baa7e49d82edc2816e00511")
|
||||
version("1.4.2", tag="v1.4.2", commit="7fd5d41bc219acf0d15da5dfc75d8dd4a6c53ba3")
|
||||
version("1.4.1", tag="v1.4.1", commit="2dc306f510c7ba0661d95bd75305f7deb5eb54b2")
|
||||
version("1.4.0", tag="v1.4.0", commit="562bddf70175a602f896397f41ee5f5e07e834eb")
|
||||
|
||||
@@ -20,6 +20,7 @@ class Lcio(CMakePackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.22.4", sha256="5d60eeb4df8611059f4bc839ac098f5d7e3608a662591e9cbae48aed07995514")
|
||||
version("2.22.3", sha256="5b9715786c5e953f8854881c5d0c4a48030a5491f1701232b82e960ac7980162")
|
||||
version("2.22.2", sha256="e5ad9690af85160ef52dd407fc0995451b4293f3aee415a8ea8a950de63d87a1")
|
||||
version("2.22.1", sha256="4bc3d2c83af7b1c65d6736dd14ee82f41af7ce9bfc7cfe779c5f47417e8dc326")
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import os
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -14,6 +16,7 @@ class Leptonica(CMakePackage):
|
||||
|
||||
license("custom")
|
||||
|
||||
version("1.85.0", sha256="c01376bce0379d4ea4bc2ec5d5cbddaa49e2f06f88242619ab8c059e21adf233")
|
||||
version("1.84.1", sha256="ecd7a868403b3963c4e33623595d77f2c87667e2cfdd9b370f87729192061bef")
|
||||
version("1.83.1", sha256="4289d0a4224b614010072253531c0455a33a4d7c7a0017fe7825ed382290c0da")
|
||||
version("1.81.0", sha256="70ebc04ff8b9684205bd1d01843c635a8521255b74813bf7cce9a33368f7952c")
|
||||
@@ -36,3 +39,9 @@ def cmake_args(self):
|
||||
args = [self.define("BUILD_SHARED_LIBS", "ON")]
|
||||
|
||||
return args
|
||||
|
||||
@run_after("install")
|
||||
def pkgconfig_fixup(self):
|
||||
with working_dir(self.prefix.lib.pkgconfig):
|
||||
if not os.path.exists("lept.pc"):
|
||||
symlink(f"lept_{self.spec.variants['build_type'].value}.pc", "lept.pc")
|
||||
|
||||
@@ -20,6 +20,7 @@ class Libdrm(AutotoolsPackage, MesonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("2.4.124", sha256="ac36293f61ca4aafaf4b16a2a7afff312aa4f5c37c9fbd797de9e3c0863ca379")
|
||||
version("2.4.123", sha256="a2b98567a149a74b0f50e91e825f9c0315d86e7be9b74394dae8b298caadb79e")
|
||||
version("2.4.122", sha256="d9f5079b777dffca9300ccc56b10a93588cdfbc9dde2fae111940dfb6292f251")
|
||||
version("2.4.121", sha256="909084a505d7638887f590b70791b3bbd9069c710c948f5d1f1ce6d080cdfcab")
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 7cea256ef1a6017e722bdfd5b7381fa90580d55a Mon Sep 17 00:00:00 2001
|
||||
From: "simit.ghane" <simit.ghane@lge.com>
|
||||
Date: Tue, 7 May 2024 14:09:03 +0530
|
||||
Subject: [PATCH] fix o_flag_munging
|
||||
|
||||
---
|
||||
cipher/Makefile.am | 2 +-
|
||||
random/Makefile.am | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
|
||||
index c3d642b2..04bf25e9 100644
|
||||
--- a/cipher/Makefile.am
|
||||
+++ b/cipher/Makefile.am
|
||||
@@ -153,7 +153,7 @@ gost-s-box: gost-s-box.c
|
||||
|
||||
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/-O\([2-9sgz][2-9sgz]*\)/-O1/' -e 's/-Ofast/-O1/g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /g' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
diff --git a/random/Makefile.am b/random/Makefile.am
|
||||
index 0c935a05..a42e4306 100644
|
||||
--- a/random/Makefile.am
|
||||
+++ b/random/Makefile.am
|
||||
@@ -56,7 +56,7 @@ jitterentropy-base.c jitterentropy.h jitterentropy-base-user.h
|
||||
|
||||
# The rndjent module needs to be compiled without optimization. */
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/-O\([1-9sgz][1-9sgz]*\)/-O0/g' -e 's/-Ofast/-O0/g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /g' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From 9c11f1e12a6ddbd49b5fd38c94e6a004f8da6e29 Mon Sep 17 00:00:00 2001
|
||||
From: "simit.ghane" <simit.ghane@lge.com>
|
||||
Date: Tue, 11 Jun 2024 07:22:28 +0530
|
||||
Subject: [PATCH] random:cipher: handle substitution in sed command
|
||||
|
||||
* cipher/Makefile.am (o_flag_munging): Add 'g' flag for first sed
|
||||
expression.
|
||||
* random/Makefile.am (o_flag_munging): Likewise.
|
||||
--
|
||||
|
||||
It was there earlier and accidentally removed from
|
||||
Makefile.am of cipher and random
|
||||
|
||||
Signed-off-by: simit.ghane <simit.ghane@lge.com>
|
||||
[jk: add changelog to commit message]
|
||||
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||
---
|
||||
cipher/Makefile.am | 2 +-
|
||||
random/Makefile.am | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
|
||||
index ea9014cc..149c9f21 100644
|
||||
--- a/cipher/Makefile.am
|
||||
+++ b/cipher/Makefile.am
|
||||
@@ -169,7 +169,7 @@ gost-s-box$(EXEEXT_FOR_BUILD): gost-s-box.c
|
||||
|
||||
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /g' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
diff --git a/random/Makefile.am b/random/Makefile.am
|
||||
index c7100ef8..a42e4306 100644
|
||||
--- a/random/Makefile.am
|
||||
+++ b/random/Makefile.am
|
||||
@@ -56,7 +56,7 @@ jitterentropy-base.c jitterentropy.h jitterentropy-base-user.h
|
||||
|
||||
# The rndjent module needs to be compiled without optimization. */
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /g' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -17,26 +17,26 @@ class Libgcrypt(AutotoolsPackage):
|
||||
|
||||
version("1.11.0", sha256="09120c9867ce7f2081d6aaa1775386b98c2f2f246135761aae47d81f58685b9c")
|
||||
version("1.10.3", sha256="8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa")
|
||||
version("1.10.2", sha256="3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03")
|
||||
version("1.10.1", sha256="ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de")
|
||||
version("1.10.0", sha256="6a00f5c05caa4c4acc120c46b63857da0d4ff61dc4b4b03933fa8d46013fae81")
|
||||
|
||||
# End of life: 2024-03-31
|
||||
with default_args(deprecated=True):
|
||||
version("1.9.4", sha256="ea849c83a72454e3ed4267697e8ca03390aee972ab421e7df69dfe42b65caaf7")
|
||||
version("1.9.3", sha256="97ebe4f94e2f7e35b752194ce15a0f3c66324e0ff6af26659bbfb5ff2ec328fd")
|
||||
version("1.9.2", sha256="b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a")
|
||||
version("1.9.1", sha256="c5a67a8b9b2bd370fb415ed1ee31c7172e5683076493cf4a3678a0fbdf0265d9")
|
||||
version(
|
||||
"1.10.2", sha256="3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03"
|
||||
)
|
||||
version(
|
||||
"1.10.1", sha256="ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de"
|
||||
)
|
||||
version(
|
||||
"1.10.0", sha256="6a00f5c05caa4c4acc120c46b63857da0d4ff61dc4b4b03933fa8d46013fae81"
|
||||
)
|
||||
# End of life: 2024-12-31 (LTS)
|
||||
version("1.8.9", sha256="2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769")
|
||||
version("1.8.7", sha256="03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748")
|
||||
version("1.8.6", sha256="0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975")
|
||||
version("1.8.5", sha256="3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3")
|
||||
version("1.8.4", sha256="f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227")
|
||||
version("1.8.1", sha256="7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3")
|
||||
|
||||
# End of life: 2024-12-31 (LTS)
|
||||
version("1.8.9", sha256="2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769")
|
||||
version("1.8.7", sha256="03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748")
|
||||
version("1.8.6", sha256="0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975")
|
||||
version("1.8.5", sha256="3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3")
|
||||
version("1.8.4", sha256="f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227")
|
||||
version("1.8.1", sha256="7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
|
||||
depends_on("libgpg-error@1.25:")
|
||||
depends_on("libgpg-error@1.27:", when="@1.9:")
|
||||
@@ -58,6 +58,9 @@ def flag_handler(self, name, flags):
|
||||
# https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=b42116d6067a5233f72e5598032d4b396bb8eaac
|
||||
patch("conditional_avx512.patch", when="@1.11.0")
|
||||
|
||||
patch("o_flag_munging-1.10.patch", when="@1.10")
|
||||
patch("o_flag_munging-1.11.patch", when="@1.11")
|
||||
|
||||
def check(self):
|
||||
# Without this hack, `make check` fails on macOS when SIP is enabled
|
||||
# https://bugs.gnupg.org/gnupg/issue2056
|
||||
|
||||
@@ -15,6 +15,7 @@ class Libice(AutotoolsPackage, XorgPackage):
|
||||
|
||||
maintainers("wdconinc")
|
||||
|
||||
version("1.1.2", sha256="1da62f732f8679c20045708a29372b82dff9e7eceee543ed488b845002b3b0ff")
|
||||
version("1.1.1", sha256="04fbd34a11ba08b9df2e3cdb2055c2e3c1c51b3257f683d7fcf42dabcf8e1210")
|
||||
version("1.1.0", sha256="7a735ec530d7a437955747eabac06bbc0b695da77fd1b4d1df3b0a483d823875")
|
||||
version("1.0.10", sha256="1116bc64c772fd127a0d0c0ffa2833479905e3d3d8197740b3abd5f292f22d2d")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user