Compare commits

..

21 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
49 changed files with 381 additions and 176 deletions

View File

@@ -21,7 +21,6 @@ packages:
armci: [armcimpi]
blas: [openblas, amdblis]
c: [gcc]
cub-api: [cub]
cxx: [gcc]
D: [ldc]
daal: [intel-oneapi-daal]

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

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

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

@@ -63,7 +63,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
variant("omptarget", default=False, description="Build with OpenMP Target support")
variant("sycl", default=False, description="Build with Sycl support")
depends_on("cub-api", when="+cuda")
depends_on("cub", when="+cuda")
depends_on("blt", type="build")
depends_on("blt@0.6.2:", type="build", when="@2024.02.1:")

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

@@ -42,8 +42,6 @@ class Cub(Package):
version("1.7.1", sha256="50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d")
version("1.4.1", sha256="7c3784cf59f02d4a88099d6a11e357032bac9eac2b9c78aaec947d1270e21871")
provides("cub-api")
def setup_dependent_build_environment(self, env, dependent_spec):
env.set("CUB_DIR", self.prefix.include.cub.cmake)

View File

@@ -702,47 +702,6 @@ class Cuda(Package):
provides("opencl@:1.2", when="@7:")
provides("opencl@:1.1", when="@:6")
for cuda_ver, cub_ver in [
["12.6.3", "2.5.0"],
["12.6.2", "2.5.0"],
["12.6.1", "2.5.0"],
["12.6.0", "2.5.0"],
["12.5.1", "2.4.0"],
["12.5.0", "2.4.0"],
["12.4.1", "2.3.1"],
["12.4.0", "2.3.1"],
["12.3.2", "2.2.0"],
["12.3.1", "2.2.0"],
["12.3.0", "2.2.0"],
["12.2.2", "2.1.0"],
["12.2.1", "2.1.0"],
["12.2.0", "2.0.1"],
["12.1.1", "2.0.1"],
["12.1.0", "2.0.1"],
["12.0.1", "2.0.1"],
["12.0.0", "2.0.1"],
["11.8.0", "1.15.1"],
["11.7.1", "1.15.0"],
["11.7.0", "1.15.0"],
["11.6.2", "1.15.0"],
["11.6.1", "1.15.0"],
["11.6.0", "1.15.0"],
["11.5.2", "1.13.1"],
["11.5.1", "1.13.1"],
["11.5.0", "1.13.1"],
["11.4.4", "1.12.1"],
["11.4.3", "1.12.1"],
["11.4.2", "1.12.1"],
["11.4.1", "1.12.1"],
["11.4.0", "1.12.1"],
["11.3.1", "1.11.0"],
["11.3.0", "1.11.0"],
["11.2.2", "1.10.0"],
["11.2.1", "1.10.0"],
["11.2.0", "1.10.0"],
]:
provides(f"cub-api@{cub_ver}", when=f"@{cuda_ver}")
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("--version", output=str, error=str)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -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"]: