Compare commits

...

48 Commits

Author SHA1 Message Date
Gregory Becker
55cc228307 tests: refactor for robustness, avoid dependence on path parsing 2024-11-25 17:34:17 -08:00
Gregory Becker
0df5b8616c set code default for config:build_stage
Signed-off-by: Gregory Becker <becker33@llnl.gov>
2024-11-25 15:23:35 -08:00
Gregory Becker
ced6f984ea config.set: allow override section 2024-11-25 15:05:03 -08:00
Seth R. Johnson
83624551e0 ROOT: default to +aqua~x on macOS (#47792) 2024-11-25 14:27:38 -06:00
Victor A. P. Magri
741652caa1 caliper: add "tools" variant (#47779) 2024-11-25 18:26:53 +01:00
Mark Abraham
8e914308f0 gromacs: add itt variant (#47764)
Permit configuring GROMACS with support for mdrun to trace its timing
regions by calling the ITT API. This permits tools like VTune and
unitrace to augment their analysis with GROMACS-specific annotation.
2024-11-25 16:12:55 +01:00
Mikael Simberg
3c220d0989 apex: add 2.7.0 (#47736) 2024-11-25 13:22:16 +01:00
Wouter Deconinck
8094fa1e2f py-gradio: add v5.1.0 (and add/update dependencies) (fix CVEs) (#47504)
* py-pdm-backend: add v2.4.3
* py-starlette: add v0.28.0, v0.32.0, v0.35.1, v0.36.3, v0.37.2, v0.41.2
* py-fastapi: add v0.110.2, v0.115.4
* py-pydantic-extra-types: add v2.10.0
* py-pydantic-settings: add v2.6.1
* py-python-multipart: add v0.0.17
* py-email-validator: add v2.2.0
2024-11-25 13:07:56 +01:00
Massimiliano Culpo
5c67051980 Add missing C/C++ dependencies (#47782) 2024-11-25 12:56:39 +01:00
John W. Parent
c01fb9a6d2 Add CMake 3.31 minor release (#47676) 2024-11-25 04:32:57 -07:00
Harmen Stoppels
bf12bb57e7 install_test: first look at builder, then package (#47735) 2024-11-25 11:53:28 +01:00
Wouter Deconinck
406c73ae11 py-boto*: add v1.34.162 (#47528)
Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2024-11-25 11:39:09 +01:00
Wouter Deconinck
3f50ccfcdd py-azure-*: updated versions (#47525) 2024-11-25 11:38:49 +01:00
Wouter Deconinck
9883a2144d py-quart: add v0.19.8 (#47508)
Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2024-11-25 11:38:22 +01:00
Wouter Deconinck
94815d2227 py-netifaces: add v0.10.9, v0.11.0 (#47451) 2024-11-25 11:37:41 +01:00
Wouter Deconinck
a15563f890 py-werkzeug: add v3.1.3 (and deprecate older versions) (#47507)
Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2024-11-25 11:28:01 +01:00
Wouter Deconinck
ac2ede8d2f py-pyzmq: add v25.1.2, v26.0.3, v26.1.1, v26.2.0 (switch to py-scikit-build-core) (#44493) 2024-11-25 11:00:00 +01:00
david-edwards-linaro
b256a7c50d linaro-forge: remove v21.1.3 (#47688) 2024-11-25 10:53:27 +01:00
Szabolcs Horvát
21e10d6d98 igraph: add v0.10.15 (#47692) 2024-11-25 10:51:24 +01:00
afzpatel
ed39967848 rocm-tensile: add 6.2.1 (#47702) 2024-11-25 10:40:21 +01:00
Alex Richert
eda0c6888e ip: add cmake version requirement for @5.1: (#47754) 2024-11-25 02:38:08 -07:00
pauleonix
66055f903c cuda: Add v12.6.3 (#47721) 2024-11-25 10:36:11 +01:00
Dave Keeshan
a1c57d86c3 libusb: add v1.0.23:1.0.27 (#47727) 2024-11-25 10:33:08 +01:00
Dave Keeshan
9da8dcae97 verible: add v0.0.3841 (#47729) 2024-11-25 10:30:48 +01:00
jflrichard
c93f223a73 postgis: add version 3.1.2 (#47743) 2024-11-25 10:24:03 +01:00
Wouter Deconinck
f1faf31735 build-containers: determine latest release tag and push that as latest (#47742) 2024-11-25 10:20:58 +01:00
Stephen Herbener
8957ef0df5 Updated version specs for bufr-query package. (#47752) 2024-11-25 10:14:16 +01:00
Veselin Dobrev
347ec87fc5 mfem: add logic for the C++ standard level when using rocPRIM (#47751) 2024-11-25 10:13:22 +01:00
Adam J. Stewart
cd8c46e54e py-ruff: add v0.8.0 (#47758) 2024-11-25 10:02:31 +01:00
Adam J. Stewart
75b03bc12f glib: add v2.82.2 (#47766) 2024-11-24 20:55:18 +01:00
Adam J. Stewart
58511a3352 py-pandas: correct Python version constraint (#47770) 2024-11-24 17:48:16 +01:00
Adam J. Stewart
325873a4c7 py-fsspec: add v2024.10.0 (#47778) 2024-11-24 15:42:30 +01:00
Adam J. Stewart
9156e4be04 awscli-v2: add v2.22.4 (#47765) 2024-11-24 15:42:06 +01:00
Adam J. Stewart
12d3abc736 py-pytz: add v2024.2 (#47777) 2024-11-24 15:40:45 +01:00
Adam J. Stewart
4208aa6291 py-torchvision: add Python 3.13 support (#47776) 2024-11-24 15:40:11 +01:00
Adam J. Stewart
0bad754e23 py-scikit-learn: add Python 3.13 support (#47775) 2024-11-24 15:39:36 +01:00
Adam J. Stewart
cde2620f41 py-safetensors: add v0.4.5 (#47774) 2024-11-24 15:38:05 +01:00
Adam J. Stewart
a35aa038b0 py-pystac: add support for Python 3.12+ (#47772) 2024-11-24 15:37:43 +01:00
Adam J. Stewart
150416919e py-pydantic-core: add v2.27.1 (#47771) 2024-11-24 15:37:06 +01:00
Adam J. Stewart
281c274e0b py-jupyter-packaging: add Python 3.13 support (#47769) 2024-11-24 15:31:31 +01:00
Adam J. Stewart
16e130ece1 py-cryptography: mark Python 3.13 support (#47768) 2024-11-24 15:31:08 +01:00
Adam J. Stewart
7586303fba py-ruamel-yaml-clib: add Python compatibility bounds (#47773) 2024-11-24 15:28:45 +01:00
Harmen Stoppels
6501880fbf py-node-env: add v1.9.1 (#47762) 2024-11-24 15:27:16 +01:00
Harmen Stoppels
c76098038c py-ipykernel: split forward and backward compat bounds (#47763) 2024-11-24 15:26:15 +01:00
Harmen Stoppels
124b616b27 add a few forward compat bounds with python (#47761) 2024-11-24 15:23:11 +01:00
Adam J. Stewart
1148c8f195 gobject-introspection: Python 3.12 still not supported (#47767) 2024-11-24 03:53:32 -07:00
Adam J. Stewart
c57452dd08 py-cffi: support Python 3.12+ (#47713) 2024-11-24 08:41:29 +01:00
Harmen Stoppels
a7e57c9a14 py-opt-einsum: add v3.4.0 (#47759) 2024-11-24 08:40:29 +01:00
76 changed files with 627 additions and 228 deletions

View File

@@ -57,6 +57,12 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Determine latest release tag
id: latest
run: |
git fetch --quiet --tags
echo "tag=$(git tag --list --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)" | tee -a $GITHUB_OUTPUT
- uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
id: docker_meta
with:
@@ -71,6 +77,7 @@ jobs:
type=semver,pattern={{major}}
type=ref,event=branch
type=ref,event=pr
type=raw,value=latest,enable=${{ github.ref == format('refs/tags/{0}', steps.latest.outputs.tag) }}
- name: Generate the Dockerfile
env:

View File

@@ -672,11 +672,12 @@ def set(self, path: str, value: Any, scope: Optional[str] = None) -> None:
return
parts = process_config_path(path)
section = parts.pop(0)
section = parts[0]
section_data = self.get_config(section, scope=scope)
data = section_data
full_data = {section: section_data}
data = full_data
while len(parts) > 1:
key = parts.pop(0)
@@ -699,7 +700,7 @@ def set(self, path: str, value: Any, scope: Optional[str] = None) -> None:
# update new value
data[parts[0]] = value
self.update_config(section, section_data, scope=scope)
self.update_config(section, full_data[section], scope=scope)
def __iter__(self):
"""Iterate over scopes in this configuration."""

View File

@@ -375,23 +375,16 @@ def phase_tests(self, builder, phase_name: str, method_names: List[str]):
for name in method_names:
try:
# Prefer the method in the package over the builder's.
# We need this primarily to pick up arbitrarily named test
# methods but also some build-time checks.
fn = getattr(builder.pkg, name, getattr(builder, name))
msg = f"RUN-TESTS: {phase_name}-time tests [{name}]"
print_message(logger, msg, verbose)
fn()
fn = getattr(builder, name, None) or getattr(builder.pkg, name)
except AttributeError as e:
msg = f"RUN-TESTS: method not implemented [{name}]"
print_message(logger, msg, verbose)
self.add_failure(e, msg)
print_message(logger, f"RUN-TESTS: method not implemented [{name}]", verbose)
self.add_failure(e, f"RUN-TESTS: method not implemented [{name}]")
if fail_fast:
break
continue
print_message(logger, f"RUN-TESTS: {phase_name}-time tests [{name}]", verbose)
fn()
if have_tests:
print_message(logger, "Completed testing", verbose)

View File

@@ -176,13 +176,14 @@ def _resolve_paths(candidates):
# Cached stage path root
_stage_root = None
_default_stage_config = ["$tmpdir/$user/spack-stage", "$user_cache_path/stage"]
def get_stage_root():
global _stage_root
if _stage_root is None:
candidates = spack.config.get("config:build_stage")
candidates = spack.config.get("config:build_stage", _default_stage_config)
if isinstance(candidates, str):
candidates = [candidates]

View File

@@ -1208,8 +1208,16 @@ def test_internal_config_list_override(mock_low_high_config, write_config_file):
def test_set_section_override(mock_low_high_config, write_config_file):
write_config_file("config", config_merge_list, "low")
wanted_list = config_override_list["config"]["build_stage:"]
# Ensure test validity:
assert wanted_list != mock_low_high_config.get("config:build_stage")
# Test both bare section with full value and section override in path
with spack.config.override("config::build_stage", wanted_list):
assert mock_low_high_config.get("config:build_stage") == wanted_list
with spack.config.override("config::", {"build_stage": wanted_list}):
assert mock_low_high_config.get("config:build_stage") == wanted_list
assert config_merge_list["config"]["build_stage"] == mock_low_high_config.get(
"config:build_stage"
)

View File

@@ -754,6 +754,18 @@ def test_get_stage_root_bad_path(self, clear_stage_root):
# Make sure the cached stage path values are unchanged.
assert spack.stage._stage_root is None
def test_get_stage_root_empty(self, clear_stage_root, monkeypatch, tmpdir):
expected = str(tmpdir)
monkeypatch.setattr(spack.stage, "_default_stage_config", [expected])
# build stage set to empty by user is respected and errors
with spack.config.override("config:build_stage::", []):
with pytest.raises(spack.stage.StageError):
spack.stage.get_stage_root()
# No build stage set (config section set to empty) uses default
with spack.config.override("config::", {}):
assert spack.stage.get_stage_root() == expected
@pytest.mark.parametrize(
"path,purged",
[

View File

@@ -18,6 +18,7 @@ class Apex(CMakePackage):
version("develop", branch="develop")
version("master", branch="master")
version("2.7.0", sha256="81cd7e8dbea35cec2360d6404e20f7527f66410614f06a73c8c782ac2cfdb0b0")
version("2.6.5", sha256="2ba29a1198c904ac209fc6bc02962304a1416443b249f34ef96889aff39644ce")
version("2.6.4", sha256="281a673f447762a488577beaa60e48d88cb6354f220457cf8f05c1de2e1fce70")
version("2.6.3", sha256="7fef12937d3bd1271a01abe44cb931b1d63823fb5c74287a332f3012ed7297d5")

View File

@@ -15,24 +15,31 @@ class AwscliV2(PythonPackage):
maintainers("climbfuji", "teaguesterling")
version("2.22.4", sha256="56c6170f3be830afef2dea60fc3fd7ed14cf2ca2efba055c085fe6a7c4de358e")
version("2.15.53", sha256="a4f5fd4e09b8f2fb3d2049d0610c7b0993f9aafaf427f299439f05643b25eb4b")
version("2.13.22", sha256="dd731a2ba5973f3219f24c8b332a223a29d959493c8a8e93746d65877d02afc1")
with default_args(type="build"):
depends_on("py-flit-core@3.7.1:3.9.0", when="@2.22:")
depends_on("py-flit-core@3.7.1:3.8.0", when="@:2.15")
with default_args(type=("build", "run")):
depends_on("python@3.8:")
depends_on("py-flit-core@3.7.1:3.8.0")
depends_on("py-colorama@0.2.5:0.4.6")
depends_on("py-docutils@0.10:0.19")
# Remove upper bound to enable Python 3.12 support
# depends_on("py-cryptography@3.3.2:40.0.1")
depends_on("py-cryptography@3.3.2:")
depends_on("py-cryptography@40:43.0.1", when="@2.22:")
depends_on("py-cryptography@3.3.2:40.0.1", when="@:2.15")
depends_on("py-ruamel-yaml@0.15:0.17.21")
depends_on("py-ruamel-yaml-clib@0.2:0.2.7", when="^python@:3.9")
depends_on("py-ruamel-yaml-clib@0.2:", when="@2.22:")
# Upper bound relaxed for Python 3.13 support
# depends_on("py-ruamel-yaml-clib@0.2:0.2.8", when="@2.22:")
depends_on("py-ruamel-yaml-clib@0.2:0.2.7", when="@:2.15")
depends_on("py-prompt-toolkit@3.0.24:3.0.38")
depends_on("py-distro@1.5:1.8")
depends_on("py-awscrt@0.16.4:0.16.16", when="@2.13")
depends_on("py-awscrt@0.19.18:0.22.0", when="@2.22:")
depends_on("py-awscrt@0.19.18:0.19.19", when="@2.15")
depends_on("py-python-dateutil@2.1:2.8.2")
depends_on("py-awscrt@0.16.4:0.16.16", when="@2.13")
depends_on("py-python-dateutil@2.1:2.9.0", when="@2.22:")
depends_on("py-python-dateutil@2.1:2.8.2", when="@:2.15")
depends_on("py-jmespath@0.7.1:1.0")
depends_on("py-urllib3@1.25.4:1.26")

View File

@@ -17,16 +17,12 @@ class Bitgroomingz(CMakePackage):
version("master", branch="master")
version("2022-10-14", commit="a018b20cca9f7d6a5396ab36230e4be6ae1cb25b")
depends_on("c", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
variant("shared", default=True, description="build shared libs")
depends_on("zlib-api")
def cmake_args(self):
args = []
if self.spec.satisfies("+shared"):
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
return args
return [self.define_from_variant("BUILD_SHARED_LIBS", "shared")]

View File

@@ -18,6 +18,7 @@ class BufrQuery(CMakePackage, PythonExtension):
license("Apache-2.0", checked_by="srherbener")
version("0.0.4", sha256="cc21a298c03ee3a8938823301606e91c7b321005da284ebf2c9b25044bfcbad8")
version("0.0.3", sha256="f2952a190cc1d7714a3bfe481fb1545459639ba304fc31b941062b471dea1d41")
version("0.0.2", sha256="b87a128246e79e3c76e3158d89823e2ae38e9ee1a5a81b6f7b423837bdb93a1f")
version("0.0.1", sha256="001990d864533c101b93d1c351edf50cf8b5ccc575e442d174735f6c332d3d03")

View File

@@ -101,6 +101,8 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage):
variant("vtune", default=False, description="Enable Intel Vtune support")
variant("kokkos", default=True, when="@2.3.0:", description="Enable Kokkos profiling support")
variant("tests", default=False, description="Enable tests")
variant("tools", default=True, description="Enable tools")
# TODO change the 'when' argument for the next release of Caliper
variant("python", default=False, when="@master", description="Build Python bindings")
@@ -156,6 +158,7 @@ def initconfig_compiler_entries(self):
entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared")))
entries.append(cmake_cache_option("BUILD_TESTING", spec.satisfies("+tests")))
entries.append(cmake_cache_option("WITH_TOOLS", spec.satisfies("+tools")))
entries.append(cmake_cache_option("BUILD_DOCS", False))
entries.append(cmake_cache_path("PYTHON_EXECUTABLE", spec["python"].command.path))

View File

@@ -31,6 +31,7 @@ class Cmake(Package):
license("BSD-3-Clause")
version("master", branch="master")
version("3.31.0", sha256="300b71db6d69dcc1ab7c5aae61cbc1aa2778a3e00cbd918bc720203e311468c3")
version("3.30.5", sha256="9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d")
version("3.30.4", sha256="c759c97274f1e7aaaafcb1f0d261f9de9bf3a5d6ecb7e2df616324a46fe704b2")
version("3.30.3", sha256="6d5de15b6715091df7f5441007425264bdd477809f80333fdf95f846aaff88e4")

View File

@@ -24,6 +24,16 @@
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
"12.6.3": {
"Linux-aarch64": (
"213ea63a6357020978a8b0a79a8c9d12a2a5941afa1cdc69d5a3f933fa8bed04",
"https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux_sbsa.run",
),
"Linux-x86_64": (
"81d60e48044796d7883aa8a049afe6501b843f2c45639b3703b2378de30d55d3",
"https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run",
),
},
"12.6.2": {
"Linux-aarch64": (
"2249408848b705c18b9eadfb5161b52e4e36fcc5753647329cce93db141e5466",

View File

@@ -30,7 +30,8 @@ class Fftx(CMakePackage, CudaPackage, ROCmPackage):
version("1.1.0", sha256="a6f95605abc11460bbf51839727a456a31488e27e12a970fc29a1b8c42f4e3b5")
version("1.0.3", sha256="b5ff275facce4a2fbabd0aecc65dd55b744794f2e07cd8cfa91363001c664896")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("spiral-software+fftx+simt+jit+mpi")
# depend only on spiral-software, but spiral-software must be installed with variants:

View File

@@ -91,7 +91,8 @@ class FluxCore(AutotoolsPackage):
# `link` dependency on python due to Flux's `pymod` module
depends_on("python@3.6:", type=("build", "link", "run"))
# Use of distutils in configure script dropped in v0.55
depends_on("python@:3.11", when="@:0.54", type=("build", "link", "run"))
# Detection of cffi version fixed in v0.68
depends_on("python@:3.11", when="@:0.67", type=("build", "link", "run"))
depends_on("py-cffi@1.1:", type=("build", "run"))
depends_on("py-pyyaml@3.10:", type=("build", "run"))
depends_on("py-jsonschema@2.3:", type=("build", "run"), when="@:0.58.0")

View File

@@ -30,7 +30,14 @@ class Glib(MesonPackage, AutotoolsPackage):
license("LGPL-2.1-or-later")
version("2.78.3", sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21")
# Even minor versions are stable, odd minor versions are development, only add even numbers
version("2.82.2", sha256="ab45f5a323048b1659ee0fbda5cecd94b099ab3e4b9abf26ae06aeb3e781fd63")
# No real reason to prefer older versions, `preferred` should be removed after testing
version(
"2.78.3",
sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21",
preferred=True,
)
version("2.78.0", sha256="44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30")
version("2.76.6", sha256="1136ae6987dcbb64e0be3197a80190520f7acab81e2bfb937dc85c11c8aa9f04")
version("2.76.4", sha256="5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda")
@@ -139,6 +146,8 @@ class Glib(MesonPackage, AutotoolsPackage):
)
with when("build_system=meson"):
depends_on("meson@1.4:", when="@2.83:", type="build")
depends_on("meson@1.2:", when="@2.79:", type="build")
depends_on("meson@0.60.0:", when="@2.73:", type="build")
depends_on("meson@0.52.0:", when="@2.71:2.72", type="build")
depends_on("meson@0.49.2:", when="@2.61.2:2.70", type="build")
@@ -149,8 +158,9 @@ class Glib(MesonPackage, AutotoolsPackage):
depends_on("zlib-api")
depends_on("gettext")
depends_on("perl", type=("build", "run"))
depends_on("python", type=("build", "run"), when="@2.53.4:")
# Uses distutils in gio/gdbus-2.0/codegen/utils.py
depends_on("python@:3.11", type=("build", "run"), when="@2.53.4:")
depends_on("python@:3.11", type=("build", "run"), when="@2.53.4:2.78")
depends_on("pcre2", when="@2.73.2:")
depends_on("pcre2@10.34:", when="@2.74:")
depends_on("pcre+utf", when="@2.48:2.73.1")

View File

@@ -92,6 +92,12 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage):
when="@:1.63.1",
)
# https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/361
# https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/395
conflicts(
"^python@3.12:",
msg="gobject-introspection still uses distutils which was removed in Python 3.12",
)
conflicts(
"^python@3.11:",
when="@:1.60",

View File

@@ -296,6 +296,15 @@ class Gromacs(CMakePackage, CudaPackage):
+ "The g++ location is written to icp{c,x}.cfg",
)
variant(
"itt",
default=False,
when="@2024:",
description="Enable Instrumentation and Tracing Technology (ITT)"
+ " profiling API (from Intel)",
)
depends_on("intel-oneapi-vtune", "+itt")
depends_on("fftw-api@3")
depends_on("cmake@2.8.8:3", type="build")
depends_on("cmake@3.4.3:3", type="build", when="@2018:")
@@ -614,6 +623,13 @@ def cmake_args(self):
options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8")
options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1")
if "+itt" in self.spec:
options.append("-DGMX_USE_ITT=on")
options.append(
"-DITTNOTIFY_INCLUDE_DIR=%s"
% join_path(self.spec["intel-oneapi-vtune"].package.headers)
)
if self.spec.satisfies("~nblib"):
options.append("-DGMX_INSTALL_NBLIB_API=OFF")
if self.spec.satisfies("~gmxapi"):

View File

@@ -14,6 +14,7 @@ class Igraph(CMakePackage, AutotoolsPackage):
license("GPL-2.0-or-later")
version("0.10.15", sha256="03ba01db0544c4e32e51ab66f2356a034394533f61b4e14d769b9bbf5ad5e52c")
version("0.10.13", sha256="c6dc44324f61f52c098bedb81f6a602365d39d692d5068ca4fc3734b2a15e64c")
version("0.10.6", sha256="99bf91ee90febeeb9a201f3e0c1d323c09214f0b5f37a4290dc3b63f52839d6d")
version("0.7.1", sha256="d978030e27369bf698f3816ab70aa9141e9baf81c56cc4f55efbe5489b46b0df")

View File

@@ -70,6 +70,7 @@ class Ip(CMakePackage):
depends_on("sp precision=d", when="@4.1:4 precision=d")
depends_on("sp precision=8", when="@4.1:4 precision=8")
depends_on("lapack", when="@5.1:")
depends_on("cmake@3.18:", when="@5.1:")
def cmake_args(self):
args = [

View File

@@ -53,8 +53,9 @@ class Julia(MakefilePackage):
version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb")
version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("fortran", type="build")
variant("precompile", default=True, description="Improve julia startup time")
variant("openlibm", default=True, description="Use openlibm instead of libm")

View File

@@ -11,12 +11,17 @@ class Libusb(AutotoolsPackage):
"""Library for USB device access."""
homepage = "https://libusb.info/"
url = "https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2"
url = "https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2"
git = "https://github.com/libusb/libusb"
license("LGPL-2.1-or-later")
version("master", branch="master")
version("1.0.27", sha256="ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575")
version("1.0.26", sha256="12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5")
version("1.0.25", sha256="8a28ef197a797ebac2702f095e81975e2b02b2eeff2774fa909c78a74ef50849")
version("1.0.24", sha256="7efd2685f7b327326dcfb85cee426d9b871fd70e22caa15bb68d595ce2a2b12a")
version("1.0.23", sha256="db11c06e958a82dac52cf3c65cb4dd2c3f339c8a988665110e0d24d19312ad8d")
version("1.0.22", sha256="75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157")
version("1.0.21", sha256="7dce9cce9a81194b7065ee912bcd55eeffebab694ea403ffb91b67db66b1824b")
version("1.0.20", sha256="cb057190ba0a961768224e4dc6883104c6f945b2bf2ef90d7da39e7c1834f7ff")

View File

@@ -66,9 +66,6 @@ class LinaroForge(Package):
version(
"22.1.4", sha256="4e2af481a37b4c99dba0de6fac75ac945316955fc4170d06e321530adea7ac9f"
)
version(
"21.1.3", sha256="4a4ff7372aad5a31fc9e18b7b6c493691ab37d8d44a3158584e62d1ab82b0eeb"
)
elif platform.machine() == "ppc64le":
# N.B. support for ppc64le was dropped in 24.0
version(
@@ -97,9 +94,6 @@ class LinaroForge(Package):
version(
"22.0.4", sha256="f4cb5bcbaa67f9209299fe4653186a2829760b8b16a2883913aa43766375b04c"
)
version(
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
)
elif platform.machine() == "x86_64":
version("24.1", sha256="0b96878ab73c20b39c4730ed15f24ca86dc5985637ff5d8e68f55e1e802e5fe3")
version(
@@ -147,9 +141,6 @@ class LinaroForge(Package):
version(
"22.0.4", sha256="a2c8c1da38b9684d7c4656a98b3fc42777b03fd474cd0bf969324804f47587e5"
)
version(
"21.1.3", sha256="03dc82f1d075deb6f08d1e3e6592dc9b630d406c08a1316d89c436b5874f3407"
)
variant(
"probe",

View File

@@ -26,7 +26,8 @@ class LuaSol2(CMakePackage):
version("3.0.3", sha256="bf089e50387edfc70063e24fd7fbb693cceba4a50147d864fabedd1b33483582")
version("3.0.2", sha256="3f5f369eae6732ae9a315fe4370bbdc9900d2f2f4f291206aeb5b2d5533f0c99")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
# Lua is not needed when building, since sol2 is headers-only
depends_on("lua", type=("link", "run"))

View File

@@ -361,6 +361,8 @@ class Mfem(Package, CudaPackage, ROCmPackage):
# MUMPS (and SuiteSparse in older versions). On the other hand, PETSc built
# with MUMPS is not strictly required, so we do not require it here.
depends_on("petsc@3.8:+mpi+hypre", when="+petsc")
# rocPRIM is a dependency when using petsc+rocm and requires C++14 or newer:
conflicts("cxxstd=11", when="^rocprim@5.5.0:")
depends_on("slepc@3.8.0:", when="+slepc")
# If petsc is built with +cuda, propagate cuda_arch to petsc and slepc
for sm_ in CudaPackage.cuda_arch_values:
@@ -635,6 +637,9 @@ def find_optional_library(name, prefix):
cxxstd = "14"
if self.spec.satisfies("^ginkgo"):
cxxstd = "14"
# When rocPRIM is used (e.g. by PETSc + ROCm) we need C++14:
if self.spec.satisfies("^rocprim@5.5.0:"):
cxxstd = "14"
cxxstd_req = spec.variants["cxxstd"].value
if cxxstd_req != "auto":
# Constraints for valid standard level should be imposed during

View File

@@ -27,7 +27,8 @@ class OpenclClhpp(CMakePackage):
version("2.0.10", sha256="fa27456295c3fa534ce824eb0314190a8b3ebd3ba4d93a0b1270fc65bf378f2b")
version("2.0.9", sha256="ba8ac4977650d833804f208a1b0c198006c65c5eac7c83b25dc32cea6199f58c")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
root_cmakelists_dir = "include"

View File

@@ -22,7 +22,8 @@ class Pagmo2(CMakePackage):
version("master", branch="master")
version("2.18.0", sha256="5ad40bf3aa91857a808d6b632d9e1020341a33f1a4115d7a2b78b78fd063ae31")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("boost+system+serialization+thread")
depends_on("intel-tbb")

View File

@@ -38,7 +38,8 @@ class Pdt(AutotoolsPackage):
version("3.19", sha256="d57234077e2e999f2acf9860ea84369a4694b50cc17fa6728e5255dc5f4a2160")
version("3.18.1", sha256="d06c2d1793fadebf169752511e5046d7e02cf3fead6135a35c34b1fee6d6d3b2")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
variant("pic", default=False, description="Builds with pic")
@@ -50,21 +51,21 @@ def patch(self):
filter_file(r"PDT_GXX=g\+\+ ", r"PDT_GXX=clang++ ", "ductape/Makefile")
def configure(self, spec, prefix):
options = ["-prefix=%s" % prefix]
if self.compiler.name == "xl":
options = [f"-prefix={prefix}"]
if spec.satisfies("%xl"):
options.append("-XLC")
elif self.compiler.name == "intel":
elif spec.satisfies("%intel"):
options.append("-icpc")
elif self.compiler.name == "oneapi":
elif spec.satisfies("%oneapi"):
if spec.satisfies("@3.25.2:"):
options.append("-icpx")
else:
options.append("-icpc")
elif self.compiler.name == "gcc":
elif spec.satisfies("%gcc"):
options.append("-GNU")
elif self.compiler.name in ["clang", "apple-clang", "aocc"]:
elif spec.satisfies("%clang") or spec.satisfies("%apple-clang") or spec.satisfies("%aocc"):
options.append("-clang")
elif self.compiler.name == "cce":
elif spec.satisfies("%cce"):
options.append("-CC")
else:
raise InstallError("Unknown/unsupported compiler family: " + self.compiler.name)

View File

@@ -18,6 +18,7 @@ class Postgis(AutotoolsPackage):
license("GPL-2.0-or-later")
version("3.1.2", sha256="2cdd3760176926704b4eb25ff3357543c9637dee74425a49082906857c7e0732")
version("3.0.1", sha256="5a5432f95150d9bae9215c6d1c7bb354e060482a7c379daa9b8384e1d03e6353")
version("3.0.0", sha256="c06fd2cd5cea0119106ffe17a7235d893c2bbe6f4b63c8617c767630973ba594")
version("2.5.3", sha256="72e8269d40f981e22fb2b78d3ff292338e69a4f5166e481a77b015e1d34e559a")

View File

@@ -11,8 +11,9 @@ class PyAzureBatch(PythonPackage):
"""Microsoft Azure Batch Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
pypi = "azure-batch/azure-batch-9.0.0.zip"
pypi = "azure-batch/azure-batch-14.2.0.tar.gz"
version("14.2.0", sha256="c79267d6c3d3fe14a16a422ab5bbfabcbd68ed0b58b6bbcdfa0c8345c4c78532")
version("14.0.0", sha256="165b1e99b86f821024c4fae85fb34869d407aa0ebb0ca4b96fb26d859c26c934")
version("13.0.0", sha256="e9295de70404d276eda0dd2253d76397439abe5d8f18c1fca199c49b8d6ae30a")
version("12.0.0", sha256="1a9b1e178984a7bf495af67bcce51f0db1e4a8a957afb29e33554a14a9674deb")
@@ -20,7 +21,7 @@ class PyAzureBatch(PythonPackage):
version("10.0.0", sha256="83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32d0")
version("9.0.0", sha256="47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84")
# https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.0.0/sdk/batch/azure-batch/setup.py
# https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_14.2.0/sdk/batch/azure-batch/setup.py
depends_on("py-setuptools", type="build")
@@ -30,3 +31,11 @@ class PyAzureBatch(PythonPackage):
with when("@:12"):
depends_on("py-msrest@0.6.21:", when="@11:", type=("build", "run"))
depends_on("py-msrest@0.5.0:", type=("build", "run"))
def url_for_version(self, version):
if version < Version("14.1.0"):
return "https://pypi.io/packages/source/a/azure-batch/azure-batch-{0}.zip".format(
version
)
return super().url_for_version(version)

View File

@@ -15,6 +15,7 @@ class PyAzureCore(PythonPackage):
license("MIT")
version("1.30.2", sha256="a14dc210efcd608821aa472d9fb8e8d035d29b68993819147bc290a8ac224472")
version("1.30.0", sha256="6f3a7883ef184722f6bd997262eddaf80cfe7e5b3e0caaaf8db1695695893d35")
version("1.29.7", sha256="2944faf1a7ff1558b1f457cabf60f279869cabaeef86b353bed8eb032c7d8c5e")
version("1.29.2", sha256="beb0fe88d1043d8457318e8fb841d9caa648211092eda213c16b376401f3710d")
@@ -26,8 +27,9 @@ class PyAzureCore(PythonPackage):
version("1.7.0", sha256="a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c")
version("1.6.0", sha256="d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648")
# https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.0/sdk/core/azure-core/setup.py
# https://github.com/Azure/azure-sdk-for-python/blob/azure-core_1.30.2/sdk/core/azure-core/setup.py
depends_on("python@3.8:", type=("build", "run"), when="@1.30.2:")
depends_on("py-setuptools", type="build")
depends_on("py-anyio@3:4", when="@1.29.6", type=("build", "run"))
depends_on("py-requests@2.21:", when="@1.29.6:", type=("build", "run"))

View File

@@ -21,6 +21,7 @@ class PyAzureIdentity(PythonPackage):
license("MIT")
version("1.17.1", sha256="32ecc67cc73f4bd0595e4f64b1ca65cd05186f4fe6f98ed2ae9f1aa32646efea")
version("1.15.0", sha256="4c28fc246b7f9265610eb5261d65931183d019a23d4b0e99357facb2e6c227c8")
version("1.14.1", sha256="48e2a9dbdc59b4f095f841d867d9a8cbe4c1cdbbad8251e055561afd47b4a9b8")
version("1.13.0", sha256="c931c27301ffa86b07b4dcf574e29da73e3deba9ab5d1fe4f445bb6a3117e260")
@@ -28,20 +29,26 @@ class PyAzureIdentity(PythonPackage):
version("1.3.1", sha256="5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a")
version("1.2.0", sha256="b32acd1cdb6202bfe10d9a0858dc463d8960295da70ae18097eb3b85ab12cb91")
# https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.15.0/sdk/identity/azure-identity/setup.py
# https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_1.17.1/sdk/identity/azure-identity/setup.py
depends_on("python@3.8:", type=("build", "run"), when="@1.16:")
depends_on("py-setuptools", type="build")
depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15:")
depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:")
depends_on("py-azure-core@1", type=("build", "run"))
depends_on("py-azure-core@1.23:", type=("build", "run"), when="@1.16:")
depends_on("py-azure-core@1.23:1", type=("build", "run"), when="@1.15")
depends_on("py-azure-core@1.11:1", type=("build", "run"), when="@1.12:1.14")
depends_on("py-azure-core@1", type=("build", "run"), when="@:1.15")
depends_on("py-cryptography@2.5:", type=("build", "run"), when="@1.12:")
depends_on("py-cryptography@2.1.4:", type=("build", "run"))
depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15:")
depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:")
depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12:")
depends_on("py-msal@1", type=("build", "run"))
depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:")
depends_on("py-msal@1.24:", type=("build", "run"), when="@1.16:")
depends_on("py-msal@1.24:1", type=("build", "run"), when="@1.15")
depends_on("py-msal@1.20:1", type=("build", "run"), when="@1.13:1.14")
depends_on("py-msal@1.12:1", type=("build", "run"), when="@1.12")
depends_on("py-msal@1", type=("build", "run"), when="@:1.15")
depends_on("py-msal-extensions@0.3:", type=("build", "run"), when="@1.16:")
depends_on("py-msal-extensions@0.3:1", type=("build", "run"), when="@1.12:1.15")
depends_on("py-msal-extensions@0.1.3:0.1", type=("build", "run"), when="@:1.11")
depends_on("py-typing-extensions@4:", type=("build", "run"), when="@1.17:")
depends_on("py-six@1.12:", type=("build", "run"), when="@1.12")
depends_on("py-six@1.6:", type=("build", "run"), when="@:1.11")

View File

@@ -16,6 +16,7 @@ class PyAzureStorageBlob(PythonPackage):
license("MIT")
version("12.22.0", sha256="b3804bb4fe8ab1c32771fa464053da772a682c2737b19da438a3f4e5e3b3736e")
version("12.19.0", sha256="26c0a4320a34a3c2a1b74528ba6812ebcb632a04cd67b1c7377232c4b01a5897")
version("12.18.3", sha256="d8ced0deee3367fa3d4f3d1a03cd9edadf4440c0a371f503d623fa6c807554ee")
version("12.17.0", sha256="c14b785a17050b30fc326a315bdae6bc4a078855f4f94a4c303ad74a48dc8c63")
@@ -28,16 +29,19 @@ class PyAzureStorageBlob(PythonPackage):
version("12.10.0", sha256="3c7dc2c93e7ff2a731acd66a36a1f0a6266072b4154deba4894dab891285ea3a")
version("12.9.0", sha256="cff66a115c73c90e496c8c8b3026898a3ce64100840276e9245434e28a864225")
# https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.19.0/sdk/storage/azure-storage-blob/setup.py
# https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.22.0/sdk/storage/azure-storage-blob/setup.py
depends_on("python@3.8:", type=("build", "run"), when="@12.20:")
depends_on("py-setuptools", type="build")
depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:")
depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:")
depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14:")
depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:")
depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:")
depends_on("py-azure-core@1.10:1", type=("build", "run"))
depends_on("py-azure-core@1.28:", type=("build", "run"), when="@12.20:")
depends_on("py-azure-core@1.28:1", type=("build", "run"), when="@12.17:12.19")
depends_on("py-azure-core@1.26:1", type=("build", "run"), when="@12.15:12.16")
depends_on("py-azure-core@1.24.2:1", type=("build", "run"), when="@12.14")
depends_on("py-azure-core@1.23.1:1", type=("build", "run"), when="@12.12:12.13")
depends_on("py-azure-core@1.15:1", type=("build", "run"), when="@12.10:12.11")
depends_on("py-azure-core@1.10:1", type=("build", "run"), when="@:12.19")
depends_on("py-cryptography@2.1.4:", type=("build", "run"))
depends_on("py-typing-extensions@4.6:", type=("build", "run"), when="@12.20:")
depends_on("py-typing-extensions@4.3:", type=("build", "run"), when="@12.17:")
depends_on("py-typing-extensions@4.0.1:", type=("build", "run"), when="@12.15:")
depends_on("py-isodate@0.6.1:", type=("build", "run"), when="@12.15:")

View File

@@ -22,6 +22,7 @@ class PyBlosc2(PythonPackage):
version("2.0.0", sha256="f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("python@3.9:3", when="@2.2:", type=("build", "link", "run"))
depends_on("python@3.8:3", when="@2.0", type=("build", "link", "run"))

View File

@@ -12,6 +12,7 @@ class PyBoto3(PythonPackage):
homepage = "https://github.com/boto/boto3"
pypi = "boto3/boto3-1.10.44.tar.gz"
version("1.34.162", sha256="873f8f5d2f6f85f1018cbb0535b03cceddc7b655b61f66a0a56995238804f41f")
version("1.34.44", sha256="86bcf79a56631609a9f8023fe8f53e2869702bdd4c9047c6d9f091eb39c9b0fa")
version("1.26.26", sha256="a2349d436db6f6aa1e0def5501e4884572eb6f008f35063a359a6fa8ba3539b7")
version("1.25.5", sha256="aec7db139429fe0f3fbe723170461192b0483b0070114a4b56351e374e0f294d")
@@ -37,7 +38,8 @@ class PyBoto3(PythonPackage):
depends_on("python@2.6:", when="@1.9:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-botocore@1.34.44:1.34", when="@1.34", type=("build", "run"))
depends_on("py-botocore@1.34.162:1.34", when="@1.34.162", type=("build", "run"))
depends_on("py-botocore@1.34.44:1.34", when="@1.34.44", type=("build", "run"))
depends_on("py-botocore@1.29.26:1.29", when="@1.26", type=("build", "run"))
depends_on("py-botocore@1.28.5:1.28", when="@1.25", type=("build", "run"))
depends_on("py-botocore@1.27.96:1.27", when="@1.24", type=("build", "run"))

View File

@@ -12,6 +12,7 @@ class PyBotocore(PythonPackage):
homepage = "https://github.com/boto/botocore"
pypi = "botocore/botocore-1.13.44.tar.gz"
version("1.34.162", sha256="adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3")
version("1.34.44", sha256="b0f40c54477e8e0a5c43377a927b8959a86bb8824aaef2d28db7c9c367cdefaa")
version("1.31.41", sha256="4dad7c5a5e70940de54ebf8de3955450c1f092f43cacff8103819d1e7d5374fa")
version("1.29.84", sha256="a36f7f6f8eae5dbd4a1cc8cb6fc747f6315500541181eff2093ee0529fc8e4bc")
@@ -48,4 +49,9 @@ class PyBotocore(PythonPackage):
depends_on("py-urllib3@1.25.4:1.25", type=("build", "run"), when="@1.19.0:1.19.15")
depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.19.16:1.31.61")
depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.31.62: ^python@:3.9")
depends_on("py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62: ^python@3.10:")
depends_on(
"py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62:1.34.62 ^python@3.10:"
)
depends_on(
"py-urllib3@1.25.4:2.1,2.2.1:2", type=("build", "run"), when="@1.34.63: ^python@3.10:"
)

View File

@@ -22,29 +22,38 @@ class PyCffi(PythonPackage):
version("1.15.0", sha256="920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954")
version("1.14.6", sha256="c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd")
version("1.14.3", sha256="f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591")
version("1.13.0", sha256="8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226")
version("1.12.2", sha256="e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7")
version("1.11.5", sha256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4")
version("1.10.0", sha256="b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5")
version("1.1.2", sha256="390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339")
with default_args(deprecated=True):
version(
"1.13.0", sha256="8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226"
)
version(
"1.12.2", sha256="e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7"
)
version(
"1.11.5", sha256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4"
)
version(
"1.10.0", sha256="b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5"
)
version("1.1.2", sha256="390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339")
depends_on("c", type="build") # generated
depends_on("c", type="build")
# ./spack-src/cffi/ffiplatform.py has _hack_at_distutils which imports
# setuptools before distutils, but only on Windows. This could be made
# unconditional to support Python 3.12
depends_on("python@:3.11", type=("build", "run"))
# Based on PyPI wheel availability
with default_args(type=("build", "link", "run")):
depends_on("python@3.8:", when="@1.16:")
# python 3.12 support was released in @1.16:, however the removal
# in python3.12 of distutils has resulted in an imperfect fix for prefix-based
# tools like spack, see:
# https://github.com/spack/spack/pull/46224
# https://github.com/cython/cython/pull/5754#issuecomment-1752102480
# until this is correctly fixed, do not enable 3.12 support
# depends_on("python@:3.12", type=("build", "run"), when="@1.16:")
depends_on("python@:3.13")
depends_on("python@:3.12", when="@:1.16")
depends_on("python@:3.11", when="@:1.15")
depends_on("python@:3.10", when="@:1.15.0")
depends_on("python@:3.9", when="@:1.14")
depends_on("python@:3.8", when="@:1.14.2")
depends_on("python@:3.7", when="@:1.12")
depends_on("pkgconfig", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools", type="run", when="^python@3.12:")
depends_on("py-setuptools@66.1:", type="build", when="@1.16:")
depends_on("py-pycparser", type=("build", "run"))
depends_on("libffi")

View File

@@ -16,6 +16,7 @@ class PyCryptography(PythonPackage):
license("Apache-2.0")
version("43.0.3", sha256="315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805")
version("43.0.1", sha256="203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d")
version("42.0.8", sha256="8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2")
version("41.0.7", sha256="13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc")
version("41.0.3", sha256="6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34")
@@ -35,6 +36,8 @@ class PyCryptography(PythonPackage):
variant("idna", default=False, when="@2.5:3.0", description="Deprecated U-label support")
# pyo3 <= 0.22 required in version <= 42
depends_on("python@:3.12", when="@:42", type=("build", "run"))
# distutils required in version <= 40
depends_on("python@:3.11", when="@:40", type=("build", "run"))
depends_on("py-setuptools@61.0:", when="@41:", type="build")

View File

@@ -12,10 +12,13 @@ class PyEmailValidator(PythonPackage):
homepage = "https://github.com/JoshData/python-email-validator"
pypi = "email_validator/email_validator-1.3.1.tar.gz"
license("CC0-1.0")
license("Unlicense", when="@2.1.1:", checked_by="wdconinc")
license("CC0-1.0", when="@:2.1.0", checked_by="wdconinc")
version("2.2.0", sha256="cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7")
version("1.3.1", sha256="d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2")
depends_on("py-setuptools", type="build")
depends_on("py-dnspython@2:", type=("build", "run"), when="@2:")
depends_on("py-dnspython@1.15:", type=("build", "run"))
depends_on("py-idna@2:", type=("build", "run"))

View File

@@ -10,34 +10,60 @@
class PyFastapi(PythonPackage):
"""FastAPI framework, high performance, easy to learn, fast to code, ready for production"""
homepage = "https://github.com/tiangolo/fastapi"
homepage = "https://github.com/fastapi/fastapi"
pypi = "fastapi/fastapi-0.88.0.tar.gz"
license("MIT")
version("0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b")
version("0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02")
version("0.115.4", sha256="db653475586b091cb8b2fec2ac54a680ac6a158e07406e1abae31679e8826349")
version("0.110.2", sha256="b53d673652da3b65e8cd787ad214ec0fe303cad00d2b529b86ce7db13f17518d")
with default_args(deprecated=True):
# https://nvd.nist.gov/vuln/detail/CVE-2024-24762
version(
"0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b"
)
version(
"0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02"
)
variant("all", default=False, description="Build all optional dependencies")
depends_on("py-hatchling@1.13:", when="@0.98:", type="build")
depends_on("py-hatchling", type="build")
depends_on("py-starlette@0.27", when="@0.95.2:", type=("build", "run"))
depends_on("python@3.8:", when="@0.104:", type=("build", "run"))
depends_on("py-pdm-backend", when="@0.110.3:", type="build")
depends_on("py-hatchling@1.13:", when="@0.98:0.110.2", type="build")
depends_on("py-hatchling", when="@:0.110.2", type="build")
depends_on("py-starlette@0.40:0.41", when="@0.115.3:", type=("build", "run"))
depends_on("py-starlette@0.37.2:0.40", when="@0.115.2", type=("build", "run"))
depends_on("py-starlette@0.37.2:0.38", when="@0.112.1:0.115.1", type=("build", "run"))
depends_on("py-starlette@0.37.2:0.37", when="@0.110.1:0.112.0", type=("build", "run"))
depends_on("py-starlette@0.36.3:0.36", when="@0.109.2:0.110.0", type=("build", "run"))
depends_on("py-starlette@0.35:0.35", when="@0.109.0:0.109.1", type=("build", "run"))
depends_on("py-starlette@0.29:0.32", when="@0.108.0:0.108", type=("build", "run"))
depends_on("py-starlette@0.28", when="@0.107.0:0.107", type=("build", "run"))
depends_on("py-starlette@0.27", when="@0.95.2:0.106", type=("build", "run"))
depends_on("py-starlette@0.22.0", when="@:0.89.1", type=("build", "run"))
depends_on("py-pydantic@1.7.4:1,2.1.1:2", when="@0.101:", type=("build", "run"))
depends_on("py-pydantic@1.7.4:1", when="@0.96.1:", type=("build", "run"))
depends_on("py-pydantic@1.6.2:1", when="@:0.96.0", type=("build", "run"))
depends_on("py-typing-extensions@4.8.0:", when="@0.104:", type=("build", "run"))
conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1")
conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1,2.0,2.1.0")
with when("+all"):
depends_on("py-httpx@0.23:", type=("build", "run"))
depends_on("py-jinja2@2.11.2:", type=("build", "run"))
depends_on("py-python-multipart@0.0.7:", when="@0.109.1:", type=("build", "run"))
depends_on("py-python-multipart@0.0.5:", type=("build", "run"))
depends_on("py-itsdangerous@1.1:", type=("build", "run"))
depends_on("py-pyyaml@5.3.1:", type=("build", "run"))
depends_on("py-ujson@4.0.1:", type=("build", "run"))
depends_on("py-orjson@3.2.1:", type=("build", "run"))
depends_on("py-email-validator@2.0.0:", when="@0.100:", type=("build", "run"))
depends_on("py-email-validator@1.1.1:", type=("build", "run"))
depends_on("py-uvicorn@0.12:+standard", type=("build", "run"))
depends_on("py-pydantic-settings@2.0.0:", when="@0.100:", type=("build", "run"))
depends_on("py-pydantic-extra-types@2.0.0:", when="@0.100:", type=("build", "run"))
conflicts("^py-ujson@4.0.2,4.1.0,4.2.0,4.3.0,5.0.0,5.1.0")

View File

@@ -10,24 +10,37 @@ class PyFlask(PythonPackage):
"""A simple framework for building complex web applications."""
homepage = "https://palletsprojects.com/p/flask/"
pypi = "Flask/Flask-1.1.1.tar.gz"
pypi = "flask/flask-3.0.3.tar.gz"
git = "https://github.com/pallets/flask.git"
license("BSD-3-Clause")
version("3.0.3", sha256="ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842")
version("2.3.2", sha256="8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef")
version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b")
version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2")
version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060")
version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52")
version("0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd")
version("0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1")
version("0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88")
version("0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e")
with default_args(deprecated=True):
# https://nvd.nist.gov/vuln/detail/CVE-2023-30861
version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b")
version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2")
version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060")
version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52")
version(
"0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd"
)
version(
"0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1"
)
version(
"0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88"
)
version(
"0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e"
)
depends_on("python@3.8:", when="@2.3:", type=("build", "run"))
depends_on("py-setuptools", type=("build", "run"))
depends_on("py-setuptools", type=("build", "run"), when="@:2")
depends_on("py-flit-core@:3", type=("build", "run"), when="@3:")
depends_on("py-werkzeug@3:", when="@3:", type=("build", "run"))
depends_on("py-werkzeug@2.3.3:", when="@2.3.2:", type=("build", "run"))
depends_on("py-werkzeug@2.2.2:", when="@2.2.2:", type=("build", "run"))
depends_on("py-werkzeug@2:", when="@2:", type=("build", "run"))
@@ -44,3 +57,11 @@ class PyFlask(PythonPackage):
depends_on("py-click@5.1:", type=("build", "run"))
depends_on("py-blinker@1.6.2:", when="@2.3:", type=("build", "run"))
depends_on("py-importlib-metadata@3.6:", when="@2.1: ^python@:3.9", type=("build", "run"))
def url_for_version(self, version):
url = "https://files.pythonhosted.org/packages/source/f/flask/{}-{}.tar.gz"
if self.spec.satisfies("@:0.18.3"):
name = "Flask"
else:
name = "flask"
return url.format(name, version)

View File

@@ -17,6 +17,7 @@ class PyFsspec(PythonPackage):
# Requires pytest
skip_modules = ["fsspec.tests"]
version("2024.10.0", sha256="eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493")
version("2024.5.0", sha256="1d021b0b0f933e3b3029ed808eb400c08ba101ca2de4b3483fbc9ca23fcee94a")
version("2024.3.1", sha256="f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9")
version("2024.2.0", sha256="b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84")

View File

@@ -14,7 +14,18 @@ class PyGradio(PythonPackage):
license("Apache-2.0")
version("3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89")
version("5.1.0", sha256="d2153668e6de2df7a01bb33f01a074fc7716ec863c40f472d8e439439ef1e153")
with default_args(deprecated=True):
# https://nvd.nist.gov/vuln/detail/CVE-2024-47871
version(
"4.44.1", sha256="a68a52498ac6b63f8864ef84bf7866a70e7d07ebe913edf921e1d2a3708ad5ae"
)
version(
"3.50.2", sha256="c6c81320566ba3e5688a1a58201d0729565a97b828b2bf6895e54f7bf25c01de"
)
version(
"3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89"
)
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-hatchling", type="build")

View File

@@ -54,32 +54,44 @@ class PyIpykernel(PythonPackage):
with default_args(type=("build", "run")):
depends_on("python@3.8:", when="@6.22:")
depends_on("py-debugpy@1.6.5:", when="@6.22:")
depends_on("py-debugpy@1:", when="@6.11:")
depends_on("py-debugpy@1.0:1", when="@6:6.10")
depends_on("py-ipython@7.23.1:", when="@6.5.1:")
depends_on("py-ipython@7.23.1:7", when="@6.0.0:6.5.0")
depends_on("py-ipython@5.0:", when="@5")
depends_on("py-ipython@4.0:", when="@:4")
# use of `imp` module
depends_on("python@:3.11", when="@:6.10")
with when("@6:"):
depends_on("py-debugpy@1.6.5:", when="@6.22:")
depends_on("py-debugpy@1:")
depends_on("py-debugpy@:1", when="@:6.10")
depends_on("py-matplotlib-inline@0.1:")
depends_on("py-matplotlib-inline@:0.1", when="@:6.10")
depends_on("py-ipython@7.23.1:", when="@6:")
depends_on("py-ipython@5:", when="@5:")
depends_on("py-ipython@4:")
depends_on("py-ipython@:7", when="@:6.5")
depends_on("py-comm@0.1.1:", when="@6.22:")
depends_on("py-traitlets@5.4:", when="@6.22:")
depends_on("py-traitlets@5.1:", when="@6.11:")
depends_on("py-traitlets@5.1.0:5", when="@6.5:6.10")
depends_on("py-traitlets@4.1.0:5", when="@6.0:6.4")
depends_on("py-traitlets@5.1:", when="@6.5:")
depends_on("py-traitlets@4.1.0:")
depends_on("py-traitlets@:5", when="@:6.10")
depends_on("py-jupyter-client@6.1.12:", when="@6.11:")
depends_on("py-jupyter-client@:7", when="@6.2:6.10")
depends_on("py-jupyter-client@:6", when="@6.0.2:6.1")
depends_on("py-jupyter-client")
depends_on("py-jupyter-client@:7", when="@:6.10")
depends_on("py-jupyter-client@:6", when="@:6.1")
depends_on("py-jupyter-core@4.12:", when="@6.22:")
depends_on("py-nest-asyncio", when="@6.6.1:")
depends_on("py-tornado@6.1:", when="@6.11:")
depends_on("py-tornado@5:6", when="@6.10")
depends_on("py-tornado@4.2:6", when="@6:6.9")
depends_on("py-tornado@4.2:", when="@5")
depends_on("py-tornado@4:", when="@:4")
depends_on("py-matplotlib-inline@0.1:", when="@6.11:")
depends_on("py-matplotlib-inline@0.1.0:0.1", when="@6:6.10")
depends_on("py-tornado@5:", when="@6.10:")
depends_on("py-tornado@4.2:", when="@5:")
depends_on("py-tornado@4:")
depends_on("py-tornado@:6", when="@:6.10")
depends_on("py-appnope", when="@5.1.3: platform=darwin")
depends_on("py-pyzmq@24:", when="@6.28:")
depends_on("py-pyzmq@20:", when="@6.22:")

View File

@@ -99,11 +99,13 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage):
depends_on("py-build", when="@0.4.14:")
with default_args(type=("build", "run")):
depends_on("python@3.10:", when="@0.4.31:")
depends_on("python@3.9:", when="@0.4.14:")
depends_on("python@3.8:", when="@0.4.6:")
# Based on PyPI wheels
depends_on("python@3.10:3.12", when="@0.4.31:")
depends_on("python@3.9:3.12", when="@0.4.17:0.4.30")
depends_on("python@3.9:3.11", when="@0.4.14:0.4.16")
depends_on("python@3.8:3.11", when="@0.4.6:0.4.13")
depends_on("python@:3.13")
depends_on("python@:3.12", when="@:0.4.33")
depends_on("python@:3.11", when="@:0.4.16")
# jaxlib/setup.py
depends_on("py-scipy@1.10:", when="@0.4.31:")

View File

@@ -16,6 +16,7 @@ class PyJupyterPackaging(PythonPackage):
license("BSD-3-Clause")
version("0.12.3", sha256="9d9b2b63b97ffd67a8bc5391c32a421bc415b264a32c99e4d8d8dd31daae9cf4")
version("0.12.0", sha256="b27455d60adc93a7baa2e0b8f386be81b932bb4e3c0116046df9ed230cd3faac")
version("0.11.1", sha256="6f5c7eeea98f7f3c8fb41d565a94bf59791768a93f93148b3c2dfb7ebade8eec")
version("0.10.6", sha256="a8a2c90bf2e0cae83be63ccb0b7035032a1589f268cc08b1d479e37ce50fc940")
@@ -27,8 +28,9 @@ class PyJupyterPackaging(PythonPackage):
url="https://files.pythonhosted.org/packages/source/j/jupyter_packaging/jupyter-packaging-0.7.12.tar.gz",
)
depends_on("python@3.7:", when="@0.11:", type=("build", "run"))
depends_on("python@3.6:", type=("build", "run"))
# https://github.com/jupyter/jupyter-packaging/pull/153
depends_on("python@:3.12", when="@:0.12.1", type=("build", "run"))
depends_on("py-hatchling@0.25:", when="@0.12.1:", type="build")
depends_on("py-packaging", type=("build", "run"))
depends_on("py-tomlkit", when="@0.8:", type=("build", "run"))
depends_on("py-setuptools@60.2:", when="@0.12:", type=("build", "run"))

View File

@@ -9,15 +9,15 @@
class PyNetifaces(PythonPackage):
"""Portable network interface information"""
homepage = (
"https://0xbharath.github.io/python-network-programming/libraries/netifaces/index.html"
)
homepage = "https://github.com/al45tair/netifaces"
pypi = "netifaces/netifaces-0.10.5.tar.gz"
license("Unlicense")
license("MIT", checked_by="wdconinc")
version("0.11.0", sha256="043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32")
version("0.10.9", sha256="2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3")
version("0.10.5", sha256="59d8ad52dd3116fcb6635e175751b250dc783fb011adba539558bd764e5d628b")
depends_on("c", type="build") # generated
depends_on("c", type="build")
depends_on("py-setuptools", type="build")

View File

@@ -12,10 +12,15 @@ class PyNodeenv(PythonPackage):
homepage = "https://github.com/ekalinin/nodeenv"
pypi = "nodeenv/nodeenv-1.3.3.tar.gz"
version("1.9.1", sha256="6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f")
version("1.8.0", sha256="d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2")
version("1.7.0", sha256="e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b")
version("1.3.3", sha256="ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a")
depends_on("python +ssl", when="@1.5:", type=("build", "run"))
depends_on("py-setuptools", when="@1.7:", type=("build", "run"))
with default_args(type=("build", "run")):
# https://github.com/ekalinin/nodeenv/commit/c1dffc5c64377cfcda9f2befd357e4791903bf39
depends_on("python@:3.12", when="@:1.8")
depends_on("python +ssl", when="@1.5:")
depends_on("py-setuptools", when="@1.7:")
depends_on("py-setuptools", type="build")

View File

@@ -38,8 +38,12 @@ class PyNotebook(PythonPackage):
version("4.0.4", sha256="a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648")
version("4.0.2", sha256="8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a")
depends_on("python@3.7:", type=("build", "run"), when="@6.4:")
depends_on("python@3.6:", type=("build", "run"), when="@6.3:")
with default_args(type=("build", "run")):
depends_on("python@3.7:", when="@6.4:")
depends_on("python@3.6:", when="@6.3:")
# import pipes in setupbase.py
depends_on("python@:3.12", when="@:6")
depends_on("py-jupyter-packaging@0.9:0", when="@6.4.1:", type="build")
depends_on("py-setuptools", when="@5:", type="build")

View File

@@ -14,12 +14,21 @@ class PyOptEinsum(PythonPackage):
license("MIT")
version("3.4.0", sha256="96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac")
version("3.3.0", sha256="59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549")
version("3.2.1", sha256="83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998")
version("3.2.0", sha256="738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31")
version("3.1.0", sha256="edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77")
# https://github.com/dgasmith/opt_einsum/commit/7c8f193f90b6771a6b3065bb5cf6ec2747af8209
depends_on("python@:3.11", when="@:3.3", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.7:", type=("build", "run"))
with default_args(type=("build", "run")):
depends_on("python@3.8:", when="@3.4:")
# https://github.com/dgasmith/opt_einsum/commit/7c8f193f90b6771a6b3065bb5cf6ec2747af8209
depends_on("python@:3.11", when="@:3.3")
depends_on("py-numpy@1.7:", when="@:3.3")
depends_on("py-setuptools", when="@:3.3", type="build")
depends_on("py-hatchling", when="@3.4:", type="build")
depends_on("py-hatch-fancy-pypi-readme@22.5:", when="@3.4:", type="build")
depends_on("py-hatch-vcs", when="@3.4:", type="build")

View File

@@ -95,15 +95,16 @@ class PyPandas(PythonPackage):
depends_on("py-setuptools@24.2:", when="@:1.2")
with default_args(type=("build", "run")):
# Based on PyPI wheel versions
depends_on("python@3.9:3.13", when="@2.2.3:")
depends_on("python@3.9:3.12", when="@2.1.1:")
depends_on("python@3.9:3.11", when="@2.1.0")
depends_on("python@3.8:3.11", when="@1.5:2.0")
depends_on("python@3.8:3.10", when="@1.4")
depends_on("python@:3.10", when="@1.3.3:1.3")
depends_on("python@:3.9", when="@1.1.3:1.3.2")
depends_on("python@:3.8", when="@0.25.2:1.1.2")
# Based on PyPI wheel availability
depends_on("python@3.9:", when="@2.1:")
depends_on("python@3.8:", when="@1.4:")
depends_on("python@:3.13")
depends_on("python@:3.12", when="@:2.2.2")
depends_on("python@:3.11", when="@:2.1.0")
depends_on("python@:3.10", when="@:1.4")
depends_on("python@:3.9", when="@:1.3.2")
depends_on("python@:3.8", when="@:1.1.2")
depends_on("py-numpy@1.22.4:", when="@2.1:")
depends_on("py-numpy@1.20.3:", when="@1.5:")

View File

@@ -13,6 +13,7 @@ class PyPdmBackend(PythonPackage):
license("MIT", checked_by="matz-e")
version("2.4.3", sha256="dbd9047a7ac10d11a5227e97163b617ad5d665050476ff63867d971758200728")
version("2.3.0", sha256="e39ed2da206d90d4a6e9eb62f6dce54ed4fa65ddf172a7d5700960d0f8a09e09")
depends_on("python@3.8:", type=("build", "run"))

View File

@@ -15,8 +15,12 @@ class PyPydanticCore(PythonPackage):
license("MIT", checked_by="qwertos")
version("2.27.1", sha256="62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235")
version("2.18.4", sha256="ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864")
# Based on PyPI wheel availability
depends_on("python@:3.13", type=("build", "run"))
depends_on("python@:3.12", when="@:2.19", type=("build", "run"))
depends_on("rust@1.76:", type="build")
depends_on("py-maturin@1", type="build")
depends_on("py-typing-extensions@4.6,4.7.1:", type="build")

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyPydanticExtraTypes(PythonPackage):
"""A place for pydantic types that probably shouldn't
exist in the main pydantic lib."""
homepage = "https://github.com/pydantic/pydantic-extra-types"
pypi = "pydantic_extra_types/pydantic_extra_types-2.10.0.tar.gz"
license("MIT", checked_by="wdconinc")
version("2.10.0", sha256="552c47dd18fe1d00cfed75d9981162a2f3203cf7e77e55a3d3e70936f59587b9")
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-hatchling", type="build")
depends_on("py-pydantic@2.5.2:", type=("build", "run"))
depends_on("py-typing-extensions", type=("build", "run"))

View File

@@ -0,0 +1,22 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyPydanticSettings(PythonPackage):
"""Settings management using Pydantic."""
homepage = "https://github.com/pydantic/pydantic-settings"
pypi = "pydantic_settings/pydantic_settings-2.6.1.tar.gz"
license("MIT", checked_by="wdconinc")
version("2.6.1", sha256="e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0")
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-hatchling", type="build")
depends_on("py-pydantic@2.7.0:", type=("build", "run"))
depends_on("py-python-dotenv@0.21:", type=("build", "run"))

View File

@@ -14,6 +14,7 @@ class PyPydantic(PythonPackage):
license("MIT")
version("2.10.1", sha256="a4daca2dc0aa429555e0656d6bf94873a7dc5f54ee42b1f5873d666fb3f35560")
version("2.7.4", sha256="0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52")
version("1.10.9", sha256="95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be")
version("1.10.2", sha256="91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410")
@@ -25,12 +26,13 @@ class PyPydantic(PythonPackage):
depends_on("py-setuptools", type="build", when="@1")
depends_on("py-hatchling", type="build", when="@2")
depends_on("py-hatch-fancy-pypi-readme@22.5.0:", type="build", when="@2")
depends_on("py-typing-extensions@4.12.2:", when="@2.10:", type=("build", "run"))
depends_on("py-typing-extensions@4.6.1:", when="@2.7.1:", type=("build", "run"))
depends_on("py-typing-extensions@4.2:", when="@1.10.9:", type=("build", "run"))
depends_on("py-typing-extensions@4.1:", when="@1.10:", type=("build", "run"))
depends_on("py-typing-extensions@3.7.4.3:", type=("build", "run"))
depends_on("py-annotated-types@0.6:", type=("build", "run"), when="@2.10:")
depends_on("py-annotated-types@0.4.0:", type=("build", "run"), when="@2.7.4:")
depends_on("py-pydantic-core@2.27.1", type=("build", "run"), when="@2.10.1")
depends_on("py-pydantic-core@2.18.4", type=("build", "run"), when="@2.7.4")
depends_on("py-python-dotenv@0.10.4:", when="@1 +dotenv", type=("build", "run"))

View File

@@ -10,13 +10,30 @@ class PyPystacClient(PythonPackage):
"""Python library for working with Spatiotemporal Asset Catalog (STAC)."""
homepage = "https://github.com/stac-utils/pystac-client.git"
pypi = "pystac-client/pystac-client-0.5.1.tar.gz"
pypi = "pystac-client/pystac_client-0.8.5.tar.gz"
license("Apache-2.0")
version("0.5.1", sha256="f585bd9bcd52ee399c8a292dbb7e0405c0da359a73bc07c1ef82a65c17124d94")
version("0.8.5", sha256="7fba8d4f3c641ff7e840084fc3a53c96443a227f8a5889ae500fc38183ccd994")
version(
"0.5.1",
sha256="f585bd9bcd52ee399c8a292dbb7e0405c0da359a73bc07c1ef82a65c17124d94",
url="https://files.pythonhosted.org/packages/source/p/pystac-client/pystac-client-0.5.1.tar.gz",
deprecated=True,
)
depends_on("py-setuptools", type="build")
depends_on("py-requests@2.27.1:", type=("build", "run"))
depends_on("py-pystac@1.4:", type=("build", "run"))
depends_on("py-python-dateutil@2.7:", type=("build", "run"))
with default_args(type="build"):
depends_on("py-setuptools@61:", when="@0.8:")
depends_on("py-setuptools")
with default_args(type=("build", "run")):
depends_on("python@3.10:", when="@0.8:")
# setup.py imports 'imp', removed in Python 3.12
depends_on("python@:3.11", when="@:0.6")
depends_on("py-requests@2.28.2:", when="@0.8:")
depends_on("py-requests@2.27.1:")
depends_on("py-pystac@1.10:+validation", when="@0.8:")
depends_on("py-pystac@1.4:")
depends_on("py-python-dateutil@2.8.2:", when="@0.8:")
depends_on("py-python-dateutil@2.7:")

View File

@@ -14,6 +14,7 @@ class PyPystac(PythonPackage):
license("Apache-2.0")
version("1.11.0", sha256="acb1e04be398a0cda2d8870ab5e90457783a8014a206590233171d8b2ae0d9e7")
version("1.4.0", sha256="6ec43e1c6bec50fbfbdede49c3ccb83ecd112072a938001b5c9c581fc2945e83")
version("1.3.0", sha256="b0244641ef2a29a7b7929266b0d1eda2b0a0ef826dadb1aed93404a14e6e313b")
version("1.2.0", sha256="8a60be2a30e1e28f8617a88f9f8fddc00c519be494a02ec111dc8fba62bf26e7")
@@ -21,7 +22,14 @@ class PyPystac(PythonPackage):
version("1.0.1", sha256="3927f2104cd2077638e046b9c258d5e6b442bfabf2d179cbefbf10f509efae85")
version("0.5.4", sha256="9fc3359364685adf54e3bc78c87550a8bc8b0a927405419bd8e4bbd42a8efc79")
depends_on("python@3.7:", when="@1:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-python-dateutil@2.7:", type=("build", "run"))
depends_on("py-typing-extensions@3.7:", when="@1: ^python@:3.7", type=("build", "run"))
variant("validation", default=False, description="Install an additional jsonschema dependency")
with default_args(type="build"):
depends_on("py-setuptools@61:", when="@1.11:")
depends_on("py-setuptools")
with default_args(type=("build", "run")):
depends_on("python@3.10:", when="@1.11:")
depends_on("py-python-dateutil@2.7:")
depends_on("py-jsonschema@4.18:4", when="+validation")

View File

@@ -15,8 +15,18 @@ class PyPythonMultipart(PythonPackage):
license("Apache-2.0")
version("0.0.17", sha256="41330d831cae6e2f22902704ead2826ea038d0419530eadff3ea80175aec5538")
version("0.0.5", sha256="f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools", type="build", when="@:0.0.5")
depends_on("py-hatchling", type="build", when="@0.0.6:")
depends_on("py-six@1.4.0:", type=("build", "run"))
def url_for_version(self, version):
url = "https://files.pythonhosted.org/packages/source/p/python-multipart/{}-{}.tar.gz"
if self.spec.satisfies("@:0.0.5"):
name = "python-multipart"
else:
name = "python_multipart"
return url.format(name, version)

View File

@@ -15,6 +15,7 @@ class PyPytz(PythonPackage):
license("MIT")
version("2024.2", sha256="2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a")
version("2023.3", sha256="1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588")
version("2022.2.1", sha256="cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5")
version("2021.3", sha256="acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326")

View File

@@ -24,6 +24,10 @@ class PyPyzmq(PythonPackage):
license("BSD-3-Clause")
version("26.2.0", sha256="070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f")
version("26.1.1", sha256="a7db05d8b7cd1a8c6610e9e9aa55d525baae7a44a43e18bc3260eb3f92de96c6")
version("26.0.3", sha256="dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a")
version("25.1.2", sha256="93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226")
version("25.0.2", sha256="6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149")
version("24.0.1", sha256="216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77")
version("22.3.0", sha256="8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c")
@@ -39,13 +43,17 @@ class PyPyzmq(PythonPackage):
depends_on("python@2.6:2.7,3.2:3.8", type=("build", "run"), when="@:14")
# pyproject.toml
depends_on("py-setuptools", type="build")
# https://github.com/zeromq/pyzmq/issues/1278
# https://github.com/zeromq/pyzmq/pull/1317
depends_on("py-setuptools@:59", when="@17:18.0", type="build")
depends_on("py-packaging", type="build")
with when("@26:"):
depends_on("py-scikit-build-core +pyproject", type="build")
with when("@:25"):
depends_on("py-setuptools", type="build")
# https://github.com/zeromq/pyzmq/issues/1278
# https://github.com/zeromq/pyzmq/pull/1317
depends_on("py-setuptools@:59", when="@17:18.0", type="build")
# setup.py
depends_on("py-packaging", type="build")
depends_on("py-cython@3:", type="build", when="@26:")
depends_on("py-cython@0.29.35:", type="build", when="@25.1.1: ^python@3.12:")
depends_on("py-cython@0.29:", type="build", when="@22.3.0:")
depends_on("py-cython@0.20:", type="build", when="@18:")
depends_on("py-cython@0.16:", type="build")
@@ -66,7 +74,7 @@ def remove_cythonized_files(self):
for f in find(".", "*.pyx"):
touch(f)
@run_before("install")
@run_before("install", when="@:25")
def setup(self):
"""Create config file listing dependency information."""

View File

@@ -11,21 +11,40 @@ class PyQuart(PythonPackage):
Flask."""
homepage = "https://gitlab.com/pgjones/quart/"
pypi = "Quart/Quart-0.16.3.tar.gz"
pypi = "quart/quart-0.16.3.tar.gz"
license("MIT")
version("0.19.8", sha256="ef567d0be7677c99890d5c6ff30e679699fe7e5fca1a90fa3b6974edd8421794")
version("0.16.3", sha256="16521d8cf062461b158433d820fff509f98fb997ae6c28740eda061d9cba7d5e")
depends_on("python@3.8:", type=("build", "run"), when="@0.19:")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-poetry-core@1:", type="build")
depends_on("py-aiofiles", type=("build", "run"))
depends_on("py-blinker@1.6:", type=("build", "run"), when="@0.19:")
depends_on("py-blinker", type=("build", "run"))
depends_on("py-click@8.0.0:", type=("build", "run"), when="@0.18.1:")
depends_on("py-click", type=("build", "run"))
depends_on("py-flask@3.0.0:", type=("build", "run"), when="@0.19:")
depends_on("py-hypercorn@0.11.2:", type=("build", "run"))
depends_on("py-itsdangerous", type=("build", "run"))
depends_on("py-jinja2", type=("build", "run"))
depends_on("py-toml", type=("build", "run"))
depends_on("py-markupsafe", type=("build", "run"), when="@0.17:")
depends_on("py-werkzeug@3:", type=("build", "run"), when="@0.19:")
depends_on("py-werkzeug@2:", type=("build", "run"))
depends_on("py-importlib-metadata", type=("build", "run"), when="@0.18: ^python@:3.9")
depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7")
depends_on("py-typing-extensions", type=("build", "run"), when="@0.19: ^python@:3.9")
depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.7")
# Historical dependencies
depends_on("py-toml", type=("build", "run"), when="@:0.17")
def url_for_version(self, version):
url = "https://files.pythonhosted.org/packages/source/q/quart/{}-{}.tar.gz"
if self.spec.satisfies("@:0.18.3"):
name = "Quart"
else:
name = "quart"
return url.format(name, version)

View File

@@ -8,26 +8,32 @@
class PyRuamelYamlClib(PythonPackage):
"""C version of reader, parser and emitter for ruamel.yaml derived from
libyaml."""
"""C version of reader, parser and emitter for ruamel.yaml derived from libyaml."""
homepage = "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/"
pypi = "ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz"
license("MIT")
version("0.2.12", sha256="6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f")
version("0.2.7", sha256="1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497")
version("0.2.0", sha256="b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c")
depends_on("c", type="build") # generated
depends_on("c", type="build")
depends_on("python", type=("build", "link", "run"))
# to prevent legacy-install-failure
depends_on("python@:3.9", when="@0.2.0", type=("build", "link", "run"))
depends_on("py-setuptools@28.7.0:", type="build")
# Based on PyPI wheel availability
with default_args(type=("build", "link", "run")):
depends_on("python@:3.13")
depends_on("python@:3.12", when="@:0.2.8")
depends_on("python@:3.11", when="@:0.2.7")
depends_on("python@:3.10", when="@:0.2.6")
depends_on("python@:3.9", when="@:0.2.4")
depends_on("python@:3.8", when="@:0.2.0")
depends_on("py-setuptools", type="build")
def flag_handler(self, name, flags):
if name == "cflags":
if self.spec.satisfies("%oneapi") or self.spec.satisfies(" %apple-clang@15:"):
if self.spec.satisfies("%oneapi") or self.spec.satisfies("%apple-clang@15:"):
flags.append("-Wno-error=incompatible-function-pointer-types")
return (flags, None, None)

View File

@@ -7,15 +7,16 @@
class PyRuff(PythonPackage):
"""An extremely fast Python linter, written in Rust."""
"""An extremely fast Python linter and code formatter, written in Rust."""
homepage = "https://beta.ruff.rs/docs"
homepage = "https://docs.astral.sh/ruff"
pypi = "ruff/ruff-0.0.276.tar.gz"
git = "https://github.com/astral-sh/ruff.git"
license("MIT")
maintainers("adamjstewart")
version("0.8.0", sha256="a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44")
version("0.6.5", sha256="4d32d87fab433c0cf285c3683dd4dae63be05fd7a1d65b3f5bf7cdd05a6b96fb")
version("0.5.7", sha256="8dfc0a458797f5d9fb622dd0efc52d796f23f0a1493a9527f4e49a550ae9a7e5")
version("0.4.5", sha256="286eabd47e7d4d521d199cab84deca135557e6d1e0f0d01c29e757c3cb151b54")
@@ -28,5 +29,6 @@ class PyRuff(PythonPackage):
depends_on("py-maturin@1")
# Found in Cargo.toml
depends_on("rust@1.80:", when="@0.7.1:")
depends_on("rust@1.76:", when="@0.5.6:")
depends_on("rust@1.71:")

View File

@@ -12,9 +12,12 @@ class PySafetensors(PythonPackage):
homepage = "https://github.com/huggingface/safetensors"
pypi = "safetensors/safetensors-0.3.1.tar.gz"
version("0.4.5", sha256="d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310")
version("0.4.3", sha256="2f85fc50c4e07a21e95c24e07460fe6f7e2859d0ce88092838352b798ce711c2")
version("0.3.1", sha256="571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools-rust", type="build")
depends_on("py-maturin", type="build", when="@0.4.3")
# Based on PyPI wheel availability
depends_on("python@:3.12", when="@:0.4.3", type=("build", "run"))
depends_on("py-maturin@1", type="build", when="@0.4.3:")
depends_on("py-setuptools", when="@0.3.1", type="build")
depends_on("py-setuptools-rust", when="@0.3.1", type="build")

View File

@@ -54,7 +54,8 @@ class PyScikitLearn(PythonPackage):
# Based on PyPI wheel availability
with default_args(type=("build", "link", "run")):
depends_on("python@3.9:3.12", when="@1.4:")
depends_on("python@3.9:3.13", when="@1.5.2:")
depends_on("python@3.9:3.12", when="@1.4:1.5.1")
depends_on("python@3.8:3.12", when="@1.3.1:1.3")
depends_on("python@3.8:3.11", when="@1.1.3:1.3.0")
depends_on("python@3.8:3.10", when="@1.1.0:1.1.2")

View File

@@ -15,6 +15,12 @@ class PyStarlette(PythonPackage):
license("BSD-3-Clause")
version("0.41.2", sha256="9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62")
version("0.37.2", sha256="9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823")
version("0.36.3", sha256="90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080")
version("0.35.1", sha256="3e2639dac3520e4f58734ed22553f950d3f3cb1001cd2eaac4d57e8cdc5f66bc")
version("0.32.0", sha256="87c899fe3aee6a42f711380b03e1d244a21079529cb3dbe1a5109e60915e0bbb")
version("0.28.0", sha256="7bf3da5e997e796cc202cef2bd3f96a7d9b1e1943203c2fe2b42e020bc658482")
version("0.27.0", sha256="6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75")
version("0.23.1", sha256="8510e5b3d670326326c5c1d4cb657cc66832193fe5d5b7015a51c7b1e1b1bf42")
version("0.22.0", sha256="b092cbc365bea34dd6840b42861bdabb2f507f8671e642e8272d2442e08ea4ff")

View File

@@ -73,7 +73,7 @@ class PyTorchvision(PythonPackage):
with default_args(type=("build", "link", "run")):
# Based on PyPI wheel availability
depends_on("python@3.9:3.12", when="@0.20:")
depends_on("python@3.9:3.13", when="@0.20:")
depends_on("python@3.8:3.12", when="@0.17:0.19")
depends_on("python@3.8:3.11", when="@0.15:0.16")
depends_on("python@:3.10", when="@0.12:0.14")

View File

@@ -15,24 +15,50 @@ class PyWerkzeug(PythonPackage):
license("BSD-3-Clause", checked_by="wdconinc")
version("3.1.3", sha256="60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746")
version("3.0.4", sha256="34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306")
version("3.0.0", sha256="3ffff4dcc32db52ef3cc94dff3000a3c2846890f3a5a51800a27b909c5e770f0")
version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8")
version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76")
version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f")
version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a")
version("0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7")
version("0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43")
version("0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6")
version("0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6")
version("0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3")
version("0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a")
version("0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655")
version("0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64")
version("0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26")
version("0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0")
version("0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5")
with default_args(deprecated=True):
# https://nvd.nist.gov/vuln/detail/CVE-2023-46136
version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8")
version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76")
version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f")
version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a")
version(
"0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7"
)
version(
"0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43"
)
version(
"0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6"
)
version(
"0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6"
)
version(
"0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3"
)
version(
"0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a"
)
version(
"0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655"
)
version(
"0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64"
)
version(
"0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26"
)
version(
"0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0"
)
version(
"0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5"
)
depends_on("python@3.9:", when="@3.1:", type=("build", "run"))
depends_on("python@3.8:", when="@2.3:", type=("build", "run"))
depends_on("python@:3.9", when="@:0.12", type=("build", "run"))
depends_on("py-flit-core@:3", when="@2.3.7:", type="build")

View File

@@ -21,7 +21,8 @@ class Pygmo(CMakePackage):
version("master", branch="master")
version("2.18.0", sha256="9f081cc973297894af09f713f889870ac452bfb32b471f9f7ba08a5e0bb9a125")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
variant("shared", default=True, description="Build shared libraries")

View File

@@ -19,6 +19,7 @@ class RocmTensile(CMakePackage):
license("MIT")
maintainers("srekolam", "renjithravindrankannath", "haampie")
version("6.2.1", sha256="29802dc65a7cea29f0e2608782c75db87e9c71eea8aeb485e856cf2861d83098")
version("6.2.0", sha256="6f7d679bfffd1f723f2788b00fdcb1b4673b597f9f85c2cdaab3c2aa17afb33d")
version("6.1.2", sha256="6a08190f6d9c8cc76764a68e2dd3e7af4759d4146ddc1c4b3370c7762a6f6d83")
version("6.1.1", sha256="04fd76e6a0e9b7528e61df0721b03c0e977c145a2a1ea331d515c9167d7ac35f")
@@ -80,6 +81,7 @@ class RocmTensile(CMakePackage):
"6.1.1",
"6.1.2",
"6.2.0",
"6.2.1",
]:
depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}")
depends_on(f"hip@{ver}", when=f"@{ver}")

View File

@@ -26,6 +26,7 @@ class RocprofilerRegister(CMakePackage):
version("6.1.1", sha256="38242443d9147a04d61374de4cecee686578a3140fed17e88480f564a1f67cc7")
version("6.1.0", sha256="c6e60447ea2ccca8d6acd8758ac00037347892b16b450e1f99ddd04cc4b6cac1")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("fmt")
depends_on("glog")

View File

@@ -12,6 +12,8 @@
from spack.package import *
from spack.util.environment import is_system_path
_is_macos = sys.platform == "darwin"
class Root(CMakePackage):
"""ROOT is a data analysis framework."""
@@ -156,7 +158,7 @@ class Root(CMakePackage):
when="@6.32.0:6.32.02",
)
if sys.platform == "darwin":
if _is_macos:
# Resolve non-standard use of uint, _cf_
# https://sft.its.cern.ch/jira/browse/ROOT-7886.
patch("math_uint.patch", when="@6.06.02")
@@ -186,7 +188,7 @@ class Root(CMakePackage):
# See README.md for specific notes about what ROOT configuration
# options are or are not supported, and why.
variant("aqua", default=False, description="Enable Aqua interface")
variant("aqua", default=_is_macos, description="Enable native macOS (Cocoa) interface")
variant("arrow", default=False, description="Enable Arrow interface")
variant("cuda", when="@6.08.00:", default=False, description="Enable CUDA support")
variant("cudnn", when="@6.20.02:", default=False, description="Enable cuDNN support")
@@ -288,7 +290,7 @@ class Root(CMakePackage):
variant(
"webgui", default=True, description="Enable web-based UI components of ROOT", when="+root7"
)
variant("x", default=True, description="Enable set of graphical options")
variant("x", default=(not _is_macos), description="Enable set of graphical options")
variant("xml", default=True, description="Enable XML parser interface")
variant("xrootd", default=False, description="Build xrootd file server and its client")
@@ -429,7 +431,7 @@ class Root(CMakePackage):
conflicts("target=ppc64le:", when="@:6.24")
# Incompatible variants
if sys.platform == "darwin":
if _is_macos:
conflicts("+opengl", when="~x ~aqua", msg="root+opengl requires X or Aqua")
# https://github.com/root-project/root/issues/7160
conflicts("+aqua", when="~opengl", msg="+aqua requires OpenGL to be enabled")
@@ -455,15 +457,15 @@ class Root(CMakePackage):
conflicts("%clang@16:", when="@:6.26.07", msg="clang 16+ support was added in root 6.26.08")
# See https://github.com/spack/spack/pull/44826
if sys.platform == "darwin" and macos_version() == Version("12"):
if _is_macos and macos_version() == Version("12"):
conflicts("@:6.27", when="+python", msg="macOS 12 python support for 6.28: only")
# See https://github.com/root-project/root/issues/11714
if sys.platform == "darwin" and macos_version() >= Version("13"):
if _is_macos and macos_version() >= Version("13"):
conflicts("@:6.26.09", msg="macOS 13 support was added in root 6.26.10")
# See https://github.com/root-project/root/issues/16219
if sys.platform == "darwin" and macos_version() >= Version("15"):
if _is_macos and macos_version() >= Version("15"):
conflicts("@:6.32.05", msg="macOS 15 support was added in root 6.32.06")
# ROOT <6.14 is incompatible with Python >=3.7, which is the minimum supported by spack
@@ -627,8 +629,6 @@ def cmake_args(self):
# Options related to ROOT's ability to download and build its own
# dependencies. Per Spack convention, this should generally be avoided.
afterimage_enabled = ("+x" in self.spec) if "platform=darwin" not in self.spec else True
options += [
define("builtin_cfitsio", False),
define("builtin_davix", False),
@@ -655,7 +655,12 @@ def cmake_args(self):
]
if self.spec.satisfies("@:6.32"):
options.append(define("builtin_afterimage", afterimage_enabled))
options.append(
define(
"builtin_afterimage",
("+x" in self.spec) if "platform=darwin" not in self.spec else True,
)
)
# Features
options += [
@@ -764,7 +769,7 @@ def cmake_args(self):
# #################### Compiler options ####################
if sys.platform == "darwin" and self.compiler.cc == "gcc":
if _is_macos and self.compiler.cc == "gcc":
cflags = "-D__builtin_unreachable=__builtin_trap"
options.extend([define("CMAKE_C_FLAGS", cflags), define("CMAKE_CXX_FLAGS", cflags)])

View File

@@ -34,6 +34,11 @@ class Verible(Package):
version("master", branch="master")
version(
"0.0.3841",
sha256="fbc9cb32aa8a64ba60f24dc89e8573c8ea62c45d76113a0f2ab5b73babed5990",
url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-3841-g5eb8aa34.tar.gz",
)
version(
"0.0.3836",
sha256="946625a1527d0a97772ea031ab7358af29e61258c189a2ab0d9533b43e71f35b",

View File

@@ -22,7 +22,8 @@ class Voropp(CMakePackage):
version("master", branch="master")
version("0.4.6", sha256="ef7970071ee2ce3800daa8723649ca069dc4c71cc25f0f7d22552387f3ea437e")
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
patch("voro++-0.4.6-cmake.patch", when="@0.4.6")

View File

@@ -243,6 +243,7 @@ class Warpx(CMakePackage, PythonExtension):
variant("shared", default=True, description="Build a shared version of the library")
variant("tprof", default=True, description="Enable tiny profiling features")
depends_on("c", type="build")
depends_on("cxx", type="build")
for v in ["24.10", "24.08", "develop"]: